#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/ethtool.h>
#include <linux/if_vlan.h>
#include <linux/ip.h>
#include <linux/mii.h>
#include <linux/usb.h>
#include <linux/usb/cdc.h>
#include <linux/usb/usbnet.h>
#include <linux/usb/cdc-wdm.h>
#include <linux/usb/cdc_ncm.h>
struct huawei_cdc_ncm_state { … };
static int huawei_cdc_ncm_manage_power(struct usbnet *usbnet_dev, int on)
{ … }
static int huawei_cdc_ncm_wdm_manage_power(struct usb_interface *intf,
int status)
{ … }
static int huawei_cdc_ncm_bind(struct usbnet *usbnet_dev,
struct usb_interface *intf)
{ … }
static void huawei_cdc_ncm_unbind(struct usbnet *usbnet_dev,
struct usb_interface *intf)
{ … }
static int huawei_cdc_ncm_suspend(struct usb_interface *intf,
pm_message_t message)
{ … }
static int huawei_cdc_ncm_resume(struct usb_interface *intf)
{ … }
static const struct driver_info huawei_cdc_ncm_info = …;
static const struct usb_device_id huawei_cdc_ncm_devs[] = …;
MODULE_DEVICE_TABLE(usb, huawei_cdc_ncm_devs);
static struct usb_driver huawei_cdc_ncm_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;