mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-21 18:14:48 +08:00
cc28a20e77
This patch introduces cx82310_eth driver - driver for USB ethernet port of ADSL routers based on Conexant CX82310 chips. Such routers usually have ethernet port(s) too which are bridged together with the USB ethernet port, allowing the USB-connected machine to communicate to the network (and also internet through the ADSL, of course). This is my first driver, so please check thoroughly. As there's no protocol documentation, it was done with usbsnoop dumps from Windows driver, some parts (the commands) inspired by cxacru driver and also other usbnet drivers. The driver passed my testing - some real work and also pings sized from 0 to 65507 B. The only problem I found is the ifconfig error counter. When I return 0 (or 1 but empty skb) from rx_fixup(), usbnet increases the error counter although it's not an error condition (because packets can cross URB boundaries). Maybe the usbnet should be fixed to allow rx_fixup() to return empty skbs (or some other value, e.g. 2)? The USB ID of my device is 0x0572:0xcb01 which conflicts with some ADSL modems using cxacru driver (they probably use the same chipset but simpler firmware). The modems seem to use bDeviceClass 0 and iProduct "ADSL USB MODEM", my router uses bDeviceClass 255 and iProduct "USB NET CARD". The driver matches only devices with class 255 and checks for the iProduct string during init. I already posted a patch for the cxacru driver to ignore these devices. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: David S. Miller <davem@davemloft.net>
30 lines
1.0 KiB
Makefile
30 lines
1.0 KiB
Makefile
#
|
|
# Makefile for USB Network drivers
|
|
#
|
|
|
|
obj-$(CONFIG_USB_CATC) += catc.o
|
|
obj-$(CONFIG_USB_KAWETH) += kaweth.o
|
|
obj-$(CONFIG_USB_PEGASUS) += pegasus.o
|
|
obj-$(CONFIG_USB_RTL8150) += rtl8150.o
|
|
obj-$(CONFIG_USB_HSO) += hso.o
|
|
obj-$(CONFIG_USB_NET_AX8817X) += asix.o
|
|
obj-$(CONFIG_USB_NET_CDCETHER) += cdc_ether.o
|
|
obj-$(CONFIG_USB_NET_CDC_EEM) += cdc_eem.o
|
|
obj-$(CONFIG_USB_NET_DM9601) += dm9601.o
|
|
obj-$(CONFIG_USB_NET_SMSC75XX) += smsc75xx.o
|
|
obj-$(CONFIG_USB_NET_SMSC95XX) += smsc95xx.o
|
|
obj-$(CONFIG_USB_NET_GL620A) += gl620a.o
|
|
obj-$(CONFIG_USB_NET_NET1080) += net1080.o
|
|
obj-$(CONFIG_USB_NET_PLUSB) += plusb.o
|
|
obj-$(CONFIG_USB_NET_RNDIS_HOST) += rndis_host.o
|
|
obj-$(CONFIG_USB_NET_CDC_SUBSET) += cdc_subset.o
|
|
obj-$(CONFIG_USB_NET_ZAURUS) += zaurus.o
|
|
obj-$(CONFIG_USB_NET_MCS7830) += mcs7830.o
|
|
obj-$(CONFIG_USB_USBNET) += usbnet.o
|
|
obj-$(CONFIG_USB_NET_INT51X1) += int51x1.o
|
|
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
|
|
|