Hi Costa, > Signed-off-by: Costa Yao <cqyao@xxxxxxxxxxxxxxxx> > --- > drivers/bluetooth/btusb.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > index 39dd65c..94124ad 100644 > --- a/drivers/bluetooth/btusb.c > +++ b/drivers/bluetooth/btusb.c > @@ -55,6 +55,7 @@ static struct usb_driver btusb_driver; > #define BTUSB_BROKEN_ISOC 0x20 > #define BTUSB_WRONG_SCO_MTU 0x40 > #define BTUSB_ATH3012 0x80 > +#define BTUSB_ATH3006 0x0100 > > static struct usb_device_id btusb_table[] = { > /* Bluetooth USB interface */ > @@ -125,6 +126,7 @@ static struct usb_device_id blacklist_table[] = { > > /* Atheros 3012 with sflash firmware */ > { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, > + { USB_DEVICE(0x0cf3, 0x3006), .driver_info = BTUSB_ATH3006 }, > > /* Atheros AR5BBU12 with sflash firmware */ > { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE }, > @@ -937,7 +939,8 @@ static int btusb_probe(struct usb_interface *intf, > if (ignore_sniffer && id->driver_info & BTUSB_SNIFFER) > return -ENODEV; > > - if (id->driver_info & BTUSB_ATH3012) { > + if ((id->driver_info & BTUSB_ATH3012) || > + (id->driver_info & BTUSB_ATH3006)) { > struct usb_device *udev = interface_to_usbdev(intf); > > /* Old firmware would otherwise let ath3k driver load if (id->driver_info & BTUSB_ATH3012) { struct usb_device *udev = interface_to_usbdev(intf); /* Old firmware would otherwise let ath3k driver load * patch and sysconfig files */ if (le16_to_cpu(udev->descriptor.bcdDevice) <= 0x0001) return -ENODEV; } are you sure this is true for the 3006 as well? Otherwise just using the BTUSB_IGNORE quirk to blacklist a device would be enough. And start writing detailed commit message that explains why this quirk is correct and needed. Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html