#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/ethtool.h>
#include <linux/workqueue.h>
#include <linux/mii.h>
#include <linux/usb.h>
#include <linux/usb/cdc.h>
#include <linux/usb/usbnet.h>
#if IS_ENABLED(CONFIG_USB_NET_RNDIS_HOST)
static int is_rndis(struct usb_interface_descriptor *desc)
{ … }
static int is_activesync(struct usb_interface_descriptor *desc)
{ … }
static int is_wireless_rndis(struct usb_interface_descriptor *desc)
{ … }
static int is_novatel_rndis(struct usb_interface_descriptor *desc)
{ … }
#else
#define is_rndis …
#define is_activesync …
#define is_wireless_rndis …
#define is_novatel_rndis …
#endif
static const u8 mbm_guid[16] = …;
void usbnet_cdc_update_filter(struct usbnet *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
static const struct ethtool_ops cdc_ether_ethtool_ops = …;
int usbnet_generic_cdc_bind(struct usbnet *dev, struct usb_interface *intf)
{ … }
EXPORT_SYMBOL_GPL(…);
int usbnet_ether_cdc_bind(struct usbnet *dev, struct usb_interface *intf)
{ … }
EXPORT_SYMBOL_GPL(…);
void usbnet_cdc_unbind(struct usbnet *dev, struct usb_interface *intf)
{ … }
EXPORT_SYMBOL_GPL(…);
static void speed_change(struct usbnet *dev, __le32 *speeds)
{ … }
void usbnet_cdc_status(struct usbnet *dev, struct urb *urb)
{ … }
EXPORT_SYMBOL_GPL(…);
int usbnet_cdc_bind(struct usbnet *dev, struct usb_interface *intf)
{ … }
EXPORT_SYMBOL_GPL(…);
static int usbnet_cdc_zte_bind(struct usbnet *dev, struct usb_interface *intf)
{ … }
int usbnet_cdc_zte_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
{ … }
EXPORT_SYMBOL_GPL(…);
static void usbnet_cdc_zte_status(struct usbnet *dev, struct urb *urb)
{ … }
static const struct driver_info cdc_info = …;
static const struct driver_info zte_cdc_info = …;
static const struct driver_info wwan_info = …;
#define HUAWEI_VENDOR_ID …
#define NOVATEL_VENDOR_ID …
#define ZTE_VENDOR_ID …
#define DELL_VENDOR_ID …
#define REALTEK_VENDOR_ID …
#define SAMSUNG_VENDOR_ID …
#define LENOVO_VENDOR_ID …
#define LINKSYS_VENDOR_ID …
#define NVIDIA_VENDOR_ID …
#define HP_VENDOR_ID …
#define MICROSOFT_VENDOR_ID …
#define UBLOX_VENDOR_ID …
#define TPLINK_VENDOR_ID …
#define AQUANTIA_VENDOR_ID …
#define ASIX_VENDOR_ID …
static const struct usb_device_id products[] = …;
MODULE_DEVICE_TABLE(usb, products);
static struct usb_driver cdc_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;