diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c index d1ed68a..d8f6f96 100644 --- a/drivers/net/usb/pegasus.c +++ b/drivers/net/usb/pegasus.c @@ -1300,6 +1300,22 @@ static int pegasus_probe(struct usb_interface *intf, DECLARE_MAC_BUF(mac); usb_get_dev(dev); + + /* Special quirk to keep the driver from handling the Belkin Bluetooth + * dongle which happens to have the same ID. + */ + printk(KERN_ERR "We got %x:%x class=%i proto=%i\n", + id->idVendor, id->idProduct, id->bDeviceClass, + id->bDeviceProtocol); + if (id->idVendor == VENDOR_BELKIN && id->idProduct == 0x0121) { + if (id->bDeviceClass == USB_CLASS_WIRELESS_CONTROLLER) + if (id->bDeviceProtocol == 1) { + printk(KERN_ERR "Don't want this!\n"); + res = -ENODEV; + goto out; + } + } + net = alloc_etherdev(sizeof(struct pegasus)); if (!net) { dev_err(&intf->dev, "can't allocate %s\n", "device");