• Ondrej Zary's avatar
    introduce cx82310_eth: Conexant CX82310-based ADSL router USB ethernet driver · cc28a20e
    Ondrej Zary authored
    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: default avatarOndrej Zary <linux@rainbow-software.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    cc28a20e
Kconfig 14.3 KB