Skip to content

Commit

Permalink
cxacru: ignore cx82310_eth devices
Browse files Browse the repository at this point in the history
Ignore ADSL routers, which can have the same vendor and product IDs
as ADSL modems but should be handled by the cx82310_eth driver.

This intentionally ignores device IDs that aren't currently handled
by cx82310_eth. There may be other device IDs that perhaps shouldn't
be claimed by cxacru.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ondrej Zary authored and David S. Miller committed Sep 9, 2010
1 parent 2b1b8ed commit 92e32ea
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion drivers/usb/atm/cxacru.c
Original file line number Diff line number Diff line change
Expand Up @@ -1324,8 +1324,24 @@ static struct usbatm_driver cxacru_driver = {
.tx_padding = 11,
};

static int cxacru_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
static int cxacru_usb_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
struct usb_device *usb_dev = interface_to_usbdev(intf);
char buf[15];

/* Avoid ADSL routers (cx82310_eth).
* Abort if bDeviceClass is 0xff and iProduct is "USB NET CARD".
*/
if (usb_dev->descriptor.bDeviceClass == USB_CLASS_VENDOR_SPEC
&& usb_string(usb_dev, usb_dev->descriptor.iProduct,
buf, sizeof(buf)) > 0) {
if (!strcmp(buf, "USB NET CARD")) {
dev_info(&intf->dev, "ignoring cx82310_eth device\n");
return -ENODEV;
}
}

return usbatm_usb_probe(intf, id, &cxacru_driver);
}

Expand Down

0 comments on commit 92e32ea

Please sign in to comment.