2011-11-16 11:09:12

by Yao, Costa

[permalink] [raw]
Subject: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

Add Qualcomm Atheros AR3006 entry in blacklist_table in btusb.c for bcdDevi=
ce check.

Signed-off-by: Costa Yao <[email protected]>
---
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
=20
static struct usb_device_id btusb_table[] =3D {
/* Bluetooth USB interface */
@@ -125,6 +126,7 @@ static struct usb_device_id blacklist_table[] =3D {
=20
/* Atheros 3012 with sflash firmware */
{ USB_DEVICE(0x0cf3, 0x3004), .driver_info =3D BTUSB_ATH3012 },
+ { USB_DEVICE(0x0cf3, 0x3006), .driver_info =3D BTUSB_ATH3006 },
=20
/* Atheros AR5BBU12 with sflash firmware */
{ USB_DEVICE(0x0489, 0xe02c), .driver_info =3D BTUSB_IGNORE },
@@ -937,7 +939,8 @@ static int btusb_probe(struct usb_interface *intf,
if (ignore_sniffer && id->driver_info & BTUSB_SNIFFER)
return -ENODEV;
=20
- if (id->driver_info & BTUSB_ATH3012) {
+ if ((id->driver_info & BTUSB_ATH3012) ||
+ (id->driver_info & BTUSB_ATH3006)) {
struct usb_device *udev =3D interface_to_usbdev(intf);
=20
/* Old firmware would otherwise let ath3k driver load
--=20
1.7.4.1


2011-11-22 02:43:31

by Yao, Costa

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

SGkgUGFkb3ZhbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHdXN0
YXZvIEYuIFBhZG92YW4gW21haWx0bzpwYW9AcHJvZnVzaW9uLm1vYmldIE9uIEJlaGFsZiBPZiBH
dXN0YXZvDQo+IFBhZG92YW4NCj4gU2VudDogMjAxMcTqMTHUwjIyyNUgMDoxNg0KPiBUbzogWWFv
LCBDb3N0YQ0KPiBDYzogTWFyY2VsIEhvbHRtYW5uOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJu
ZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIEJsdWV0b290aDogYnR1c2I6IEFkZCBRdWFs
Y29tbSBBdGhlcm9zIEFSMzAwNiBpbg0KPiBibGFja2xpc3RfdGFibGUNCj4gDQo+IEhpIENvc3Rh
LA0KPiANCj4gKiBZYW8sIENvc3RhIDxjcXlhb0BxY2EucXVhbGNvbW0uY29tPiBbMjAxMS0xMS0x
OCAwNjoxNToyNiArMDAwMF06DQo+IA0KPiA+IEFkZCBBUjMwMDYgZW50cnkgaW4gYmxhY2tsaXN0
X3RhYmxlIGluIGJ0dXNiLmMgZm9yIGJjZERldmljZSBjaGVjay4NCj4gPiBUaGVuIGF0aDNrLmMg
aGFzIHRoZSBjaGFuY2UgdG8gZG93bmxvYWQgZmlybXdhcmUgYW5kIHJlc2V0IGhhcmR3YXJlLg0K
PiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQ29zdGEgWWFvIDxjcXlhb0BxY2EucXVhbGNvbW0uY29t
Pg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2JsdWV0b290aC9idHVzYi5jIHwgICAgNyArKysrLS0t
DQo+ID4gIDEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0K
PiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgYi9kcml2ZXJz
L2JsdWV0b290aC9idHVzYi5jDQo+ID4gaW5kZXggMzlkZDY1Yy4uNGJhNGZkZiAxMDA2NDQNCj4g
PiAtLS0gYS9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jDQo+ID4gKysrIGIvZHJpdmVycy9ibHVl
dG9vdGgvYnR1c2IuYw0KPiA+IEBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2Ry
aXZlciBidHVzYl9kcml2ZXI7DQo+ID4gICNkZWZpbmUgQlRVU0JfQkNNOTIwMzUJCTB4MTANCj4g
PiAgI2RlZmluZSBCVFVTQl9CUk9LRU5fSVNPQwkweDIwDQo+ID4gICNkZWZpbmUgQlRVU0JfV1JP
TkdfU0NPX01UVQkweDQwDQo+ID4gLSNkZWZpbmUgQlRVU0JfQVRIMzAxMgkJMHg4MA0KPiA+ICsj
ZGVmaW5lIEJUVVNCX0FUSDNLCQkJMHg4MA0KPiA+DQo+ID4gIHN0YXRpYyBzdHJ1Y3QgdXNiX2Rl
dmljZV9pZCBidHVzYl90YWJsZVtdID0gew0KPiA+ICAJLyogQmx1ZXRvb3RoIFVTQiBpbnRlcmZh
Y2UgKi8NCj4gPiBAQCAtMTI0LDcgKzEyNCw4IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9p
ZCBibGFja2xpc3RfdGFibGVbXSA9IHsNCj4gPiAgCXsgVVNCX0RFVklDRSgweDAzZjAsIDB4MzEx
ZCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LA0KPiA+DQo+ID4gIAkvKiBBdGhlcm9z
IDMwMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUgKi8NCj4gPiAtCXsgVVNCX0RFVklDRSgweDBjZjMs
IDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCj4gPiArCXsgVVNCX0RF
VklDRSgweDBjZjMsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDNLIH0sDQo+ID4g
Kwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMwMDYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgz
SyB9LA0KPiA+DQo+ID4gIAkvKiBBdGhlcm9zIEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJl
ICovDQo+ID4gIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwMmMpLCAuZHJpdmVyX2luZm8gPSBC
VFVTQl9JR05PUkUgfSwgQEANCj4gPiAtOTM3LDcgKzkzOCw3IEBAIHN0YXRpYyBpbnQgYnR1c2Jf
cHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsDQo+ID4gIAlpZiAoaWdub3JlX3NuaWZm
ZXIgJiYgaWQtPmRyaXZlcl9pbmZvICYgQlRVU0JfU05JRkZFUikNCj4gPiAgCQlyZXR1cm4gLUVO
T0RFVjsNCj4gPg0KPiA+IC0JaWYgKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMTIpIHsN
Cj4gPiArCWlmIChpZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9BVEgzSykgew0KPiA+ICAJCXN0cnVj
dCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsNCj4gPg0KPiA+
ICAJCS8qIE9sZCBmaXJtd2FyZSB3b3VsZCBvdGhlcndpc2UgbGV0IGF0aDNrIGRyaXZlciBsb2Fk
DQo+IA0KPiANCj4gUGF0Y2ggZG9lcyBub3QgYXBwbHksIHBsZWFzZSBzZW5kIGEgcHJvcGVyIGFu
ZCBjbGVhbiBnaXQgZm9ybWF0dGVkIHBhdGNoLiBZb3UNCj4gY2FuIHRlc3QgaWYgaXQgYXBwbGll
cyB3aXRoIGdpdCBhbS4NCkkgdXNlZCBjaGVja3BhdGNoLnBsIHNjcmlwdCB0byBjaGVjayB0aGUg
cGF0Y2ggZmlsZXMgc2VudCB0byB5b3UgYWxsLCB0aGUgcmVzdWx0IHdhcyBvay4NCkNvdWxkIHlv
dSBwbGVhc2UgdGVsbCBtZSBhcmUgdGhlcmUgc29tZSBvdGhlciB0b29scyB0byBjaGVjayB0aGUg
cGF0Y2ggZmlsZXM/DQoNCj4gYXBwbHlpbmc6IFJFOiBbUEFUQ0hdIEJsdWV0b290aDogYnR1c2I6
IEFkZCBRdWFsY29tbSBBdGhlcm9zIEFSMzAwNiBpbg0KPiBibGFja2xpc3RfdGFibGUNCj4gL2hv
bWUvcGFkb3Zhbi9wL2xpbnV4LXRyZWVzL2JsdWV0b290aC8uZ2l0L3JlYmFzZS1hcHBseS9wYXRj
aDoxNDogdHJhaWxpbmcNCj4gd2hpdGVzcGFjZS4NCj4gI2RlZmluZSBCVFVTQl9BVEgzSyAgICAg
ICAgICAgICAgICAgICAgIDB4ODANCj4gL2hvbWUvcGFkb3Zhbi9wL2xpbnV4LXRyZWVzL2JsdWV0
b290aC8uZ2l0L3JlYmFzZS1hcHBseS9wYXRjaDoyMzogdHJhaWxpbmcNCj4gd2hpdGVzcGFjZS4N
Cj4gICAgICAgICB7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMwMDQpLCAuZHJpdmVyX2luZm8gPSBC
VFVTQl9BVEgzSyB9LA0KPiAvaG9tZS9wYWRvdmFuL3AvbGludXgtdHJlZXMvYmx1ZXRvb3RoLy5n
aXQvcmViYXNlLWFwcGx5L3BhdGNoOjI0OiB0cmFpbGluZw0KPiB3aGl0ZXNwYWNlLg0KPiAgICAg
ICAgIHsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwNiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FU
SDNLIH0sDQo+IC9ob21lL3BhZG92YW4vcC9saW51eC10cmVlcy9ibHVldG9vdGgvLmdpdC9yZWJh
c2UtYXBwbHkvcGF0Y2g6MzM6IHRyYWlsaW5nDQo+IHdoaXRlc3BhY2UuDQo+ICAgICAgICAgaWYg
KGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDNLKSB7DQo+IA0KPiANCj4gCUd1c3Rhdm8NCg==

2011-11-21 16:16:20

by Gustavo Padovan

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

Hi Costa,

* Yao, Costa <[email protected]> [2011-11-18 06:15:26 +0000]:

> Add AR3006 entry in blacklist_table in btusb.c for bcdDevice check.
> Then ath3k.c has the chance to download firmware and reset hardware.
>
> Signed-off-by: Costa Yao <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 7 ++++---
> 1 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 39dd65c..4ba4fdf 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -54,7 +54,7 @@ static struct usb_driver btusb_driver;
> #define BTUSB_BCM92035 0x10
> #define BTUSB_BROKEN_ISOC 0x20
> #define BTUSB_WRONG_SCO_MTU 0x40
> -#define BTUSB_ATH3012 0x80
> +#define BTUSB_ATH3K 0x80
>
> static struct usb_device_id btusb_table[] = {
> /* Bluetooth USB interface */
> @@ -124,7 +124,8 @@ static struct usb_device_id blacklist_table[] = {
> { USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },
>
> /* Atheros 3012 with sflash firmware */
> - { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
> + { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3K },
> + { USB_DEVICE(0x0cf3, 0x3006), .driver_info = BTUSB_ATH3K },
>
> /* Atheros AR5BBU12 with sflash firmware */
> { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
> @@ -937,7 +938,7 @@ 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_ATH3K) {
> struct usb_device *udev = interface_to_usbdev(intf);
>
> /* Old firmware would otherwise let ath3k driver load


Patch does not apply, please send a proper and clean git formatted patch. You
can test if it applies with git am.

applying: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table
/home/padovan/p/linux-trees/bluetooth/.git/rebase-apply/patch:14: trailing whitespace.
#define BTUSB_ATH3K 0x80
/home/padovan/p/linux-trees/bluetooth/.git/rebase-apply/patch:23: trailing whitespace.
{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3K },
/home/padovan/p/linux-trees/bluetooth/.git/rebase-apply/patch:24: trailing whitespace.
{ USB_DEVICE(0x0cf3, 0x3006), .driver_info = BTUSB_ATH3K },
/home/padovan/p/linux-trees/bluetooth/.git/rebase-apply/patch:33: trailing whitespace.
if (id->driver_info & BTUSB_ATH3K) {


Gustavo

2011-11-18 07:48:39

by Marcel Holtmann

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

Hi Costa,

> Add AR3006 entry in blacklist_table in btusb.c for bcdDevice check.
> Then ath3k.c has the chance to download firmware and reset hardware.
>
> Signed-off-by: Costa Yao <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 7 ++++---
> 1 files changed, 4 insertions(+), 3 deletions(-)

this looks good now.

Acked-by: Marcel Holtmann <[email protected]>

Regards

Marcel



2011-11-18 06:15:26

by Yao, Costa

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

QWRkIEFSMzAwNiBlbnRyeSBpbiBibGFja2xpc3RfdGFibGUgaW4gYnR1c2IuYyBmb3IgYmNkRGV2
aWNlIGNoZWNrLg0KVGhlbiBhdGgzay5jIGhhcyB0aGUgY2hhbmNlIHRvIGRvd25sb2FkIGZpcm13
YXJlIGFuZCByZXNldCBoYXJkd2FyZS4NCg0KU2lnbmVkLW9mZi1ieTogQ29zdGEgWWFvIDxjcXlh
b0BxY2EucXVhbGNvbW0uY29tPg0KLS0tDQogZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYyB8ICAg
IDcgKysrKy0tLQ0KIDEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u
cygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYyBiL2RyaXZlcnMv
Ymx1ZXRvb3RoL2J0dXNiLmMNCmluZGV4IDM5ZGQ2NWMuLjRiYTRmZGYgMTAwNjQ0DQotLS0gYS9k
cml2ZXJzL2JsdWV0b290aC9idHVzYi5jDQorKysgYi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5j
DQpAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYnR1c2JfZHJpdmVy
Ow0KICNkZWZpbmUgQlRVU0JfQkNNOTIwMzUJCTB4MTANCiAjZGVmaW5lIEJUVVNCX0JST0tFTl9J
U09DCTB4MjANCiAjZGVmaW5lIEJUVVNCX1dST05HX1NDT19NVFUJMHg0MA0KLSNkZWZpbmUgQlRV
U0JfQVRIMzAxMgkJMHg4MA0KKyNkZWZpbmUgQlRVU0JfQVRIM0sJCQkweDgwDQogDQogc3RhdGlj
IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJ0dXNiX3RhYmxlW10gPSB7DQogCS8qIEJsdWV0b290aCBV
U0IgaW50ZXJmYWNlICovDQpAQCAtMTI0LDcgKzEyNCw4IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2Rl
dmljZV9pZCBibGFja2xpc3RfdGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNFKDB4MDNmMCwgMHgz
MTFkKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sDQogDQogCS8qIEF0aGVyb3MgMzAx
MiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLw0KLQl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMwMDQp
LCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQorCXsgVVNCX0RFVklDRSgweDBjZjMs
IDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDNLIH0sDQorCXsgVVNCX0RFVklDRSgw
eDBjZjMsIDB4MzAwNiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDNLIH0sDQogDQogCS8qIEF0
aGVyb3MgQVI1QkJVMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUgKi8NCiAJeyBVU0JfREVWSUNFKDB4
MDQ4OSwgMHhlMDJjKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sDQpAQCAtOTM3LDcg
KzkzOCw3IEBAIHN0YXRpYyBpbnQgYnR1c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmlu
dGYsDQogCWlmIChpZ25vcmVfc25pZmZlciAmJiBpZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9TTklG
RkVSKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogDQotCWlmIChpZC0+ZHJpdmVyX2luZm8gJiBCVFVT
Ql9BVEgzMDEyKSB7DQorCWlmIChpZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9BVEgzSykgew0KIAkJ
c3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGYpOw0KIA0K
IAkJLyogT2xkIGZpcm13YXJlIHdvdWxkIG90aGVyd2lzZSBsZXQgYXRoM2sgZHJpdmVyIGxvYWQN
Ci0tIA0KMS43LjQuMQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1h
cmNlbCBIb2x0bWFubiBbbWFpbHRvOm1hcmNlbEBob2x0bWFubi5vcmddDQo+IFNlbnQ6IDIwMTHl
ubQxMeaciDE45pelIDEzOjE4DQo+IFRvOiBZYW8sIENvc3RhDQo+IENjOiBwYWRvdmFuQHByb2Z1
c2lvbi5tb2JpOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJF
OiBbUEFUQ0hdIEJsdWV0b290aDogYnR1c2I6IEFkZCBRdWFsY29tbSBBdGhlcm9zIEFSMzAwNiBp
bg0KPiBibGFja2xpc3RfdGFibGUNCj4gDQo+IEhpIENvc3RhLA0KPiANCj4gPiA+ID4gPiA+IFNp
Z25lZC1vZmYtYnk6IENvc3RhIFlhbyA8Y3F5YW9AcWNhLnF1YWxjb21tLmNvbT4NCj4gPiA+ID4g
PiA+IC0tLQ0KPiA+ID4gPiA+ID4gIGRyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgfCAgICA1ICsr
KystDQo+ID4gPiA+ID4gPiAgMSBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVs
ZXRpb25zKC0pDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv
Ymx1ZXRvb3RoL2J0dXNiLmMNCj4gPiA+ID4gPiA+IGIvZHJpdmVycy9ibHVldG9vdGgvYnR1c2Iu
YyBpbmRleCAzOWRkNjVjLi45NDEyNGFkIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVy
cy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ibHVldG9vdGgv
YnR1c2IuYw0KPiA+ID4gPiA+ID4gQEAgLTU1LDYgKzU1LDcgQEAgc3RhdGljIHN0cnVjdCB1c2Jf
ZHJpdmVyIGJ0dXNiX2RyaXZlcjsNCj4gPiA+ID4gPiA+ICAjZGVmaW5lIEJUVVNCX0JST0tFTl9J
U09DCTB4MjANCj4gPiA+ID4gPiA+ICAjZGVmaW5lIEJUVVNCX1dST05HX1NDT19NVFUJMHg0MA0K
PiA+ID4gPiA+ID4gICNkZWZpbmUgQlRVU0JfQVRIMzAxMgkJMHg4MA0KPiA+ID4gPiA+ID4gKyNk
ZWZpbmUgQlRVU0JfQVRIMzAwNgkJMHgwMTAwDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIHN0
YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBidHVzYl90YWJsZVtdID0gew0KPiA+ID4gPiA+ID4g
IAkvKiBCbHVldG9vdGggVVNCIGludGVyZmFjZSAqLyBAQCAtMTI1LDYgKzEyNiw3IEBAIHN0YXRp
Yw0KPiA+ID4gPiA+ID4gc3RydWN0IHVzYl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10gPSB7
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIAkvKiBBdGhlcm9zIDMwMTIgd2l0aCBzZmxhc2gg
ZmlybXdhcmUgKi8NCj4gPiA+ID4gPiA+ICAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA0KSwg
LmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMg0KPiA+ID4gPiA+ID4gfSwNCj4gPiA+ID4gPiA+
ICsJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA2KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRI
MzAwNg0KPiA+ID4gPiA+ID4gK30sDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIAkvKiBBdGhl
cm9zIEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovDQo+ID4gPiA+ID4gPiAgCXsgVVNC
X0RFVklDRSgweDA0ODksIDB4ZTAyYyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LA0K
PiA+ID4gPiA+ID4gQEANCj4gPiA+ID4gPiA+IC05MzcsNyArOTM5LDggQEAgc3RhdGljIGludCBi
dHVzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwNCj4gPiA+ID4gPiA+ICAJaWYg
KGlnbm9yZV9zbmlmZmVyICYmIGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX1NOSUZGRVIpDQo+ID4g
PiA+ID4gPiAgCQlyZXR1cm4gLUVOT0RFVjsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtCWlm
IChpZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9BVEgzMDEyKSB7DQo+ID4gPiA+ID4gPiArCWlmICgo
aWQtPmRyaXZlcl9pbmZvICYgQlRVU0JfQVRIMzAxMikgfHwNCj4gPiA+ID4gPiA+ICsJCQkJKGlk
LT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMDYpKSB7DQo+ID4gPiA+ID4gPiAgCQlzdHJ1Y3Qg
dXNiX2RldmljZSAqdWRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50Zik7DQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gIAkJLyogT2xkIGZpcm13YXJlIHdvdWxkIG90aGVyd2lzZSBsZXQgYXRo
M2sgZHJpdmVyIGxvYWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgICAgaWYgKGlkLT5kcml2
ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMTIpIHsNCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgc3Ry
dWN0IHVzYl9kZXZpY2UgKnVkZXYgPQ0KPiA+ID4gPiA+IGludGVyZmFjZV90b191c2JkZXYoaW50
Zik7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgLyogT2xkIGZpcm13YXJl
IHdvdWxkIG90aGVyd2lzZSBsZXQgYXRoM2sgZHJpdmVyDQo+IGxvYWQNCj4gPiA+ID4gPiAgICAg
ICAgICAgICAgICAgICogcGF0Y2ggYW5kIHN5c2NvbmZpZyBmaWxlcyAqLw0KPiA+ID4gPiA+ICAg
ICAgICAgICAgICAgICBpZiAobGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRvci5iY2REZXZpY2Up
IDw9DQo+ID4gPiAweDAwMDEpDQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIC1FTk9ERVY7DQo+ID4gPiA+ID4gICAgICAgICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBh
cmUgeW91IHN1cmUgdGhpcyBpcyB0cnVlIGZvciB0aGUgMzAwNiBhcyB3ZWxsPyBPdGhlcndpc2Ug
anVzdA0KPiA+ID4gPiA+IHVzaW5nIHRoZSBCVFVTQl9JR05PUkUgcXVpcmsgdG8gYmxhY2tsaXN0
IGEgZGV2aWNlIHdvdWxkIGJlIGVub3VnaC4NCj4gPiA+ID4gPg0KPiA+ID4gPiBJIHNlbmQgdGhp
cyBwYXRjaCBqdXN0IGZvciBhIDMwMTIgY2hpcCwgd2l0aCBQSUQgMzAwNi4gQmVjYXVzZSB3ZQ0K
PiA+ID4gPiBuZWVkIHRvDQo+ID4gPiBzZXBhcmF0ZSBpdCB3aXRoIGFub3RoZXIgMzAxMiBjaGlw
KFBJRCAzMDA0KS4NCj4gPiA+ID4gU28gd2UgdXNlIEJUVVNCX0FUSDMwMTIgZm9yIFBJRCAzMDA0
IGFuZCBCVFVTQl9BVEgzMDA2IGZvciBQSUQNCj4gMzAwNi4NCj4gPiA+ID4NCj4gPiA+ID4gQW5k
IEkgYW0gc3VyZSB0aGF0IHdlIG5lZWQgdXNlIHRoaXMgcXVpcmssIG5vdCBCVFVTQl9JR05PUkUu
DQo+ID4gPiA+IEJlY2F1c2Ugd2UNCj4gPiA+IG5lZWQgdG8gY2hlY2sgd2hldGhlciBjaGlwIGhh
cyBiZWVuIHBhdGNoZWQgb3Igbm90IHRocm91Z2ggYmNkRGV2aWNlDQo+IHZhbHVlLg0KPiA+ID4N
Cj4gPiA+IHNvIHlvdSBhcmUgdGVsbGluZyBtZSB0aGF0IHlvdSBndXlzIG1hbmFnZWQgdG8gc2Ny
ZXcgdXAgYW5vdGhlciBzZXQNCj4gPiA+IG9mIGhhcmR3YXJlIHdpdGggdGhlIHNhbWUgbWVzcyBh
cyB0aGUgcHJldmlvdXMgb25lLg0KPiA+ID4NCj4gPiA+IEFyZSB5b3UgMTAwJSBzdXJlIHlvdSBu
ZWVkIHRoZSBiY2REZXZpY2UgY2hlY2sgZm9yIHRoaXMgZ2VuZXJhdGlvbg0KPiA+ID4gb2YgaGFy
ZHdhcmU/IENhcmUgdG8gZXhwbGFpbiB0byBtZSBob3cgdGhhdCBpcyBzdXBwb3NlIHRvIHdvcmsu
DQo+ID4gWWVzLCBiZWZvcmUgZG93bmxvYWQgcGF0Y2gsIHRoZSBiY2REZXZpY2UgPD0gMHgwMDAx
IGluIGJ0dXNiLmMsIHRoZW4gYXRoM2sNCj4gZHJpdmVyIGhhdmUgdGhlIG9wcG9ydHVuaXR5IHRv
IGRvd25sb2FkIHRoZSBwYXRjaCBhbmQgcmVzZXQgdGhlIGJsdWV0b290aA0KPiBoYXJkd2FyZS4N
Cj4gPiBXaGVuIHRoZSBoYXJkd2FyZSBhcmUgZW51bWVyYXRlZCB0aGUgc2Vjb25kIHRpbWUsIHRo
ZSBiY2REZXZpY2Ugd2lsbA0KPiBsYXJnZXIgdGhhbiAweDAwMDEuIEZvciB0aGlzIHJlYXNvbiwg
SSBhbSAxMDAlIHN1cmUgdGhhdCB3ZSBuZWVkIGRvIGJjZERldmljZQ0KPiBjaGVjay4NCj4gPg0K
PiA+ID4gQW5kIHdoeSB5b3UgYXJlIGludHJvZHVjaW5nIGEgbmV3IHF1aXJrIGlmIHRoZSBoYW5k
bGluZyBpcyBleGFjdGx5IHRoZSBzYW1lLg0KPiA+IEluIGJ0dXNiLmMsIHllcywgdGhlIGhhbmRs
aW5nIGlzIHRoZSBzYW1lIGFzIEJUVVNCX0FUSDMwMTIuIFNvIG1heWJlIHdlDQo+IGNhbiB1c2Ug
dGhlIHNhbWUgcXVpcmsgQlRVU0JfQVRIMzAxMi4NCj4gPiBCdXQgaW4gYXRoM2suYywgdGhlIGhh
bmRsaW5nIGZvciBCVFVTQl9BVEgzMDA2IGlzIGRpZmZlcmVudCBmcm9tDQo+IEJUVVNCX0FUSDMw
MTIsIHNvIEkgd2FudCB0byBpbnRyb2R1Y2UgYSBuZXcgcXVpcmsgQlRVU0JfQVRIMzAwNi4NCj4g
DQo+IHRoZSBhdGgzay5jIGRyaXZlciBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBidHVzYi5j
IGRyaXZlci4gU28gcGxlYXNlIHJlbmFtZQ0KPiB0aGUgcXVpcmsgdG8gQlRVU0JfQVRIM0sgaW4g
YnR1c2IuYyBhbmQgdXNlIGl0IGZvciBib3RoLg0KPiANCj4gUmVnYXJkcw0KPiANCj4gTWFyY2Vs
DQo+IA0KDQo=

2011-11-18 05:17:58

by Marcel Holtmann

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

Hi Costa,

> > > > > Signed-off-by: Costa Yao <[email protected]>
> > > > > ---
> > > > > 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.
> >
> > so you are telling me that you guys managed to screw up another set of
> > hardware with the same mess as the previous one.
> >
> > Are you 100% sure you need the bcdDevice check for this generation of
> > hardware? Care to explain to me how that is suppose to work.
> Yes, before download patch, the bcdDevice <= 0x0001 in btusb.c, then ath3k driver have the opportunity to download the patch and reset the bluetooth hardware.
> When the hardware are enumerated the second time, the bcdDevice will larger than 0x0001. For this reason, I am 100% sure that we need do bcdDevice check.
>
> > And why you are introducing a new quirk if the handling is exactly the same.
> In btusb.c, yes, the handling is the same as BTUSB_ATH3012. So maybe we can use the same quirk BTUSB_ATH3012.
> But in ath3k.c, the handling for BTUSB_ATH3006 is different from BTUSB_ATH3012, so I want to introduce a new quirk BTUSB_ATH3006.

the ath3k.c driver has nothing to do with the btusb.c driver. So please
rename the quirk to BTUSB_ATH3K in btusb.c and use it for both.

Regards

Marcel



2011-11-18 02:22:09

by Yao, Costa

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

SGkgTWFyY2VsLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1hcmNl
bCBIb2x0bWFubiBbbWFpbHRvOm1hcmNlbEBob2x0bWFubi5vcmddDQo+IFNlbnQ6IDIwMTHlubQx
MeaciDE35pelIDIzOjUxDQo+IFRvOiBZYW8sIENvc3RhDQo+IENjOiBwYWRvdmFuQHByb2Z1c2lv
bi5tb2JpOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJFOiBb
UEFUQ0hdIEJsdWV0b290aDogYnR1c2I6IEFkZCBRdWFsY29tbSBBdGhlcm9zIEFSMzAwNiBpbg0K
PiBibGFja2xpc3RfdGFibGUNCj4gDQo+IEhpIENvc3RhLA0KPiANCj4gPiA+ID4gU2lnbmVkLW9m
Zi1ieTogQ29zdGEgWWFvIDxjcXlhb0BxY2EucXVhbGNvbW0uY29tPg0KPiA+ID4gPiAtLS0NCj4g
PiA+ID4gIGRyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgfCAgICA1ICsrKystDQo+ID4gPiA+ICAx
IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkNCj4gPiA+ID4N
Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgYi9kcml2ZXJz
L2JsdWV0b290aC9idHVzYi5jDQo+ID4gPiA+IGluZGV4IDM5ZGQ2NWMuLjk0MTI0YWQgMTAwNjQ0
DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMNCj4gPiA+ID4gKysrIGIv
ZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+ID4gPiBAQCAtNTUsNiArNTUsNyBAQCBzdGF0
aWMgc3RydWN0IHVzYl9kcml2ZXIgYnR1c2JfZHJpdmVyOw0KPiA+ID4gPiAgI2RlZmluZSBCVFVT
Ql9CUk9LRU5fSVNPQwkweDIwDQo+ID4gPiA+ICAjZGVmaW5lIEJUVVNCX1dST05HX1NDT19NVFUJ
MHg0MA0KPiA+ID4gPiAgI2RlZmluZSBCVFVTQl9BVEgzMDEyCQkweDgwDQo+ID4gPiA+ICsjZGVm
aW5lIEJUVVNCX0FUSDMwMDYJCTB4MDEwMA0KPiA+ID4gPg0KPiA+ID4gPiAgc3RhdGljIHN0cnVj
dCB1c2JfZGV2aWNlX2lkIGJ0dXNiX3RhYmxlW10gPSB7DQo+ID4gPiA+ICAJLyogQmx1ZXRvb3Ro
IFVTQiBpbnRlcmZhY2UgKi8NCj4gPiA+ID4gQEAgLTEyNSw2ICsxMjYsNyBAQCBzdGF0aWMgc3Ry
dWN0IHVzYl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10NCj4gPiA+ID4gPSB7DQo+ID4gPiA+
DQo+ID4gPiA+ICAJLyogQXRoZXJvcyAzMDEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovDQo+ID4g
PiA+ICAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA0KSwgLmRyaXZlcl9pbmZvID0gQlRVU0Jf
QVRIMzAxMiB9LA0KPiA+ID4gPiArCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwNiksIC5kcml2
ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMDYgfSwNCj4gPiA+ID4NCj4gPiA+ID4gIAkvKiBBdGhlcm9z
IEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovDQo+ID4gPiA+ICAJeyBVU0JfREVWSUNF
KDB4MDQ4OSwgMHhlMDJjKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sIEBADQo+ID4g
PiA+IC05MzcsNyArOTM5LDggQEAgc3RhdGljIGludCBidHVzYl9wcm9iZShzdHJ1Y3QgdXNiX2lu
dGVyZmFjZSAqaW50ZiwNCj4gPiA+ID4gIAlpZiAoaWdub3JlX3NuaWZmZXIgJiYgaWQtPmRyaXZl
cl9pbmZvICYgQlRVU0JfU05JRkZFUikNCj4gPiA+ID4gIAkJcmV0dXJuIC1FTk9ERVY7DQo+ID4g
PiA+DQo+ID4gPiA+IC0JaWYgKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMTIpIHsNCj4g
PiA+ID4gKwlpZiAoKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMTIpIHx8DQo+ID4gPiA+
ICsJCQkJKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMDYpKSB7DQo+ID4gPiA+ICAJCXN0
cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsNCj4gPiA+
ID4NCj4gPiA+ID4gIAkJLyogT2xkIGZpcm13YXJlIHdvdWxkIG90aGVyd2lzZSBsZXQgYXRoM2sg
ZHJpdmVyIGxvYWQNCj4gPiA+DQo+ID4gPiAgICAgICAgIGlmIChpZC0+ZHJpdmVyX2luZm8gJiBC
VFVTQl9BVEgzMDEyKSB7DQo+ID4gPiAgICAgICAgICAgICAgICAgc3RydWN0IHVzYl9kZXZpY2Ug
KnVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGYpOw0KPiA+ID4NCj4gPiA+ICAgICAgICAg
ICAgICAgICAvKiBPbGQgZmlybXdhcmUgd291bGQgb3RoZXJ3aXNlIGxldCBhdGgzayBkcml2ZXIg
bG9hZA0KPiA+ID4gICAgICAgICAgICAgICAgICAqIHBhdGNoIGFuZCBzeXNjb25maWcgZmlsZXMg
Ki8NCj4gPiA+ICAgICAgICAgICAgICAgICBpZiAobGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRv
ci5iY2REZXZpY2UpIDw9DQo+IDB4MDAwMSkNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAtRU5PREVWOw0KPiA+ID4gICAgICAgICB9DQo+ID4gPg0KPiA+ID4gYXJlIHlvdSBz
dXJlIHRoaXMgaXMgdHJ1ZSBmb3IgdGhlIDMwMDYgYXMgd2VsbD8gT3RoZXJ3aXNlIGp1c3QgdXNp
bmcNCj4gPiA+IHRoZSBCVFVTQl9JR05PUkUgcXVpcmsgdG8gYmxhY2tsaXN0IGEgZGV2aWNlIHdv
dWxkIGJlIGVub3VnaC4NCj4gPiA+DQo+ID4gSSBzZW5kIHRoaXMgcGF0Y2gganVzdCBmb3IgYSAz
MDEyIGNoaXAsIHdpdGggUElEIDMwMDYuIEJlY2F1c2Ugd2UgbmVlZCB0bw0KPiBzZXBhcmF0ZSBp
dCB3aXRoIGFub3RoZXIgMzAxMiBjaGlwKFBJRCAzMDA0KS4NCj4gPiBTbyB3ZSB1c2UgQlRVU0Jf
QVRIMzAxMiBmb3IgUElEIDMwMDQgYW5kIEJUVVNCX0FUSDMwMDYgZm9yIFBJRCAzMDA2Lg0KPiA+
DQo+ID4gQW5kIEkgYW0gc3VyZSB0aGF0IHdlIG5lZWQgdXNlIHRoaXMgcXVpcmssIG5vdCBCVFVT
Ql9JR05PUkUuIEJlY2F1c2Ugd2UNCj4gbmVlZCB0byBjaGVjayB3aGV0aGVyIGNoaXAgaGFzIGJl
ZW4gcGF0Y2hlZCBvciBub3QgdGhyb3VnaCBiY2REZXZpY2UgdmFsdWUuDQo+IA0KPiBzbyB5b3Ug
YXJlIHRlbGxpbmcgbWUgdGhhdCB5b3UgZ3V5cyBtYW5hZ2VkIHRvIHNjcmV3IHVwIGFub3RoZXIg
c2V0IG9mDQo+IGhhcmR3YXJlIHdpdGggdGhlIHNhbWUgbWVzcyBhcyB0aGUgcHJldmlvdXMgb25l
Lg0KPiANCj4gQXJlIHlvdSAxMDAlIHN1cmUgeW91IG5lZWQgdGhlIGJjZERldmljZSBjaGVjayBm
b3IgdGhpcyBnZW5lcmF0aW9uIG9mDQo+IGhhcmR3YXJlPyBDYXJlIHRvIGV4cGxhaW4gdG8gbWUg
aG93IHRoYXQgaXMgc3VwcG9zZSB0byB3b3JrLg0KWWVzLCBiZWZvcmUgZG93bmxvYWQgcGF0Y2gs
IHRoZSBiY2REZXZpY2UgPD0gMHgwMDAxIGluIGJ0dXNiLmMsIHRoZW4gYXRoM2sgZHJpdmVyIGhh
dmUgdGhlIG9wcG9ydHVuaXR5IHRvIGRvd25sb2FkIHRoZSBwYXRjaCBhbmQgcmVzZXQgdGhlIGJs
dWV0b290aCBoYXJkd2FyZS4NCldoZW4gdGhlIGhhcmR3YXJlIGFyZSBlbnVtZXJhdGVkIHRoZSBz
ZWNvbmQgdGltZSwgdGhlIGJjZERldmljZSB3aWxsIGxhcmdlciB0aGFuIDB4MDAwMS4gRm9yIHRo
aXMgcmVhc29uLCBJIGFtIDEwMCUgc3VyZSB0aGF0IHdlIG5lZWQgZG8gYmNkRGV2aWNlIGNoZWNr
Lg0KDQo+IEFuZCB3aHkgeW91IGFyZSBpbnRyb2R1Y2luZyBhIG5ldyBxdWlyayBpZiB0aGUgaGFu
ZGxpbmcgaXMgZXhhY3RseSB0aGUgc2FtZS4NCkluIGJ0dXNiLmMsIHllcywgdGhlIGhhbmRsaW5n
IGlzIHRoZSBzYW1lIGFzIEJUVVNCX0FUSDMwMTIuIFNvIG1heWJlIHdlIGNhbiB1c2UgdGhlIHNh
bWUgcXVpcmsgQlRVU0JfQVRIMzAxMi4NCkJ1dCBpbiBhdGgzay5jLCB0aGUgaGFuZGxpbmcgZm9y
IEJUVVNCX0FUSDMwMDYgaXMgZGlmZmVyZW50IGZyb20gQlRVU0JfQVRIMzAxMiwgc28gSSB3YW50
IHRvIGludHJvZHVjZSBhIG5ldyBxdWlyayBCVFVTQl9BVEgzMDA2LiANCj4gDQo+IFJlZ2FyZHMN
Cj4gDQo+IE1hcmNlbA0KPiANCg0K

2011-11-17 15:51:29

by Marcel Holtmann

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

Hi Costa,

> > > Signed-off-by: Costa Yao <[email protected]>
> > > ---
> > > 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.

so you are telling me that you guys managed to screw up another set of
hardware with the same mess as the previous one.

Are you 100% sure you need the bcdDevice check for this generation of
hardware? Care to explain to me how that is suppose to work. And why you
are introducing a new quirk if the handling is exactly the same.

Regards

Marcel



2011-11-17 05:15:13

by Yao, Costa

[permalink] [raw]
Subject: RE: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

SGkgTWFyY2VsLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1hcmNl
bCBIb2x0bWFubiBbbWFpbHRvOm1hcmNlbEBob2x0bWFubi5vcmddDQo+IFNlbnQ6IDIwMTHlubQx
MeaciDE25pelIDIxOjI5DQo+IFRvOiBZYW8sIENvc3RhDQo+IENjOiBwYWRvdmFuQHByb2Z1c2lv
bi5tb2JpOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBb
UEFUQ0hdIEJsdWV0b290aDogYnR1c2I6IEFkZCBRdWFsY29tbSBBdGhlcm9zIEFSMzAwNiBpbg0K
PiBibGFja2xpc3RfdGFibGUNCj4gDQo+IEhpIENvc3RhLA0KPiANCj4gPiBTaWduZWQtb2ZmLWJ5
OiBDb3N0YSBZYW8gPGNxeWFvQHFjYS5xdWFsY29tbS5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZl
cnMvYmx1ZXRvb3RoL2J0dXNiLmMgfCAgICA1ICsrKystDQo+ID4gIDEgZmlsZXMgY2hhbmdlZCwg
NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgYi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jDQo+ID4g
aW5kZXggMzlkZDY1Yy4uOTQxMjRhZCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2JsdWV0b290
aC9idHVzYi5jDQo+ID4gKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+IEBAIC01
NSw2ICs1NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBidHVzYl9kcml2ZXI7DQo+ID4g
ICNkZWZpbmUgQlRVU0JfQlJPS0VOX0lTT0MJMHgyMA0KPiA+ICAjZGVmaW5lIEJUVVNCX1dST05H
X1NDT19NVFUJMHg0MA0KPiA+ICAjZGVmaW5lIEJUVVNCX0FUSDMwMTIJCTB4ODANCj4gPiArI2Rl
ZmluZSBCVFVTQl9BVEgzMDA2CQkweDAxMDANCj4gPg0KPiA+ICBzdGF0aWMgc3RydWN0IHVzYl9k
ZXZpY2VfaWQgYnR1c2JfdGFibGVbXSA9IHsNCj4gPiAgCS8qIEJsdWV0b290aCBVU0IgaW50ZXJm
YWNlICovDQo+ID4gQEAgLTEyNSw2ICsxMjYsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2Vf
aWQgYmxhY2tsaXN0X3RhYmxlW10gPSB7DQo+ID4NCj4gPiAgCS8qIEF0aGVyb3MgMzAxMiB3aXRo
IHNmbGFzaCBmaXJtd2FyZSAqLw0KPiA+ICAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA0KSwg
LmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KPiA+ICsJeyBVU0JfREVWSUNFKDB4MGNm
MywgMHgzMDA2KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAwNiB9LA0KPiA+DQo+ID4gIAkv
KiBBdGhlcm9zIEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovDQo+ID4gIAl7IFVTQl9E
RVZJQ0UoMHgwNDg5LCAweGUwMmMpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9JR05PUkUgfSwgQEAN
Cj4gPiAtOTM3LDcgKzkzOSw4IEBAIHN0YXRpYyBpbnQgYnR1c2JfcHJvYmUoc3RydWN0IHVzYl9p
bnRlcmZhY2UgKmludGYsDQo+ID4gIAlpZiAoaWdub3JlX3NuaWZmZXIgJiYgaWQtPmRyaXZlcl9p
bmZvICYgQlRVU0JfU05JRkZFUikNCj4gPiAgCQlyZXR1cm4gLUVOT0RFVjsNCj4gPg0KPiA+IC0J
aWYgKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMTIpIHsNCj4gPiArCWlmICgoaWQtPmRy
aXZlcl9pbmZvICYgQlRVU0JfQVRIMzAxMikgfHwNCj4gPiArCQkJCShpZC0+ZHJpdmVyX2luZm8g
JiBCVFVTQl9BVEgzMDA2KSkgew0KPiA+ICAJCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50
ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsNCj4gPg0KPiA+ICAJCS8qIE9sZCBmaXJtd2FyZSB3b3Vs
ZCBvdGhlcndpc2UgbGV0IGF0aDNrIGRyaXZlciBsb2FkDQo+IA0KPiAgICAgICAgIGlmIChpZC0+
ZHJpdmVyX2luZm8gJiBCVFVTQl9BVEgzMDEyKSB7DQo+ICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
dXNiX2RldmljZSAqdWRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50Zik7DQo+IA0KPiAgICAg
ICAgICAgICAgICAgLyogT2xkIGZpcm13YXJlIHdvdWxkIG90aGVyd2lzZSBsZXQgYXRoM2sgZHJp
dmVyIGxvYWQNCj4gICAgICAgICAgICAgICAgICAqIHBhdGNoIGFuZCBzeXNjb25maWcgZmlsZXMg
Ki8NCj4gICAgICAgICAgICAgICAgIGlmIChsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmJj
ZERldmljZSkgPD0gMHgwMDAxKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVO
T0RFVjsNCj4gICAgICAgICB9DQo+IA0KPiBhcmUgeW91IHN1cmUgdGhpcyBpcyB0cnVlIGZvciB0
aGUgMzAwNiBhcyB3ZWxsPyBPdGhlcndpc2UganVzdCB1c2luZyB0aGUNCj4gQlRVU0JfSUdOT1JF
IHF1aXJrIHRvIGJsYWNrbGlzdCBhIGRldmljZSB3b3VsZCBiZSBlbm91Z2guDQo+IA0KSSBzZW5k
IHRoaXMgcGF0Y2gganVzdCBmb3IgYSAzMDEyIGNoaXAsIHdpdGggUElEIDMwMDYuIEJlY2F1c2Ug
d2UgbmVlZCB0byBzZXBhcmF0ZSBpdCB3aXRoIGFub3RoZXIgMzAxMiBjaGlwKFBJRCAzMDA0KS4N
ClNvIHdlIHVzZSBCVFVTQl9BVEgzMDEyIGZvciBQSUQgMzAwNCBhbmQgQlRVU0JfQVRIMzAwNiBm
b3IgUElEIDMwMDYuDQoNCkFuZCBJIGFtIHN1cmUgdGhhdCB3ZSBuZWVkIHVzZSB0aGlzIHF1aXJr
LCBub3QgQlRVU0JfSUdOT1JFLiBCZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgd2hldGhlciBjaGlw
IGhhcyBiZWVuIHBhdGNoZWQgb3Igbm90IHRocm91Z2ggYmNkRGV2aWNlIHZhbHVlLg0KPiBBbmQg
c3RhcnQgd3JpdGluZyBkZXRhaWxlZCBjb21taXQgbWVzc2FnZSB0aGF0IGV4cGxhaW5zIHdoeSB0
aGlzIHF1aXJrIGlzDQo+IGNvcnJlY3QgYW5kIG5lZWRlZC4NCj4gDQo+IFJlZ2FyZHMNCj4gDQo+
IE1hcmNlbA0KPiANCg0KQmVzdCB3aXNoZXMsDQpDb3N0YSBZYW8NCg==

2011-11-16 13:29:10

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: btusb: Add Qualcomm Atheros AR3006 in blacklist_table

Hi Costa,

> Signed-off-by: Costa Yao <[email protected]>
> ---
> 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