#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/usb.h>
#include <linux/sched.h>
#include <linux/kthread.h>
#include <linux/usb/cdc.h>
#include <linux/wait.h>
#include <linux/if_ether.h>
#include <linux/pm_runtime.h>
#include "gdm_usb.h"
#include "gdm_lte.h"
#include "hci.h"
#include "hci_packet.h"
#include "gdm_endian.h"
#define USB_DEVICE_CDC_DATA(vid, pid) …
#define USB_DEVICE_MASS_DATA(vid, pid) …
static const struct usb_device_id id_table[] = …;
MODULE_DEVICE_TABLE(…);
static void do_tx(struct work_struct *work);
static void do_rx(struct work_struct *work);
static int gdm_usb_recv(void *priv_dev,
int (*cb)(void *cb_data,
void *data, int len, int context),
void *cb_data,
int context);
static int request_mac_address(struct lte_udev *udev)
{ … }
static struct usb_tx *alloc_tx_struct(int len)
{ … }
static struct usb_tx_sdu *alloc_tx_sdu_struct(void)
{ … }
static void free_tx_struct(struct usb_tx *t)
{ … }
static void free_tx_sdu_struct(struct usb_tx_sdu *t_sdu)
{ … }
static struct usb_tx_sdu *get_tx_sdu_struct(struct tx_cxt *tx, int *no_spc)
{ … }
static void put_tx_struct(struct tx_cxt *tx, struct usb_tx_sdu *t_sdu)
{ … }
static struct usb_rx *alloc_rx_struct(void)
{ … }
static void free_rx_struct(struct usb_rx *r)
{ … }
static struct usb_rx *get_rx_struct(struct rx_cxt *rx, int *no_spc)
{ … }
static void put_rx_struct(struct rx_cxt *rx, struct usb_rx *r)
{ … }
static void release_usb(struct lte_udev *udev)
{ … }
static int init_usb(struct lte_udev *udev)
{ … }
static int set_mac_address(u8 *data, void *arg)
{ … }
static void do_rx(struct work_struct *work)
{ … }
static void remove_rx_submit_list(struct usb_rx *r, struct rx_cxt *rx)
{ … }
static void gdm_usb_rcv_complete(struct urb *urb)
{ … }
static int gdm_usb_recv(void *priv_dev,
int (*cb)(void *cb_data,
void *data, int len, int context),
void *cb_data,
int context)
{ … }
static void gdm_usb_send_complete(struct urb *urb)
{ … }
static int send_tx_packet(struct usb_device *usbdev, struct usb_tx *t, u32 len)
{ … }
static u32 packet_aggregation(struct lte_udev *udev, u8 *send_buf)
{ … }
static void do_tx(struct work_struct *work)
{ … }
#define SDU_PARAM_LEN …
static int gdm_usb_sdu_send(void *priv_dev, void *data, int len,
unsigned int dft_eps_ID, unsigned int eps_ID,
void (*cb)(void *data), void *cb_data,
int dev_idx, int nic_type)
{ … }
static int gdm_usb_hci_send(void *priv_dev, void *data, int len,
void (*cb)(void *data), void *cb_data)
{ … }
static u8 gdm_usb_get_endian(void *priv_dev)
{ … }
static int gdm_usb_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void gdm_usb_disconnect(struct usb_interface *intf)
{ … }
static int gdm_usb_suspend(struct usb_interface *intf, pm_message_t pm_msg)
{ … }
static int gdm_usb_resume(struct usb_interface *intf)
{ … }
static struct usb_driver gdm_usb_lte_driver = …;
static int __init gdm_usb_lte_init(void)
{ … }
static void __exit gdm_usb_lte_exit(void)
{ … }
module_init(gdm_usb_lte_init);
module_exit(gdm_usb_lte_exit);
MODULE_VERSION(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;