USB CDC NCM host driver

The patch provides USB CDC NCM host driver support in the Linux Kernel.

Changes:
drivers/net/usb/cdc_ncm.c:
- initial submission of the CDC NCM host driver;
- verified on Intel 32/64 bit, Intel Atom, ST-Ericsson U8500 (ARM)
- throughput measured over 100 Mbits duplex;
- driver supports 16-bit NTB format only, but it is more than enough for
  transfers up to 64K;
- driver can handle up to 32 datagrams in received NTB;
- timer is used to collect several packets in Tx direction

drivers/net/usb/Kconfig:
- a new entry to compile CDC NCM host driver
drivers/net/usb/Makefile:
- a new entry to compile CDC NCM host driver

Signed-off-by: Alexey Orishko <alexey.orishko@stericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Alexey Orishko 2010-11-29 23:23:28 +00:00 committed by David S. Miller
parent 073285fd39
commit 900d495a18
3 changed files with 1233 additions and 0 deletions

View File

@ -196,6 +196,25 @@ config USB_NET_CDC_EEM
IEEE 802 "local assignment" bit is set in the address, a "usbX"
name is used instead.
config USB_NET_CDC_NCM
tristate "CDC NCM support"
depends on USB_USBNET
default y
help
This driver provides support for CDC NCM (Network Control Model
Device USB Class Specification). The CDC NCM specification is
available from <http://www.usb.org/>.
Say "y" to link the driver statically, or "m" to build a
dynamically linked module.
This driver should work with at least the following devices:
* ST-Ericsson M700 LTE FDD/TDD Mobile Broadband Modem (ref. design)
* ST-Ericsson M5730 HSPA+ Mobile Broadband Modem (reference design)
* ST-Ericsson M570 HSPA+ Mobile Broadband Modem (reference design)
* ST-Ericsson M343 HSPA Mobile Broadband Modem (reference design)
* Ericsson F5521gw Mobile Broadband Module
config USB_NET_DM9601
tristate "Davicom DM9601 based USB 1.1 10/100 ethernet devices"
depends on USB_USBNET

View File

@ -26,4 +26,5 @@ obj-$(CONFIG_USB_CDC_PHONET) += cdc-phonet.o
obj-$(CONFIG_USB_IPHETH) += ipheth.o
obj-$(CONFIG_USB_SIERRA_NET) += sierra_net.o
obj-$(CONFIG_USB_NET_CX82310_ETH) += cx82310_eth.o
obj-$(CONFIG_USB_NET_CDC_NCM) += cdc_ncm.o

1213
drivers/net/usb/cdc_ncm.c Normal file

File diff suppressed because it is too large Load Diff