Hi Marcel, > -----Original Message----- > From: Marcel Holtmann [mailto:marcel@xxxxxxxxxxxx] > Sent: 2011年11月16日 21:29 > To: Yao, Costa > Cc: padovan@xxxxxxxxxxxxxx; linux-bluetooth@xxxxxxxxxxxxxxx > Subject: Re: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in > blacklist_table > > 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. > I send this patch just for a 3012 chip, with PID 3006. Because we need to separate it with another 3012 chip(PID 3004). So we use BTUSB_ATH3012 for PID 3004 and BTUSB_ATH3006 for PID 3006. And I am sure that we need use this quirk, not BTUSB_IGNORE. Because we need to check whether chip has been patched or not through bcdDevice value. > And start writing detailed commit message that explains why this quirk is > correct and needed. > > Regards > > Marcel > Best wishes, Costa Yao ��.n��������+%������w��{.n�����{����^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�