* [patch 09/12] pegasus: add blacklist support to fix Belkin bluetooth dongle.
@ 2008-07-30 19:39 akpm
2008-08-07 6:24 ` Jeff Garzik
0 siblings, 1 reply; 2+ messages in thread
From: akpm @ 2008-07-30 19:39 UTC (permalink / raw)
To: jeff; +Cc: netdev, akpm, ben.collins, david-b, gregkh, stefan.bader
From: Ben Collins <ben.collins@canonical.com>
Reference: https://launchpad.net/bugs/140511
The Belkin bluetooth dongle unfortunately shares the vendor and device id
with the network adapter which causes lockups whenever the bluetooth
dongle is inserted.
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Ben Collins <ben.collins@canonical.com>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/net/usb/pegasus.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff -puN drivers/net/usb/pegasus.c~pegasus-add-blacklist-support-to-fix-belkin-bluetooth-dongle drivers/net/usb/pegasus.c
--- a/drivers/net/usb/pegasus.c~pegasus-add-blacklist-support-to-fix-belkin-bluetooth-dongle
+++ a/drivers/net/usb/pegasus.c
@@ -1285,6 +1285,21 @@ static void check_carrier(struct work_st
}
}
+static int pegasus_blacklisted(struct usb_device *udev)
+{
+ struct usb_device_descriptor *udd = &udev->descriptor;
+
+ /* Special quirk to keep the driver from handling the Belkin Bluetooth
+ * dongle which happens to have the same ID.
+ */
+ if ((udd->idVendor == VENDOR_BELKIN && udd->idProduct == 0x0121) &&
+ (udd->bDeviceClass == USB_CLASS_WIRELESS_CONTROLLER) &&
+ (udd->bDeviceProtocol == 1))
+ return 1;
+
+ return 0;
+}
+
static int pegasus_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
@@ -1296,6 +1311,12 @@ static int pegasus_probe(struct usb_inte
DECLARE_MAC_BUF(mac);
usb_get_dev(dev);
+
+ if (pegasus_blacklisted(dev)) {
+ res = -ENODEV;
+ goto out;
+ }
+
net = alloc_etherdev(sizeof(struct pegasus));
if (!net) {
dev_err(&intf->dev, "can't allocate %s\n", "device");
_
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [patch 09/12] pegasus: add blacklist support to fix Belkin bluetooth dongle.
2008-07-30 19:39 [patch 09/12] pegasus: add blacklist support to fix Belkin bluetooth dongle akpm
@ 2008-08-07 6:24 ` Jeff Garzik
0 siblings, 0 replies; 2+ messages in thread
From: Jeff Garzik @ 2008-08-07 6:24 UTC (permalink / raw)
To: akpm; +Cc: netdev, ben.collins, david-b, gregkh, stefan.bader
akpm@linux-foundation.org wrote:
> From: Ben Collins <ben.collins@canonical.com>
>
> Reference: https://launchpad.net/bugs/140511
>
> The Belkin bluetooth dongle unfortunately shares the vendor and device id
> with the network adapter which causes lockups whenever the bluetooth
> dongle is inserted.
>
> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
> Signed-off-by: Ben Collins <ben.collins@canonical.com>
> Cc: Jeff Garzik <jeff@garzik.org>
> Cc: Greg Kroah-Hartman <gregkh@suse.de>
> Cc: David Brownell <david-b@pacbell.net>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> drivers/net/usb/pegasus.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff -puN drivers/net/usb/pegasus.c~pegasus-add-blacklist-support-to-fix-belkin-bluetooth-dongle drivers/net/usb/pegasus.c
> --- a/drivers/net/usb/pegasus.c~pegasus-add-blacklist-support-to-fix-belkin-bluetooth-dongle
> +++ a/drivers/net/usb/pegasus.c
> @@ -1285,6 +1285,21 @@ static void check_carrier(struct work_st
> }
> }
>
> +static int pegasus_blacklisted(struct usb_device *udev)
> +{
> + struct usb_device_descriptor *udd = &udev->descriptor;
> +
> + /* Special quirk to keep the driver from handling the Belkin Bluetooth
> + * dongle which happens to have the same ID.
> + */
> + if ((udd->idVendor == VENDOR_BELKIN && udd->idProduct == 0x0121) &&
> + (udd->bDeviceClass == USB_CLASS_WIRELESS_CONTROLLER) &&
> + (udd->bDeviceProtocol == 1))
> + return 1;
> +
> + return 0;
> +}
> +
> static int pegasus_probe(struct usb_interface *intf,
> const struct usb_device_id *id)
> {
> @@ -1296,6 +1311,12 @@ static int pegasus_probe(struct usb_inte
> DECLARE_MAC_BUF(mac);
>
> usb_get_dev(dev);
> +
> + if (pegasus_blacklisted(dev)) {
> + res = -ENODEV;
> + goto out;
> + }
> +
applied
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-08-07 6:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-30 19:39 [patch 09/12] pegasus: add blacklist support to fix Belkin bluetooth dongle akpm
2008-08-07 6:24 ` Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).