linux/drivers/net/usb/huawei_cdc_ncm.c

// SPDX-License-Identifier: GPL-2.0-only
/* huawei_cdc_ncm.c - handles Huawei devices using the CDC NCM protocol as
 * transport layer.
 * Copyright (C) 2013	 Enrico Mioso <[email protected]>
 *
 * ABSTRACT:
 * This driver handles devices resembling the CDC NCM standard, but
 * encapsulating another protocol inside it. An example are some Huawei 3G
 * devices, exposing an embedded AT channel where you can set up the NCM
 * connection.
 * This code has been heavily inspired by the cdc_mbim.c driver, which is
 * Copyright (c) 2012  Smith Micro Software, Inc.
 * Copyright (c) 2012  Bjørn Mork <[email protected]>
 */

#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>

/* Driver data */
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();