All of lore.kernel.org
 help / color / mirror / Atom feed
* RE: Bluetooth USB device keeps same PID/VID after downloading the patch and radio table
@ 2011-05-26  8:46 Steven Li
  2011-05-26  9:30 ` Steven Li
  0 siblings, 1 reply; 6+ messages in thread
From: Steven Li @ 2011-05-26  8:46 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Gustavo F. Padovan, Bluettooth Linux, Haijun Liu, Hong Fan,
	Vic Wei, Jack Chen(Taipei),
	Robert Chang, Luis R. Rodriguez

SGkgTWFyY2VsOg0KDQo+IHdoeSBkbyB5b3Ugd2FudCB0aGlzIGF0IGFsbC4gWW91IHJ1biBhIGRp
ZmZlcmVudCBwcm90b2NvbCB3aXRoIGRpZmZlcmVudA0KPiBlbmRwb2ludHMgb24gdGhlIGRldmlj
ZSBpbiBERlUgbW9kZSBhbmQgb24gdGhlIGRldmljZSBpbiBIOjIgbW9kZS4NCg0KU29ycnksIEkg
bWFkZSBhIG1pc3Rha2UgaW4gdGhlIHN1YmplY3Qgb2YgdGhpcyBtYWlsIHRocmVhZC4NClRoZSAi
Qmx1ZXRvb3RoIFVTQiBkZXZpY2Uga2VlcHMgc2FtZSBQSUQvVklEIGFmdGVyIERGVSIuDQogc2hv
dWxkIGJlICIgQmx1ZXRvb3RoIFVTQiBkZXZpY2Uga2VlcHMgc2FtZSBQSUQvVklEIGFmdGVyIGRv
d25sb2FkaW5nIHRoZSBwYXRjaCBhbmQgcmFkaW8gdGFibGUiLg0KDQpBcyB0byB0aGUgQXRoZXJv
cyAzMDExIGNoaXAuICB5ZXMsIGl0IHVzZXMgREZVIG1vZGUgdG8gZG93bmxvYWQgdGhlIGZpcm13
YXJlLg0KU28gdGhlcmUgYXJlIGRpZmZlcmVudCBwcm90b2NvbHMgd2l0aCBkaWZmZXJlbnQgZW5k
cG9pbnRzIG9uIHRoZSBkZXZpY2UuDQoNCkJ1dCBub3csIHdlIGFyZSBnb2luZyB0byB1cHN0cmVh
bSBvdXIgbmV3IEF0aGVyb3MgMzAxMiBjaGlwIGFuZCB0aGluZ3MgYXJlIG5vdCBsaWtlIHRoYXQu
DQpUaGUgQXRoZXJvcyAzMDEyIGNoaXAgaXMgYSBuYXRpdmUgYmx1ZXRvb3RoIGRldmljZSwgZXZl
biB3aXRob3V0IGRvd25sb2FkaW5nIHBhdGNoIGFuZCByYWRpbyB0YWJsZS4NClRoZSBwYXRjaCBh
bmQgcmFkaW8gdGFibGUgYXJlIHVzZWQgdG8gZml4IHRob3NlIGJ1Z3MgZm91bmQgYWZ0ZXIgY2hp
cCBzaGlwcGluZy4gIFNvIHdpdGggdGhpcyBkZXNpZ24sIHRoZSBBdGhlcm9zIDMwMTIgY2hpcA0K
IGFsd2F5cyBrZWVwcyBzYW1lIFBJRC9WSUQgZXZlbiBhZnRlciBkb3dubG9hZGluZyB0aGUgcGF0
Y2ggYW5kIHJhZGlvIHRhYmxlLg0KDQpUaGF0IGNvbWVzIG91dCBvdXIgY29uY2VybiB0byB0aGUg
YnR1c2IgZHJpdmVyLg0KDQoNCg0KQmVzdCBSZWdhcmRzLA0KU3RldmVuLA0KDQoNCj4gLS0tLS1P
cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWFyY2VsIEhvbHRtYW5uIFttYWlsdG86bWFy
Y2VsQGhvbHRtYW5uLm9yZ10NCj4gU2VudDogVGh1cnNkYXksIE1heSAyNiwgMjAxMSAxMDo0NyBB
TQ0KPiBUbzogU3RldmVuIExpDQo+IENjOiBHdXN0YXZvIEYuIFBhZG92YW47IEJsdWV0dG9vdGgg
TGludXg7IEhhaWp1biBMaXU7IEhvbmcgRmFuOyBWaWMgV2VpOyBKYWNrDQo+IENoZW4oVGFpcGVp
KTsgUm9iZXJ0IENoYW5nOyBMdWlzIFIuIFJvZHJpZ3Vleg0KPiBTdWJqZWN0OiBSZTogQmx1ZXRv
b3RoIFVTQiBkZXZpY2Uga2VlcHMgc2FtZSBQSUQvVklEIGFmdGVyIERGVQ0KPiANCj4gSGkgU3Rl
dmVuLA0KPiANCj4gPiBIZXJlIGlzIHN0ZXZlbiBmcm9tIEF0aGVyb3MuICBHbGFkIHRvIGNvbnRh
Y3QgeW91IGhlcmUuIHdlIGhhdmUgc29tZQ0KPiBjb25jZXJucyB0byB0aGUgYnR1c2IgZGV2aWNl
IGRyaXZlci4NCj4gPiBQcmVzZW50IFVTQiBCbHVldG9vdGggaW1wbGVtZW50YXRpb24gaW4gTGlu
dXggaGFzIHNvbWUgbGltaXRhdGlvbnMuIE1hbnkNCj4gdmVuZG9ycyBuZWVkIHRvIGxvYWQgcGF0
Y2ggYW5kIG90aGVyIHNwZWNpZmljIG9wZXJhdGlvbnMgZHVyaW5nIGRldmljZQ0KPiBwcm9iZSBv
ciBkaXNjb25uZWN0IHRvIHRoZWlyIEJsdWV0b290aCBkZXZpY2UsIGJ1dCBidHVzYiBkcml2ZXIg
Z2l2ZXMNCj4gbGltaXRhdGlvbiB0byB0aGlzIGJlaGF2aW9yLiAgSXQgbmVlZHMgdG8gYWRkIHRo
ZSBCbHVldG9vdGggZGV2aWNlIFBJRC9WSUQgaW50bw0KPiB0aGUgYnR1c2IgYmxhY2tsaXN0LCBh
bmQgdXNlIHRoZSB2ZW5kb3Igc3BlY2lmaWMgZHJpdmVyIHRvIGxvYWQgZmlybXdhcmUuIEJ5DQo+
IHRoaXMsIGl0IGNhdXNlcyB0aGUgQmx1ZXRvb3RoIGRldmljZSAiTVVTVCIgaGF2ZSB0d28gUElE
L1ZJRHMgaW4gTGludXguICBCdXQNCj4gb24gd2luZG93cyBwbGF0Zm9ybSwgdGhlIGRldmljZSBj
YW4gYWx3YXlzIGtlZXAgb25lIHNhbWUgUElEL1ZJRC4gIEl0IGlzDQo+IGhhcmQgZm9yIHVzIHRv
IGhhbmRsZSB0aGlzIGlzc3VlIHdpdGggY3VycmVudCBidHVzYiBkZXNpZ24uDQo+ID4gTW9yZW92
ZXIgaW4gb3VyIEF0aGVyb3MgMzAxMiBjaGlwLCB3ZSBhbHNvIG5lZWQgdG8gc3dpdGNoIHRoZSAz
MDEyIGNoaXANCj4gYmV0d2VlbiAibm9ybWFsIiBtb2RlIGFuZCAicHJlLWJvb3QiIG1vZGUgZHVy
aW5nIFBDIHJlYm9vdCwgIHdpdGgNCj4gY3VycmVudCBidHVzYiBkZXNpZ24sIHdlIGhhdmUgdG8g
bWFrZSBjaGFuZ2VzIGluIGJ0dXNiLmMgZGlyZWN0bHksIGJ1dCBpdCBpcw0KPiBvdXIgY2hpcCBz
cGVjaWZpYyByZXF1aXJlbWVudHMuICBUaGVyZWZvcmUsIHdl4oCZZCBsaWtlIHRvIHByb3Bvc2Ug
c29tZQ0KPiBtZXRob2RzIHRvIG1ha2UgdGhlIEJsdWV0b290aCBkZXZpY2UgaGFzIG9ubHkgb25l
IFBJRC9WSUQgYnkgcHJvcGVyDQo+IGJ0dXNiIG1vZGlmaWNhdGlvbiBhbmQgYWxzbyBmb3Igb3Ro
ZXIgdmVuZG9yIGV4dGVuc2lvbnMgc3VjaCBhcyBtb2RlIHN3aXRjaC4NCj4gPg0KPiA+IEN1cnJl
bnRseSwgd2UgaGF2ZSB0aHJlZSBwcm9wb3NhbHMuIEFuZCBJIGF0dGFjaGVkIG91ciByb3VnaCBw
YXRjaGVzIGZvcg0KPiB0aGVzZSB0aHJlZSBwcm9wb3NhbHMuDQo+ID4gVGhleSBhcmUgdG90YWxs
eSBub3QgZm9ybWFsLCBJIGF0dGFjaGVkIHRoZW0ganVzdCB3YW50IHRvIG1ha2UgeW91IGVhc3kg
dG8NCj4gdW5kZXJzdGFuZC4NCj4gPg0KPiA+IEFuZCBmcm9tIGhlcmUsIExldCBtZSBleHBsYWlu
IG1vcmUgb2YgIHRoZXNlIHByb3Bvc2FsIG9uZSBieSBvbmUuDQo+ID4NCj4gPiAjIFByb3Bvc2Fs
IDEuDQo+ID4gVGhpcyBvcHRpb24gY291bGQgYmUgcmVmZXIgdG8gd2hhdCBpdOKAmXMgd29ya2lu
ZyBmb3IgbG90cyBvZiBVQVJUIEJsdWV0b290aA0KPiBkZXZpY2VzIGluIExpbnV4Lg0KPiA+IE1h
aW5seSwgdmVuZG9yIGRyaXZlciB3b3VsZCBiZSBidWlsdCBhcyBhbiBvYmplY3Qgb2YgYnR1c2Iu
a28uIFRoaXMgc2hvdWxkDQo+IGJlIHNhbWUgYXMgdGhvc2UgVUFSVCBCbHVldG9vdGggZHJpdmVy
cy4NCj4gPiBJbiBvdXIgY2FzZSwgYXRoM2sgd291bGQgYmUgYnVpbHQgYXMgYW4gb2JqZWN0IGZp
bGUgYWNjb3JkaW5nIHRvDQo+IENPTkZJR19CVF9BVEgzSyBkZWZpbmUuDQo+ID4gVGhlbiBidHVz
YiBrZXJuZWwgbW9kdWxlIHdpbGwgYmUgY29tcG9zZWQgb2YgYnR1c2IubyBhbmQgYXRoM2suby4g
IFNvIGl0IGlzDQo+IGVhc3kgdG8gbWFrZSBvbmUgUElEL1ZJRCBkZXZpY2Ugd29yay4NCj4gPiBU
aGlzIGNvbmNlcHQgd2FzIG9yaWVudGVkIGJ5IGhjaV91YXJ0IGRyaXZlci4gIEl0IGNhbiBqdW1w
IHRvIGluZGl2aWR1YWwNCj4gZW50cnkgZnVuY3Rpb24gYmFzZWQgb24gZGlmZmVyZW50IElELg0K
PiA+IEFuZCB0aGluZ3MgbGlrZSBtb2RlIHN3aXRjaCBhbHNvIGNvdWxkIGJlIGhhbmRsZWQgYnkg
anVzdCBhZGRpbmcgZnVuY3Rpb24NCj4gbGlrZSBzd2l0Y2hfbW9kZSgpIGluIGF0aDNrLmMuDQo+
ID4NCj4gPiAjIFByb3Bvc2FsIDIuDQo+ID4gVGhpcyBvcHRpb24gaXMgdG8gZXhwb3J0IGJ0dXNi
IGNvbW1vbiBmdW5jdGlvbnMsIGFuZCB2ZW5kb3IgZHJpdmVyIChmb3INCj4gZXhhbXBsZSBvdXIg
YXRoM2spIGNhbiBiZSB0YWtlbiBhcyB0aGUgZXh0ZW5zaW9uIG9mIGJ0dXNiLg0KPiA+ICwgYW5k
IGl0IGNhbiBmaXJzdCBkb3dubG9hZHMgdGhlIGZpcm13YXJlIGFuZCB0aGVuIHVzZSB0aG9zZSBm
dW5jdGlvbnMNCj4gZXhwb3J0ZWQgaW4gYnR1c2IgZHJpdmVyDQo+ID4gdG8gc2V0dXAgdGhlIGhj
aSBCbHVldG9vdGggZGV2aWNlLiAgTW9yZW92ZXIgaWYgaXQgaXMgcG9zc2libGUsIHdlIGFyZSBh
bHNvDQo+IHByb3Bvc2UgdG8gcmVmaW5lIHRoZSBidHVzYi5jIGFuZCBzcGxpdCB0aGUgYnR1c2Iu
YyB0byBidHVzYl9jb3JlLmMgYW5kDQo+IGJ0dXNiX2dlbmVyaWMuYywNCj4gPiBJbiB0aGUgYnR1
c2JfY29yZS5jLiBJdCBpbmNsdWRlcyBhbGwgdGhlICBCbHVldG9vdGggdXNiIGNvbW1vbiBvcGVy
YXRpb25zDQo+IGFuZCB0aGVzZSBCbHVldG9vdGggdXNiIGZ1bmN0aW9ucyB3aWxsIGJlIGV4cG9y
dGVkLA0KPiA+IGFuZCB0aGUgYnR1c2JfZ2VuZXJpYy5jIGlzIHRoZSByZWFsIGdlbmVyaWMgQmx1
ZXRvb3RoIGRyaXZlciByZW1haW5zDQo+IHN1cHBvcnQgYWxsIGN1cnJlbnQgQmx1ZXRvb3RoIGRl
dmljZSAsd2hpY2ggdXNlcyB0aGUgYnR1c2JfY29yZSBmdW5jdGlvbnMuDQo+ID4gQW5kIHZlbmRv
ciBkcml2ZXIgY2FuIGFsc28gY2FsbCB0aG9zZSB1c2IgY29tbW9uIG9wZXJhdGlvbnMgaW4gdGhl
DQo+IGJ0dXNiX2NvcmUuYy4NCj4gPiBXaXRoIHRoaXMgcHJvcG9zYWwsIFNpbmNlIHRoZSBhdGgz
ayBkcml2ZXIgYXJlIHRoZSBvbmx5IG93bmVyIG9mIHRoZQ0KPiBibHVldG9vdGggZGV2aWNlLCBv
bmx5IG9uZSBQSUQvVklEIGlzIG5lY2Vzc2FyeS4NCj4gPiBBbmQgaXQgaXMgdmVyeSBlYXN5IHRv
IGhhbmRsZSB0aGUgbW9kZSBzd2l0Y2ggY2FzZSBpbiBpdHNlbGYgZWl0aGVyLiBQbGVhc2UNCj4g
Y2hlY2sgYnR1c2JfYXRoM2tfMi5wYXRjaCBmb3IgZGV0YWlsLg0KPiA+DQo+ID4gIyBQcm9wb3Nh
bCAzLg0KPiA+IFRoaXMgb3B0aW9uIGlzIHRvIGFkZCAicXVpcmsgZGV2aWNlIiB0byBidHVzYiBk
cml2ZXIuIFdlIGZvdW5kIGFjdHVhbGx5IHlvdQ0KPiBhZGRlZCBsb3RzIG9mIHNvLWNhbGxlZCDi
gJxxdWlya+KAnSBpbXBsZW1lbnRhdGlvbiBpbiBidHVzYiBkcml2ZXIgZm9yIG1hbnkNCj4gdmVu
ZG9ycy4NCj4gPiBodHRwOi8vZ2l0Lmtlcm5lbC5vcmcvP3A9bGludXgva2VybmVsL2dpdC9uZXh0
L2xpbnV4LQ0KPiBuZXh0LmdpdDthPWNvbW1pdDtoPWNmZWI0MTQ1MzdiMWQ3YzIzYmEyMDJmMTk4
ZmE0MTU0Y2Q1YTQ4NTYNCj4gPiBWZW5kb3Igc3BlY2lmaWMgZHJpdmVyIGNhbiBjYWxsIGJ0dXNi
X3JlZ2lzdGVyX3F1aXJrX2RldmljZSgpIGZ1bmN0aW9uIHRvDQo+IHJlZ2lzdGVyIGl0c2VsZiB0
byB0aGUgYnR1c2IgZHJpdmVyLg0KPiA+IFNvIGR1cmluZyB0aGUgZGV2aWNlIHByb2JlLCB0aGUg
YnR1c2Igd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIGRldmljZSBpZCwgYW5kIGlmDQo+IGl0IGlzIGEg
4oCccXVpcmvigJ0gZGV2aWNlLCBpdCB3aWxsIGNhbGwNCj4gPiB0aGUg4oCccXVpcmvigJ0gZGV2
aWNl4oCZcyBzcGVjaWZpYyBmdW5jdGlvbiBmaXJzdC4gIEV2ZXJ5IHZlbmRvciBjYW4gdXNlIHRo
aXMgcXVpcmsNCj4gdG8gZG93bmxvYWQgdGhlaXIgZmlybXdhcmUgYW5kIGtlZXAgdGhlIHNhbWUg
UElEL1ZJRCB3aXRoIHByb3BlciBjb2RlcyBpbg0KPiBidHVzYi5jLg0KPiA+IFRoaXMgcHJvcG9z
YWwgaXMgYWxzbyBhYmxlIHRvIGhhbmRsZSB0aGUgbW9kZSBzd2l0Y2ggY2FzZS4NCj4gPg0KPiA+
IFBsZWFzZSBnaXZlIHlvdXIgY29tbWVudHMgYW5kIHN1Z2dlc3Rpb24gZm9yIG91ciBwcm9wb3Nh
bHMuDQo+ID4gV2UgYXJlIGhvcGluZyB0byBtYWtlIG9uZSBQSUQvVklEIHdvcmsgYW5kIGNvbnRy
aWJ1dGUgdG8gdGhlDQo+IGNvbW11bml0eS4NCj4gDQo+IHdoeSBkbyB5b3Ugd2FudCB0aGlzIGF0
IGFsbC4gWW91IHJ1biBhIGRpZmZlcmVudCBwcm90b2NvbCB3aXRoIGRpZmZlcmVudA0KPiBlbmRw
b2ludHMgb24gdGhlIGRldmljZSBpbiBERlUgbW9kZSBhbmQgb24gdGhlIGRldmljZSBpbiBIOjIg
bW9kZS4NCj4gDQo+IFNvIHlvdSBhY3R1YWxseSBoYXZlIGRpZmZlcmVudCBmdW5jdGlvbmFsaXR5
LiBBbmQgSSBwZXJzb25hbGx5IGRvIG5vdA0KPiBjYXJlIHdoYXQgV2luZG93cyBpcyBkb2luZy4g
VGhpcyBpcyBMaW51eCwgc28gcGxlYXNlIGZvbGxvdyB3aGF0IHRoZQ0KPiBMaW51eCBjb21tdW5p
dHkgZXhwZWN0IHlvdSB0byBkby4NCj4gDQo+IEFsc28gaW4gY2FzZSBvZiBidHVzYiwgeW91IGNh
biB1c2UgdGhlIEJsdWV0b290aCBTSUcgKGFuZCBmb3IgdGhhdA0KPiBtYXR0ZXIgVVNCIFNJRykg
ZGVmaW5lZCBpbnRlcmZhY2UgaWRlbnRpZmllcnMuIFRoZSBidHVzYiBkcml2ZXIgZG9lcyBub3QN
Cj4gbWF0Y2ggYnkgZGVmYXVsdCB0byBWSUQvUElELiBJdCB1c2VzIGEgc3RhbmRhcmQuIElmIHlv
dSB3YW5uYSB1c2UgdGhlDQo+IHNhbWUgVklEL1BJRCBoZXJlLCB0aGVuIGRlY2xhcmUgdGhlIGlu
dGVyZmFjZSBpZGVudGlmaWVycyBwcm9wZXJseSBhbmQNCj4gZXZlcnl0aGluZyB3b3VsZCB3b3Jr
IG91dCBuaWNlbHkuDQo+IA0KPiBZb3UgZ3V5cyBpbnNpc3Qgb24gbHlpbmcgdG8gdGhlIFVTQiBz
dWJzeXN0ZW0gYW5kIGJ5IHRoYXQgZmFjdCBtb3N0DQo+IGxpa2VseSB2aW9sYXRpbmcgdGhlIFVT
QiBzdGFuZGFyZHMuIERvbid0IGRvIHRoYXQgYW5kIGV2ZXJ5dGhpbmcgd2lsbA0KPiB3b3JrIG91
dCBvZiB0aGUgYm94IHdpdGggTGludXguIE5vIGV4dHJhIHBhdGNoZXMgb3IgbW9kaWZpY2F0aW9u
IGZvcg0KPiBidHVzYiBuZWVkZWQuDQo+IA0KPiBSZWdhcmRzDQo+IA0KPiBNYXJjZWwNCj4gDQoN
Cg==

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: Bluetooth USB device keeps same PID/VID after downloading the patch and radio table
  2011-05-26  8:46 Bluetooth USB device keeps same PID/VID after downloading the patch and radio table Steven Li
@ 2011-05-26  9:30 ` Steven Li
  2011-06-08 10:31   ` Li, Steven
  0 siblings, 1 reply; 6+ messages in thread
From: Steven Li @ 2011-05-26  9:30 UTC (permalink / raw)
  To: Steven Li, Marcel Holtmann
  Cc: Gustavo F. Padovan, Bluettooth Linux, Haijun Liu, Hong Fan,
	Vic Wei, Jack Chen(Taipei),
	Robert Chang, Luis R. Rodriguez

[-- Attachment #1: Type: text/plain, Size: 7950 bytes --]

Hi Marcel:

It comes out another fix to this one PID/VID issue.
That is to use the bcdDevice (Device Release Number) to judge whether the Atheros 3012 chip has been patched or not.
The init bcdDevice value of this chip is 0x0001,  we will increase this value after patch and radio table downloading.
I put the draft modification to the attachment.

Do you think it is possible ?

Thank you very much !

Best Regards,
Steven,


> -----Original Message-----
> From: linux-bluetooth-owner@vger.kernel.org [mailto:linux-bluetooth-
> owner@vger.kernel.org] On Behalf Of Steven Li
> Sent: Thursday, May 26, 2011 4:46 PM
> To: Marcel Holtmann
> Cc: Gustavo F. Padovan; Bluettooth Linux; Haijun Liu; Hong Fan; Vic Wei; Jack
> Chen(Taipei); Robert Chang; Luis R. Rodriguez
> Subject: RE: Bluetooth USB device keeps same PID/VID after downloading
> the patch and radio table
> 
> Hi Marcel:
> 
> > why do you want this at all. You run a different protocol with different
> > endpoints on the device in DFU mode and on the device in H:2 mode.
> 
> Sorry, I made a mistake in the subject of this mail thread.
> The "Bluetooth USB device keeps same PID/VID after DFU".
>  should be " Bluetooth USB device keeps same PID/VID after downloading
> the patch and radio table".
> 
> As to the Atheros 3011 chip.  yes, it uses DFU mode to download the
> firmware.
> So there are different protocols with different endpoints on the device.
> 
> But now, we are going to upstream our new Atheros 3012 chip and things are
> not like that.
> The Atheros 3012 chip is a native bluetooth device, even without
> downloading patch and radio table.
> The patch and radio table are used to fix those bugs found after chip shipping.
> So with this design, the Atheros 3012 chip
>  always keeps same PID/VID even after downloading the patch and radio
> table.
> 
> That comes out our concern to the btusb driver.
> 
> 
> 
> Best Regards,
> Steven,
> 
> 
> > -----Original Message-----
> > From: Marcel Holtmann [mailto:marcel@holtmann.org]
> > Sent: Thursday, May 26, 2011 10:47 AM
> > To: Steven Li
> > Cc: Gustavo F. Padovan; Bluettooth Linux; Haijun Liu; Hong Fan; Vic Wei;
> Jack
> > Chen(Taipei); Robert Chang; Luis R. Rodriguez
> > Subject: Re: Bluetooth USB device keeps same PID/VID after DFU
> >
> > Hi Steven,
> >
> > > Here is steven from Atheros.  Glad to contact you here. we have some
> > concerns to the btusb device driver.
> > > Present USB Bluetooth implementation in Linux has some limitations.
> Many
> > vendors need to load patch and other specific operations during device
> > probe or disconnect to their Bluetooth device, but btusb driver gives
> > limitation to this behavior.  It needs to add the Bluetooth device PID/VID
> into
> > the btusb blacklist, and use the vendor specific driver to load firmware. By
> > this, it causes the Bluetooth device "MUST" have two PID/VIDs in Linux.
> But
> > on windows platform, the device can always keep one same PID/VID.  It is
> > hard for us to handle this issue with current btusb design.
> > > Moreover in our Atheros 3012 chip, we also need to switch the 3012 chip
> > between "normal" mode and "pre-boot" mode during PC reboot,  with
> > current btusb design, we have to make changes in btusb.c directly, but it is
> > our chip specific requirements.  Therefore, we’d like to propose some
> > methods to make the Bluetooth device has only one PID/VID by proper
> > btusb modification and also for other vendor extensions such as mode
> switch.
> > >
> > > Currently, we have three proposals. And I attached our rough patches for
> > these three proposals.
> > > They are totally not formal, I attached them just want to make you easy
> to
> > understand.
> > >
> > > And from here, Let me explain more of  these proposal one by one.
> > >
> > > # Proposal 1.
> > > This option could be refer to what it’s working for lots of UART Bluetooth
> > devices in Linux.
> > > Mainly, vendor driver would be built as an object of btusb.ko. This should
> > be same as those UART Bluetooth drivers.
> > > In our case, ath3k would be built as an object file according to
> > CONFIG_BT_ATH3K define.
> > > Then btusb kernel module will be composed of btusb.o and ath3k.o.  So it
> is
> > easy to make one PID/VID device work.
> > > This concept was oriented by hci_uart driver.  It can jump to individual
> > entry function based on different ID.
> > > And things like mode switch also could be handled by just adding function
> > like switch_mode() in ath3k.c.
> > >
> > > # Proposal 2.
> > > This option is to export btusb common functions, and vendor driver (for
> > example our ath3k) can be taken as the extension of btusb.
> > > , and it can first downloads the firmware and then use those functions
> > exported in btusb driver
> > > to setup the hci Bluetooth device.  Moreover if it is possible, we are also
> > propose to refine the btusb.c and split the btusb.c to btusb_core.c and
> > btusb_generic.c,
> > > In the btusb_core.c. It includes all the  Bluetooth usb common operations
> > and these Bluetooth usb functions will be exported,
> > > and the btusb_generic.c is the real generic Bluetooth driver remains
> > support all current Bluetooth device ,which uses the btusb_core functions.
> > > And vendor driver can also call those usb common operations in the
> > btusb_core.c.
> > > With this proposal, Since the ath3k driver are the only owner of the
> > bluetooth device, only one PID/VID is necessary.
> > > And it is very easy to handle the mode switch case in itself either. Please
> > check btusb_ath3k_2.patch for detail.
> > >
> > > # Proposal 3.
> > > This option is to add "quirk device" to btusb driver. We found actually you
> > added lots of so-called “quirk” implementation in btusb driver for many
> > vendors.
> > > http://git.kernel.org/?p=linux/kernel/git/next/linux-
> > next.git;a=commit;h=cfeb414537b1d7c23ba202f198fa4154cd5a4856
> > > Vendor specific driver can call btusb_register_quirk_device() function to
> > register itself to the btusb driver.
> > > So during the device probe, the btusb will try to match the device id, and
> if
> > it is a “quirk” device, it will call
> > > the “quirk” device’s specific function first.  Every vendor can use this quirk
> > to download their firmware and keep the same PID/VID with proper codes
> in
> > btusb.c.
> > > This proposal is also able to handle the mode switch case.
> > >
> > > Please give your comments and suggestion for our proposals.
> > > We are hoping to make one PID/VID work and contribute to the
> > community.
> >
> > why do you want this at all. You run a different protocol with different
> > endpoints on the device in DFU mode and on the device in H:2 mode.
> >
> > So you actually have different functionality. And I personally do not
> > care what Windows is doing. This is Linux, so please follow what the
> > Linux community expect you to do.
> >
> > Also in case of btusb, you can use the Bluetooth SIG (and for that
> > matter USB SIG) defined interface identifiers. The btusb driver does not
> > match by default to VID/PID. It uses a standard. If you wanna use the
> > same VID/PID here, then declare the interface identifiers properly and
> > everything would work out nicely.
> >
> > You guys insist on lying to the USB subsystem and by that fact most
> > likely violating the USB standards. Don't do that and everything will
> > work out of the box with Linux. No extra patches or modification for
> > btusb needed.
> >
> > Regards
> >
> > Marcel
> >
> 
> \x04�{.n�+�������+%��lzwm��b�맲��r��zX��\x16��h��b��^n�r���z�\x1a��h�
> ���&��\x1e�G���h�\x03(�階�ݢj"��\x1a�^[m�����z�ޖ���f���h���~�m�

[-- Attachment #2: 0001-Use-bcdDevice-Device-Release-Number-to-exclude-the-a.patch --]
[-- Type: application/octet-stream, Size: 2351 bytes --]

From 2dc0e703ed392f41d91984b0cfd1da56f6f173cb Mon Sep 17 00:00:00 2001
From: Steven.Li <Steven.Li@Atheros.com>
Date: Thu, 26 May 2011 17:06:52 +0800
Subject: [PATCH] Use bcdDevice(Device Release Number) to exclude the ath3k and btusb driver.

---
 drivers/bluetooth/ath3k.c |    5 ++++-
 drivers/bluetooth/btusb.c |    9 ++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
index 6bacef3..c99fb08 100644
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -375,6 +375,9 @@ static int ath3k_probe(struct usb_interface *intf,
 
 	/* load patch and sysconfig files for AR3012 */
 	if (id->driver_info & BTUSB_ATH3012) {
+		if(le16_to_cpu(udev->descriptor.bcdDevice > 0x0001)) 
+			return -ENODEV;
+
 		ret = ath3k_load_patch(udev);
 		if (ret < 0) {
 			BT_ERR("Loading patch file failed");
@@ -390,7 +393,7 @@ static int ath3k_probe(struct usb_interface *intf,
 			BT_ERR("Set normal mode failed");
 			return ret;
 		}
-		ath3k_switch_pid(udev);
+		/* ath3k_switch_pid(udev); */
 		return 0;
 	}
 
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index c2de895..9b67b22 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -54,6 +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
 
 static struct usb_device_id btusb_table[] = {
 	/* Generic Bluetooth USB device */
@@ -110,7 +111,7 @@ 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_IGNORE },
+	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
 
 	/* Atheros AR5BBU12 with sflash firmware */
 	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
@@ -914,6 +915,12 @@ static int btusb_probe(struct usb_interface *intf,
 	if (ignore_sniffer && id->driver_info & BTUSB_SNIFFER)
 		return -ENODEV;
 
+	if (id->driver_info & BTUSB_ATH3012) {
+		struct usb_device *udev = interface_to_usbdev(intf);
+		if(le16_to_cpu(udev->descriptor.bcdDevice <= 0x0001)) 
+			return -ENODEV;
+	}
+
 	data = kzalloc(sizeof(*data), GFP_KERNEL);
 	if (!data)
 		return -ENOMEM;
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Bluetooth USB device keeps same PID/VID after downloading the patch and radio table
  2011-05-26  9:30 ` Steven Li
@ 2011-06-08 10:31   ` Li, Steven
  2011-06-09 10:18     ` Marcel Holtmann
  0 siblings, 1 reply; 6+ messages in thread
From: Li, Steven @ 2011-06-08 10:31 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: Gustavo F. Padovan, Bluettooth Linux

SGkgTWFyY2VsOg0KDQo+IEhpIFN0ZXZlbiwNCj4gSSBkZWxldGVkIHlvdXIgbGFzdCBlbWFpbCBi
eSBhY2NpZGVudC4gQ2FuIHlvdSByZS1zZW5kIGl0IHBsZWFzZS4NCg0KQXMgeW91IG1heSBsb3Nl
IHRoZSBtYWlsLiBJJ2QgbGlrZSB0byBpbnRyb2R1Y2Ugb3VyIGNvbmRpdGlvbiBhZ2Fpbi4NCg0K
QXMgdG8gdGhlIEF0aGVyb3MgMzAxMSBjaGlwLiAgeWVzLCBpdCB1c2VzIERGVSBtb2RlIHRvIGRv
d25sb2FkIHRoZSBmaXJtd2FyZS4NCkluc3RlYWQgb2YgZG93bmxvYWRpbmcgdGhlIGZpcm13YXJl
LCB0aGUgbmV3IEF0aGVyb3MgMzAxMiBjaGlwIG5lZWRzIHRvIGRvd25sb2FkIHBhdGNoIGFuZCBy
YWRpbyB0YWJsZS4NClRoZSBwYXRjaCBhbmQgcmFkaW8gdGFibGUgYXJlIHVzZWQgdG8gZml4IHRo
b3NlIGJ1Z3MgZm91bmQgYWZ0ZXIgY2hpcCBzaGlwcGluZyBvciBmb3Igc29tZSBvdGhlciBzcGVj
aWZpYyB1c2UuDQpBbmQgIHRoZSBBdGhlcm9zIDMwMTIgY2hpcCBpdHNlbGYgaXMgYSBuYXRpdmUg
Ymx1ZXRvb3RoIGRldmljZS4gRXZlbiB3aXRob3V0IGRvd25sb2FkaW5nIHBhdGNoIGFuZCByYWRp
byB0YWJsZSwgaXQgY2FuIHdvcmsuDQoNClNvIHdpdGggdGhpcyBkZXNpZ24sIHRoZSBBdGhlcm9z
IDMwMTIgY2hpcCBhbHdheXMga2VlcHMgc2FtZSBQSUQvVklEIGV2ZW4gYWZ0ZXIgZG93bmxvYWRp
bmcgdGhlIHBhdGNoIGFuZCByYWRpbw0KdGFibGUuIER1ZSB0byB0aGlzIGxpbWl0YXRpb24sIHdl
IGhhdmUgcHJvYmxlbXMgd2l0aCBjdXJyZW50IGJ0dXNiLmMgaW1wbGVtZW50YXRpb24uDQoNCldl
IGhhdmUgdG8gaGF2ZSBhIHdvcmsgYXJvdW5kIHdheSwgIHRoaXMgaXMgdG8gdXNlIHRoZSBiY2RE
ZXZpY2UgKERldmljZSBSZWxlYXNlIE51bWJlcikgdG8ganVkZ2UgDQp3aGV0aGVyIHRoZSBBdGhl
cm9zIDMwMTIgY2hpcCBoYXMgYmVlbiBwYXRjaGVkIG9yIG5vdC4NClRoZSBpbml0IGJjZERldmlj
ZSB2YWx1ZSBvZiB0aGlzIGNoaXAgaXMgMHgwMDAxLCAgd2UgY2FuIGluY3JlYXNlIHRoaXMgdmFs
dWUgYWZ0ZXIgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlIGRvd25sb2FkaW5nLg0KDQpEbyB5b3UgdGhp
bmsgaXQgaXMgcG9zc2libGUgPw0KDQoNCkZyb20gMmRjMGU3MDNlZDM5MmY0MWQ5MTk4NGIwY2Zk
MWRhNTZmNmYxNzNjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCkZyb206IFN0ZXZlbi5MaSA8
U3RldmVuLkxpQEF0aGVyb3MuY29tPg0KRGF0ZTogVGh1LCAyNiBNYXkgMjAxMSAxNzowNjo1MiAr
MDgwMA0KU3ViamVjdDogW1BBVENIXSBVc2UgYmNkRGV2aWNlKERldmljZSBSZWxlYXNlIE51bWJl
cikgdG8gZXhjbHVkZSB0aGUgYXRoM2sgYW5kIGJ0dXNiIGRyaXZlci4NCg0KLS0tDQogZHJpdmVy
cy9ibHVldG9vdGgvYXRoM2suYyB8ICAgIDUgKysrKy0NCiBkcml2ZXJzL2JsdWV0b290aC9idHVz
Yi5jIHwgICAgOSArKysrKysrKy0NCiAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyks
IDIgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9hdGgzay5j
IGIvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYw0KaW5kZXggNmJhY2VmMy4uYzk5ZmIwOCAxMDA2
NDQNCi0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMNCisrKyBiL2RyaXZlcnMvYmx1ZXRv
b3RoL2F0aDNrLmMNCkBAIC0zNzUsNiArMzc1LDkgQEAgc3RhdGljIGludCBhdGgza19wcm9iZShz
dHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwNCiANCiAJLyogbG9hZCBwYXRjaCBhbmQgc3lzY29u
ZmlnIGZpbGVzIGZvciBBUjMwMTIgKi8NCiAJaWYgKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FU
SDMwMTIpIHsNCisJCWlmKGxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuYmNkRGV2aWNlID4g
MHgwMDAxKSkgDQorCQkJcmV0dXJuIC1FTk9ERVY7DQorDQogCQlyZXQgPSBhdGgza19sb2FkX3Bh
dGNoKHVkZXYpOw0KIAkJaWYgKHJldCA8IDApIHsNCiAJCQlCVF9FUlIoIkxvYWRpbmcgcGF0Y2gg
ZmlsZSBmYWlsZWQiKTsNCkBAIC0zOTAsNyArMzkzLDcgQEAgc3RhdGljIGludCBhdGgza19wcm9i
ZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwNCiAJCQlCVF9FUlIoIlNldCBub3JtYWwgbW9k
ZSBmYWlsZWQiKTsNCiAJCQlyZXR1cm4gcmV0Ow0KIAkJfQ0KLQkJYXRoM2tfc3dpdGNoX3BpZCh1
ZGV2KTsNCisJCS8qIGF0aDNrX3N3aXRjaF9waWQodWRldik7ICovDQogCQlyZXR1cm4gMDsNCiAJ
fQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgYi9kcml2ZXJzL2Js
dWV0b290aC9idHVzYi5jDQppbmRleCBjMmRlODk1Li45YjY3YjIyIDEwMDY0NA0KLS0tIGEvZHJp
dmVycy9ibHVldG9vdGgvYnR1c2IuYw0KKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYw0K
QEAgLTU0LDYgKzU0LDcgQEAgc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGJ0dXNiX2RyaXZlcjsN
CiAjZGVmaW5lIEJUVVNCX0JDTTkyMDM1CQkweDEwDQogI2RlZmluZSBCVFVTQl9CUk9LRU5fSVNP
QwkweDIwDQogI2RlZmluZSBCVFVTQl9XUk9OR19TQ09fTVRVCTB4NDANCisjZGVmaW5lIEJUVVNC
X0FUSDMwMTIJCTB4ODANCiANCiBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYnR1c2JfdGFi
bGVbXSA9IHsNCiAJLyogR2VuZXJpYyBCbHVldG9vdGggVVNCIGRldmljZSAqLw0KQEAgLTExMCw3
ICsxMTEsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10g
PSB7DQogCXsgVVNCX0RFVklDRSgweDAzZjAsIDB4MzExZCksIC5kcml2ZXJfaW5mbyA9IEJUVVNC
X0lHTk9SRSB9LA0KIA0KIAkvKiBBdGhlcm9zIDMwMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUgKi8N
Ci0JeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA0KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfSUdO
T1JFIH0sDQorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJU
VVNCX0FUSDMwMTIgfSwNCiANCiAJLyogQXRoZXJvcyBBUjVCQlUxMiB3aXRoIHNmbGFzaCBmaXJt
d2FyZSAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwMmMpLCAuZHJpdmVyX2luZm8gPSBC
VFVTQl9JR05PUkUgfSwNCkBAIC05MTQsNiArOTE1LDEyIEBAIHN0YXRpYyBpbnQgYnR1c2JfcHJv
YmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsDQogCWlmIChpZ25vcmVfc25pZmZlciAmJiBp
ZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9TTklGRkVSKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogDQor
CWlmIChpZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9BVEgzMDEyKSB7DQorCQlzdHJ1Y3QgdXNiX2Rl
dmljZSAqdWRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50Zik7DQorCQlpZihsZTE2X3RvX2Nw
dSh1ZGV2LT5kZXNjcmlwdG9yLmJjZERldmljZSA8PSAweDAwMDEpKSANCisJCQlyZXR1cm4gLUVO
T0RFVjsNCisJfQ0KKw0KIAlkYXRhID0ga3phbGxvYyhzaXplb2YoKmRhdGEpLCBHRlBfS0VSTkVM
KTsNCiAJaWYgKCFkYXRhKQ0KIAkJcmV0dXJuIC1FTk9NRU07DQotLSANCjEuNy4xDQoNCg0KVGhh
bmsgeW91IHZlcnkgbXVjaCAhDQoNCkJlc3QgUmVnYXJkcywNClN0ZXZlbiwNCg0KDQo+IC0tLS0t
T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGxpbnV4LWJsdWV0b290aC1vd25lckB2Z2Vy
Lmtlcm5lbC5vcmcgW21haWx0bzpsaW51eC1ibHVldG9vdGgtDQo+IG93bmVyQHZnZXIua2VybmVs
Lm9yZ10gT24gQmVoYWxmIE9mIFN0ZXZlbiBMaQ0KPiBTZW50OiBUaHVyc2RheSwgTWF5IDI2LCAy
MDExIDQ6NDYgUE0NCj4gVG86IE1hcmNlbCBIb2x0bWFubg0KPiBDYzogR3VzdGF2byBGLiBQYWRv
dmFuOyBCbHVldHRvb3RoIExpbnV4OyBIYWlqdW4gTGl1OyBIb25nIEZhbjsgVmljIFdlaTsgSmFj
aw0KPiBDaGVuKFRhaXBlaSk7IFJvYmVydCBDaGFuZzsgTHVpcyBSLiBSb2RyaWd1ZXoNCj4gU3Vi
amVjdDogUkU6IEJsdWV0b290aCBVU0IgZGV2aWNlIGtlZXBzIHNhbWUgUElEL1ZJRCBhZnRlciBk
b3dubG9hZGluZw0KPiB0aGUgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlDQo+IA0KPiBIaSBNYXJjZWw6
DQo+IA0KPiA+IHdoeSBkbyB5b3Ugd2FudCB0aGlzIGF0IGFsbC4gWW91IHJ1biBhIGRpZmZlcmVu
dCBwcm90b2NvbCB3aXRoIGRpZmZlcmVudA0KPiA+IGVuZHBvaW50cyBvbiB0aGUgZGV2aWNlIGlu
IERGVSBtb2RlIGFuZCBvbiB0aGUgZGV2aWNlIGluIEg6MiBtb2RlLg0KPiANCj4gU29ycnksIEkg
bWFkZSBhIG1pc3Rha2UgaW4gdGhlIHN1YmplY3Qgb2YgdGhpcyBtYWlsIHRocmVhZC4NCj4gVGhl
ICJCbHVldG9vdGggVVNCIGRldmljZSBrZWVwcyBzYW1lIFBJRC9WSUQgYWZ0ZXIgREZVIi4NCj4g
IHNob3VsZCBiZSAiIEJsdWV0b290aCBVU0IgZGV2aWNlIGtlZXBzIHNhbWUgUElEL1ZJRCBhZnRl
ciBkb3dubG9hZGluZw0KPiB0aGUgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlIi4NCj4gDQo+IEFzIHRv
IHRoZSBBdGhlcm9zIDMwMTEgY2hpcC4gIHllcywgaXQgdXNlcyBERlUgbW9kZSB0byBkb3dubG9h
ZCB0aGUNCj4gZmlybXdhcmUuDQo+IFNvIHRoZXJlIGFyZSBkaWZmZXJlbnQgcHJvdG9jb2xzIHdp
dGggZGlmZmVyZW50IGVuZHBvaW50cyBvbiB0aGUgZGV2aWNlLg0KPiANCj4gQnV0IG5vdywgd2Ug
YXJlIGdvaW5nIHRvIHVwc3RyZWFtIG91ciBuZXcgQXRoZXJvcyAzMDEyIGNoaXAgYW5kIHRoaW5n
cyBhcmUNCj4gbm90IGxpa2UgdGhhdC4NCj4gVGhlIEF0aGVyb3MgMzAxMiBjaGlwIGlzIGEgbmF0
aXZlIGJsdWV0b290aCBkZXZpY2UsIGV2ZW4gd2l0aG91dA0KPiBkb3dubG9hZGluZyBwYXRjaCBh
bmQgcmFkaW8gdGFibGUuDQo+IFRoZSBwYXRjaCBhbmQgcmFkaW8gdGFibGUgYXJlIHVzZWQgdG8g
Zml4IHRob3NlIGJ1Z3MgZm91bmQgYWZ0ZXIgY2hpcCBzaGlwcGluZy4NCj4gU28gd2l0aCB0aGlz
IGRlc2lnbiwgdGhlIEF0aGVyb3MgMzAxMiBjaGlwDQo+ICBhbHdheXMga2VlcHMgc2FtZSBQSUQv
VklEIGV2ZW4gYWZ0ZXIgZG93bmxvYWRpbmcgdGhlIHBhdGNoIGFuZCByYWRpbw0KPiB0YWJsZS4N
Cj4gDQo+IFRoYXQgY29tZXMgb3V0IG91ciBjb25jZXJuIHRvIHRoZSBidHVzYiBkcml2ZXIuDQo+
IA0KPiANCj4gDQo+IEJlc3QgUmVnYXJkcywNCj4gU3RldmVuLA0KPiANCj4gDQo+ID4gLS0tLS1P
cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBNYXJjZWwgSG9sdG1hbm4gW21haWx0bzpt
YXJjZWxAaG9sdG1hbm4ub3JnXQ0KPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXkgMjYsIDIwMTEgMTA6
NDcgQU0NCj4gPiBUbzogU3RldmVuIExpDQo+ID4gQ2M6IEd1c3Rhdm8gRi4gUGFkb3ZhbjsgQmx1
ZXR0b290aCBMaW51eDsgSGFpanVuIExpdTsgSG9uZyBGYW47IFZpYyBXZWk7DQo+IEphY2sNCj4g
PiBDaGVuKFRhaXBlaSk7IFJvYmVydCBDaGFuZzsgTHVpcyBSLiBSb2RyaWd1ZXoNCj4gPiBTdWJq
ZWN0OiBSZTogQmx1ZXRvb3RoIFVTQiBkZXZpY2Uga2VlcHMgc2FtZSBQSUQvVklEIGFmdGVyIERG
VQ0KPiA+DQo+ID4gSGkgU3RldmVuLA0KPiA+DQo+ID4gPiBIZXJlIGlzIHN0ZXZlbiBmcm9tIEF0
aGVyb3MuICBHbGFkIHRvIGNvbnRhY3QgeW91IGhlcmUuIHdlIGhhdmUgc29tZQ0KPiA+IGNvbmNl
cm5zIHRvIHRoZSBidHVzYiBkZXZpY2UgZHJpdmVyLg0KPiA+ID4gUHJlc2VudCBVU0IgQmx1ZXRv
b3RoIGltcGxlbWVudGF0aW9uIGluIExpbnV4IGhhcyBzb21lIGxpbWl0YXRpb25zLg0KPiBNYW55
DQo+ID4gdmVuZG9ycyBuZWVkIHRvIGxvYWQgcGF0Y2ggYW5kIG90aGVyIHNwZWNpZmljIG9wZXJh
dGlvbnMgZHVyaW5nIGRldmljZQ0KPiA+IHByb2JlIG9yIGRpc2Nvbm5lY3QgdG8gdGhlaXIgQmx1
ZXRvb3RoIGRldmljZSwgYnV0IGJ0dXNiIGRyaXZlciBnaXZlcw0KPiA+IGxpbWl0YXRpb24gdG8g
dGhpcyBiZWhhdmlvci4gIEl0IG5lZWRzIHRvIGFkZCB0aGUgQmx1ZXRvb3RoIGRldmljZSBQSUQv
VklEDQo+IGludG8NCj4gPiB0aGUgYnR1c2IgYmxhY2tsaXN0LCBhbmQgdXNlIHRoZSB2ZW5kb3Ig
c3BlY2lmaWMgZHJpdmVyIHRvIGxvYWQgZmlybXdhcmUuIEJ5DQo+ID4gdGhpcywgaXQgY2F1c2Vz
IHRoZSBCbHVldG9vdGggZGV2aWNlICJNVVNUIiBoYXZlIHR3byBQSUQvVklEcyBpbiBMaW51eC4N
Cj4gQnV0DQo+ID4gb24gd2luZG93cyBwbGF0Zm9ybSwgdGhlIGRldmljZSBjYW4gYWx3YXlzIGtl
ZXAgb25lIHNhbWUgUElEL1ZJRC4gIEl0IGlzDQo+ID4gaGFyZCBmb3IgdXMgdG8gaGFuZGxlIHRo
aXMgaXNzdWUgd2l0aCBjdXJyZW50IGJ0dXNiIGRlc2lnbi4NCj4gPiA+IE1vcmVvdmVyIGluIG91
ciBBdGhlcm9zIDMwMTIgY2hpcCwgd2UgYWxzbyBuZWVkIHRvIHN3aXRjaCB0aGUgMzAxMiBjaGlw
DQo+ID4gYmV0d2VlbiAibm9ybWFsIiBtb2RlIGFuZCAicHJlLWJvb3QiIG1vZGUgZHVyaW5nIFBD
IHJlYm9vdCwgIHdpdGgNCj4gPiBjdXJyZW50IGJ0dXNiIGRlc2lnbiwgd2UgaGF2ZSB0byBtYWtl
IGNoYW5nZXMgaW4gYnR1c2IuYyBkaXJlY3RseSwgYnV0IGl0IGlzDQo+ID4gb3VyIGNoaXAgc3Bl
Y2lmaWMgcmVxdWlyZW1lbnRzLiAgVGhlcmVmb3JlLCB3ZeKAmWQgbGlrZSB0byBwcm9wb3NlIHNv
bWUNCj4gPiBtZXRob2RzIHRvIG1ha2UgdGhlIEJsdWV0b290aCBkZXZpY2UgaGFzIG9ubHkgb25l
IFBJRC9WSUQgYnkgcHJvcGVyDQo+ID4gYnR1c2IgbW9kaWZpY2F0aW9uIGFuZCBhbHNvIGZvciBv
dGhlciB2ZW5kb3IgZXh0ZW5zaW9ucyBzdWNoIGFzIG1vZGUNCj4gc3dpdGNoLg0KPiA+ID4NCj4g
PiA+IEN1cnJlbnRseSwgd2UgaGF2ZSB0aHJlZSBwcm9wb3NhbHMuIEFuZCBJIGF0dGFjaGVkIG91
ciByb3VnaCBwYXRjaGVzIGZvcg0KPiA+IHRoZXNlIHRocmVlIHByb3Bvc2Fscy4NCj4gPiA+IFRo
ZXkgYXJlIHRvdGFsbHkgbm90IGZvcm1hbCwgSSBhdHRhY2hlZCB0aGVtIGp1c3Qgd2FudCB0byBt
YWtlIHlvdSBlYXN5DQo+IHRvDQo+ID4gdW5kZXJzdGFuZC4NCj4gPiA+DQo+ID4gPiBBbmQgZnJv
bSBoZXJlLCBMZXQgbWUgZXhwbGFpbiBtb3JlIG9mICB0aGVzZSBwcm9wb3NhbCBvbmUgYnkgb25l
Lg0KPiA+ID4NCj4gPiA+ICMgUHJvcG9zYWwgMS4NCj4gPiA+IFRoaXMgb3B0aW9uIGNvdWxkIGJl
IHJlZmVyIHRvIHdoYXQgaXTigJlzIHdvcmtpbmcgZm9yIGxvdHMgb2YgVUFSVCBCbHVldG9vdGgN
Cj4gPiBkZXZpY2VzIGluIExpbnV4Lg0KPiA+ID4gTWFpbmx5LCB2ZW5kb3IgZHJpdmVyIHdvdWxk
IGJlIGJ1aWx0IGFzIGFuIG9iamVjdCBvZiBidHVzYi5rby4gVGhpcyBzaG91bGQNCj4gPiBiZSBz
YW1lIGFzIHRob3NlIFVBUlQgQmx1ZXRvb3RoIGRyaXZlcnMuDQo+ID4gPiBJbiBvdXIgY2FzZSwg
YXRoM2sgd291bGQgYmUgYnVpbHQgYXMgYW4gb2JqZWN0IGZpbGUgYWNjb3JkaW5nIHRvDQo+ID4g
Q09ORklHX0JUX0FUSDNLIGRlZmluZS4NCj4gPiA+IFRoZW4gYnR1c2Iga2VybmVsIG1vZHVsZSB3
aWxsIGJlIGNvbXBvc2VkIG9mIGJ0dXNiLm8gYW5kIGF0aDNrLm8uICBTbyBpdA0KPiBpcw0KPiA+
IGVhc3kgdG8gbWFrZSBvbmUgUElEL1ZJRCBkZXZpY2Ugd29yay4NCj4gPiA+IFRoaXMgY29uY2Vw
dCB3YXMgb3JpZW50ZWQgYnkgaGNpX3VhcnQgZHJpdmVyLiAgSXQgY2FuIGp1bXAgdG8gaW5kaXZp
ZHVhbA0KPiA+IGVudHJ5IGZ1bmN0aW9uIGJhc2VkIG9uIGRpZmZlcmVudCBJRC4NCj4gPiA+IEFu
ZCB0aGluZ3MgbGlrZSBtb2RlIHN3aXRjaCBhbHNvIGNvdWxkIGJlIGhhbmRsZWQgYnkganVzdCBh
ZGRpbmcgZnVuY3Rpb24NCj4gPiBsaWtlIHN3aXRjaF9tb2RlKCkgaW4gYXRoM2suYy4NCj4gPiA+
DQo+ID4gPiAjIFByb3Bvc2FsIDIuDQo+ID4gPiBUaGlzIG9wdGlvbiBpcyB0byBleHBvcnQgYnR1
c2IgY29tbW9uIGZ1bmN0aW9ucywgYW5kIHZlbmRvciBkcml2ZXIgKGZvcg0KPiA+IGV4YW1wbGUg
b3VyIGF0aDNrKSBjYW4gYmUgdGFrZW4gYXMgdGhlIGV4dGVuc2lvbiBvZiBidHVzYi4NCj4gPiA+
ICwgYW5kIGl0IGNhbiBmaXJzdCBkb3dubG9hZHMgdGhlIGZpcm13YXJlIGFuZCB0aGVuIHVzZSB0
aG9zZSBmdW5jdGlvbnMNCj4gPiBleHBvcnRlZCBpbiBidHVzYiBkcml2ZXINCj4gPiA+IHRvIHNl
dHVwIHRoZSBoY2kgQmx1ZXRvb3RoIGRldmljZS4gIE1vcmVvdmVyIGlmIGl0IGlzIHBvc3NpYmxl
LCB3ZSBhcmUgYWxzbw0KPiA+IHByb3Bvc2UgdG8gcmVmaW5lIHRoZSBidHVzYi5jIGFuZCBzcGxp
dCB0aGUgYnR1c2IuYyB0byBidHVzYl9jb3JlLmMgYW5kDQo+ID4gYnR1c2JfZ2VuZXJpYy5jLA0K
PiA+ID4gSW4gdGhlIGJ0dXNiX2NvcmUuYy4gSXQgaW5jbHVkZXMgYWxsIHRoZSAgQmx1ZXRvb3Ro
IHVzYiBjb21tb24gb3BlcmF0aW9ucw0KPiA+IGFuZCB0aGVzZSBCbHVldG9vdGggdXNiIGZ1bmN0
aW9ucyB3aWxsIGJlIGV4cG9ydGVkLA0KPiA+ID4gYW5kIHRoZSBidHVzYl9nZW5lcmljLmMgaXMg
dGhlIHJlYWwgZ2VuZXJpYyBCbHVldG9vdGggZHJpdmVyIHJlbWFpbnMNCj4gPiBzdXBwb3J0IGFs
bCBjdXJyZW50IEJsdWV0b290aCBkZXZpY2UgLHdoaWNoIHVzZXMgdGhlIGJ0dXNiX2NvcmUgZnVu
Y3Rpb25zLg0KPiA+ID4gQW5kIHZlbmRvciBkcml2ZXIgY2FuIGFsc28gY2FsbCB0aG9zZSB1c2Ig
Y29tbW9uIG9wZXJhdGlvbnMgaW4gdGhlDQo+ID4gYnR1c2JfY29yZS5jLg0KPiA+ID4gV2l0aCB0
aGlzIHByb3Bvc2FsLCBTaW5jZSB0aGUgYXRoM2sgZHJpdmVyIGFyZSB0aGUgb25seSBvd25lciBv
ZiB0aGUNCj4gPiBibHVldG9vdGggZGV2aWNlLCBvbmx5IG9uZSBQSUQvVklEIGlzIG5lY2Vzc2Fy
eS4NCj4gPiA+IEFuZCBpdCBpcyB2ZXJ5IGVhc3kgdG8gaGFuZGxlIHRoZSBtb2RlIHN3aXRjaCBj
YXNlIGluIGl0c2VsZiBlaXRoZXIuIFBsZWFzZQ0KPiA+IGNoZWNrIGJ0dXNiX2F0aDNrXzIucGF0
Y2ggZm9yIGRldGFpbC4NCj4gPiA+DQo+ID4gPiAjIFByb3Bvc2FsIDMuDQo+ID4gPiBUaGlzIG9w
dGlvbiBpcyB0byBhZGQgInF1aXJrIGRldmljZSIgdG8gYnR1c2IgZHJpdmVyLiBXZSBmb3VuZCBh
Y3R1YWxseSB5b3UNCj4gPiBhZGRlZCBsb3RzIG9mIHNvLWNhbGxlZCDigJxxdWlya+KAnSBpbXBs
ZW1lbnRhdGlvbiBpbiBidHVzYiBkcml2ZXIgZm9yIG1hbnkNCj4gPiB2ZW5kb3JzLg0KPiA+ID4g
aHR0cDovL2dpdC5rZXJuZWwub3JnLz9wPWxpbnV4L2tlcm5lbC9naXQvbmV4dC9saW51eC0NCj4g
PiBuZXh0LmdpdDthPWNvbW1pdDtoPWNmZWI0MTQ1MzdiMWQ3YzIzYmEyMDJmMTk4ZmE0MTU0Y2Q1
YTQ4NTYNCj4gPiA+IFZlbmRvciBzcGVjaWZpYyBkcml2ZXIgY2FuIGNhbGwgYnR1c2JfcmVnaXN0
ZXJfcXVpcmtfZGV2aWNlKCkgZnVuY3Rpb24gdG8NCj4gPiByZWdpc3RlciBpdHNlbGYgdG8gdGhl
IGJ0dXNiIGRyaXZlci4NCj4gPiA+IFNvIGR1cmluZyB0aGUgZGV2aWNlIHByb2JlLCB0aGUgYnR1
c2Igd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIGRldmljZSBpZCwgYW5kDQo+IGlmDQo+ID4gaXQgaXMg
YSDigJxxdWlya+KAnSBkZXZpY2UsIGl0IHdpbGwgY2FsbA0KPiA+ID4gdGhlIOKAnHF1aXJr4oCd
IGRldmljZeKAmXMgc3BlY2lmaWMgZnVuY3Rpb24gZmlyc3QuICBFdmVyeSB2ZW5kb3IgY2FuIHVz
ZSB0aGlzIHF1aXJrDQo+ID4gdG8gZG93bmxvYWQgdGhlaXIgZmlybXdhcmUgYW5kIGtlZXAgdGhl
IHNhbWUgUElEL1ZJRCB3aXRoIHByb3BlciBjb2Rlcw0KPiBpbg0KPiA+IGJ0dXNiLmMuDQo+ID4g
PiBUaGlzIHByb3Bvc2FsIGlzIGFsc28gYWJsZSB0byBoYW5kbGUgdGhlIG1vZGUgc3dpdGNoIGNh
c2UuDQo+ID4gPg0KPiA+ID4gUGxlYXNlIGdpdmUgeW91ciBjb21tZW50cyBhbmQgc3VnZ2VzdGlv
biBmb3Igb3VyIHByb3Bvc2Fscy4NCj4gPiA+IFdlIGFyZSBob3BpbmcgdG8gbWFrZSBvbmUgUElE
L1ZJRCB3b3JrIGFuZCBjb250cmlidXRlIHRvIHRoZQ0KPiA+IGNvbW11bml0eS4NCj4gPg0KPiA+
IHdoeSBkbyB5b3Ugd2FudCB0aGlzIGF0IGFsbC4gWW91IHJ1biBhIGRpZmZlcmVudCBwcm90b2Nv
bCB3aXRoIGRpZmZlcmVudA0KPiA+IGVuZHBvaW50cyBvbiB0aGUgZGV2aWNlIGluIERGVSBtb2Rl
IGFuZCBvbiB0aGUgZGV2aWNlIGluIEg6MiBtb2RlLg0KPiA+DQo+ID4gU28geW91IGFjdHVhbGx5
IGhhdmUgZGlmZmVyZW50IGZ1bmN0aW9uYWxpdHkuIEFuZCBJIHBlcnNvbmFsbHkgZG8gbm90DQo+
ID4gY2FyZSB3aGF0IFdpbmRvd3MgaXMgZG9pbmcuIFRoaXMgaXMgTGludXgsIHNvIHBsZWFzZSBm
b2xsb3cgd2hhdCB0aGUNCj4gPiBMaW51eCBjb21tdW5pdHkgZXhwZWN0IHlvdSB0byBkby4NCj4g
Pg0KPiA+IEFsc28gaW4gY2FzZSBvZiBidHVzYiwgeW91IGNhbiB1c2UgdGhlIEJsdWV0b290aCBT
SUcgKGFuZCBmb3IgdGhhdA0KPiA+IG1hdHRlciBVU0IgU0lHKSBkZWZpbmVkIGludGVyZmFjZSBp
ZGVudGlmaWVycy4gVGhlIGJ0dXNiIGRyaXZlciBkb2VzIG5vdA0KPiA+IG1hdGNoIGJ5IGRlZmF1
bHQgdG8gVklEL1BJRC4gSXQgdXNlcyBhIHN0YW5kYXJkLiBJZiB5b3Ugd2FubmEgdXNlIHRoZQ0K
PiA+IHNhbWUgVklEL1BJRCBoZXJlLCB0aGVuIGRlY2xhcmUgdGhlIGludGVyZmFjZSBpZGVudGlm
aWVycyBwcm9wZXJseSBhbmQNCj4gPiBldmVyeXRoaW5nIHdvdWxkIHdvcmsgb3V0IG5pY2VseS4N
Cj4gPg0KPiA+IFlvdSBndXlzIGluc2lzdCBvbiBseWluZyB0byB0aGUgVVNCIHN1YnN5c3RlbSBh
bmQgYnkgdGhhdCBmYWN0IG1vc3QNCj4gPiBsaWtlbHkgdmlvbGF0aW5nIHRoZSBVU0Igc3RhbmRh
cmRzLiBEb24ndCBkbyB0aGF0IGFuZCBldmVyeXRoaW5nIHdpbGwNCj4gPiB3b3JrIG91dCBvZiB0
aGUgYm94IHdpdGggTGludXguIE5vIGV4dHJhIHBhdGNoZXMgb3IgbW9kaWZpY2F0aW9uIGZvcg0K
PiA+IGJ0dXNiIG5lZWRlZC4NCj4gPg0KPiA+IFJlZ2FyZHMNCj4gPg0KPiA+IE1hcmNlbA0KPiA+
DQo+IA0KPiAE77+9ey5u77+9K++/ve+/ve+/ve+/ve+/ve+/ve+/vSsl77+977+9bHp3be+/ve+/
vWLvv73rp7Lvv73vv71y77+977+9eljvv73vv70W77+977+9aO+/ve+/vWLvv73vv71ebu+/vXLv
v73vv73vv71677+9Gu+/ve+/vWjvv70NCj4g77+977+977+9Ju+/ve+/vR7vv71H77+977+977+9
aO+/vQMo77+96ZqO77+93aJqIu+/ve+/vRrvv70bbe+/ve+/ve+/ve+/ve+/vXrvv73elu+/ve+/
ve+/vWbvv73vv73vv71o77+977+977+9fu+/vW3vv70NCg==

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bluetooth USB device keeps same PID/VID after downloading the patch and radio table
  2011-06-08 10:31   ` Li, Steven
@ 2011-06-09 10:18     ` Marcel Holtmann
  2011-06-09 10:24       ` Li, Steven
  2011-06-27  8:47       ` Li, Steven
  0 siblings, 2 replies; 6+ messages in thread
From: Marcel Holtmann @ 2011-06-09 10:18 UTC (permalink / raw)
  To: Li, Steven; +Cc: Gustavo F. Padovan, Bluettooth Linux

Hi Steven,

> > I deleted your last email by accident. Can you re-send it please.
> 
> As you may lose the mail. I'd like to introduce our condition again.
> 
> As to the Atheros 3011 chip.  yes, it uses DFU mode to download the firmware.
> Instead of downloading the firmware, the new Atheros 3012 chip needs to download patch and radio table.
> The patch and radio table are used to fix those bugs found after chip shipping or for some other specific use.
> And  the Atheros 3012 chip itself is a native bluetooth device. Even without downloading patch and radio table, it can work.
> 
> So with this design, the Atheros 3012 chip always keeps same PID/VID even after downloading the patch and radio
> table. Due to this limitation, we have problems with current btusb.c implementation.
> 
> We have to have a work around way,  this is to use the bcdDevice (Device Release Number) to judge 
> whether the Atheros 3012 chip has been patched or not.
> The init bcdDevice value of this chip is 0x0001,  we can increase this value after patch and radio table downloading.
> 
> Do you think it is possible ?

now I understand your problem. So in theory you have a full Bluetooth
device working according to the HCI standard. And you are using vendor
HCI commands to patch the firmware.

So this is similar to what we are doing with a lot of UART based devices
when using hciattach.

For now, I am fine using bcdDevice number. In the end we have to create
a pre-stage for loading further instructions or patches into the device.
We had plans for this pre-stage already, but never implemented them.

> From 2dc0e703ed392f41d91984b0cfd1da56f6f173cb Mon Sep 17 00:00:00 2001
> From: Steven.Li <Steven.Li@Atheros.com>
> Date: Thu, 26 May 2011 17:06:52 +0800
> Subject: [PATCH] Use bcdDevice(Device Release Number) to exclude the ath3k and btusb driver.
> 
> ---
>  drivers/bluetooth/ath3k.c |    5 ++++-
>  drivers/bluetooth/btusb.c |    9 ++++++++-
>  2 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
> index 6bacef3..c99fb08 100644
> --- a/drivers/bluetooth/ath3k.c
> +++ b/drivers/bluetooth/ath3k.c
> @@ -375,6 +375,9 @@ static int ath3k_probe(struct usb_interface *intf,
>  
>  	/* load patch and sysconfig files for AR3012 */
>  	if (id->driver_info & BTUSB_ATH3012) {
> +		if(le16_to_cpu(udev->descriptor.bcdDevice > 0x0001)) 

This needs to be like this:

	"if (le16_to_cpu(udev->descriptor.bcdDevice) > 0x0001)"

Otherwise you endian swapping is not really doing what it is suppose to
be doing.

> +			return -ENODEV;
> +
>  		ret = ath3k_load_patch(udev);
>  		if (ret < 0) {
>  			BT_ERR("Loading patch file failed");
> @@ -390,7 +393,7 @@ static int ath3k_probe(struct usb_interface *intf,
>  			BT_ERR("Set normal mode failed");
>  			return ret;
>  		}
> -		ath3k_switch_pid(udev);
> +		/* ath3k_switch_pid(udev); */

This is hopefully just a change for testing. Otherwise you break the
other drivers that really do need the PID switching. So please fix this.

>  		return 0;
>  	}
>  
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index c2de895..9b67b22 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -54,6 +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
>  
>  static struct usb_device_id btusb_table[] = {
>  	/* Generic Bluetooth USB device */
> @@ -110,7 +111,7 @@ 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_IGNORE },
> +	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
>  
>  	/* Atheros AR5BBU12 with sflash firmware */
>  	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
> @@ -914,6 +915,12 @@ static int btusb_probe(struct usb_interface *intf,
>  	if (ignore_sniffer && id->driver_info & BTUSB_SNIFFER)
>  		return -ENODEV;
>  
> +	if (id->driver_info & BTUSB_ATH3012) {
> +		struct usb_device *udev = interface_to_usbdev(intf);
> +		if(le16_to_cpu(udev->descriptor.bcdDevice <= 0x0001)) 

See comment above.

> +			return -ENODEV;
> +	}
> +
>  	data = kzalloc(sizeof(*data), GFP_KERNEL);
>  	if (!data)
>  		return -ENOMEM;

Regards

Marcel



^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: Bluetooth USB device keeps same PID/VID after downloading the patch and radio table
  2011-06-09 10:18     ` Marcel Holtmann
@ 2011-06-09 10:24       ` Li, Steven
  2011-06-27  8:47       ` Li, Steven
  1 sibling, 0 replies; 6+ messages in thread
From: Li, Steven @ 2011-06-09 10:24 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: Gustavo F. Padovan, Bluettooth Linux

DQpUaGFuayB5b3UgdmVyeSBtdWNoLCAgTWFyY2VsICENCg0KVGhlbiBJJ2xsIGRpc2N1c3Mgd2l0
aCBteSBtYW5hZ2VycyBhZ2FpbiB0byBkZXRlcm1pbmUgb3VyIHRoZSBmaW5hbCBzb2x1dGlvbi4g
DQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJjZWwgSG9sdG1h
bm4gW21haWx0bzptYXJjZWxAaG9sdG1hbm4ub3JnXQ0KPiBTZW50OiBUaHVyc2RheSwgSnVuZSAw
OSwgMjAxMSA2OjE4IFBNDQo+IFRvOiBMaSwgU3RldmVuDQo+IENjOiBHdXN0YXZvIEYuIFBhZG92
YW47IEJsdWV0dG9vdGggTGludXgNCj4gU3ViamVjdDogUmU6IEJsdWV0b290aCBVU0IgZGV2aWNl
IGtlZXBzIHNhbWUgUElEL1ZJRCBhZnRlciBkb3dubG9hZGluZw0KPiB0aGUgcGF0Y2ggYW5kIHJh
ZGlvIHRhYmxlDQo+IA0KPiBIaSBTdGV2ZW4sDQo+IA0KPiA+ID4gSSBkZWxldGVkIHlvdXIgbGFz
dCBlbWFpbCBieSBhY2NpZGVudC4gQ2FuIHlvdSByZS1zZW5kIGl0IHBsZWFzZS4NCj4gPg0KPiA+
IEFzIHlvdSBtYXkgbG9zZSB0aGUgbWFpbC4gSSdkIGxpa2UgdG8gaW50cm9kdWNlIG91ciBjb25k
aXRpb24gYWdhaW4uDQo+ID4NCj4gPiBBcyB0byB0aGUgQXRoZXJvcyAzMDExIGNoaXAuICB5ZXMs
IGl0IHVzZXMgREZVIG1vZGUgdG8gZG93bmxvYWQgdGhlDQo+IGZpcm13YXJlLg0KPiA+IEluc3Rl
YWQgb2YgZG93bmxvYWRpbmcgdGhlIGZpcm13YXJlLCB0aGUgbmV3IEF0aGVyb3MgMzAxMiBjaGlw
IG5lZWRzIHRvDQo+IGRvd25sb2FkIHBhdGNoIGFuZCByYWRpbyB0YWJsZS4NCj4gPiBUaGUgcGF0
Y2ggYW5kIHJhZGlvIHRhYmxlIGFyZSB1c2VkIHRvIGZpeCB0aG9zZSBidWdzIGZvdW5kIGFmdGVy
IGNoaXANCj4gc2hpcHBpbmcgb3IgZm9yIHNvbWUgb3RoZXIgc3BlY2lmaWMgdXNlLg0KPiA+IEFu
ZCAgdGhlIEF0aGVyb3MgMzAxMiBjaGlwIGl0c2VsZiBpcyBhIG5hdGl2ZSBibHVldG9vdGggZGV2
aWNlLiBFdmVuIHdpdGhvdXQNCj4gZG93bmxvYWRpbmcgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlLCBp
dCBjYW4gd29yay4NCj4gPg0KPiA+IFNvIHdpdGggdGhpcyBkZXNpZ24sIHRoZSBBdGhlcm9zIDMw
MTIgY2hpcCBhbHdheXMga2VlcHMgc2FtZSBQSUQvVklEIGV2ZW4NCj4gYWZ0ZXIgZG93bmxvYWRp
bmcgdGhlIHBhdGNoIGFuZCByYWRpbw0KPiA+IHRhYmxlLiBEdWUgdG8gdGhpcyBsaW1pdGF0aW9u
LCB3ZSBoYXZlIHByb2JsZW1zIHdpdGggY3VycmVudCBidHVzYi5jDQo+IGltcGxlbWVudGF0aW9u
Lg0KPiA+DQo+ID4gV2UgaGF2ZSB0byBoYXZlIGEgd29yayBhcm91bmQgd2F5LCAgdGhpcyBpcyB0
byB1c2UgdGhlIGJjZERldmljZSAoRGV2aWNlDQo+IFJlbGVhc2UgTnVtYmVyKSB0byBqdWRnZQ0K
PiA+IHdoZXRoZXIgdGhlIEF0aGVyb3MgMzAxMiBjaGlwIGhhcyBiZWVuIHBhdGNoZWQgb3Igbm90
Lg0KPiA+IFRoZSBpbml0IGJjZERldmljZSB2YWx1ZSBvZiB0aGlzIGNoaXAgaXMgMHgwMDAxLCAg
d2UgY2FuIGluY3JlYXNlIHRoaXMgdmFsdWUNCj4gYWZ0ZXIgcGF0Y2ggYW5kIHJhZGlvIHRhYmxl
IGRvd25sb2FkaW5nLg0KPiA+DQo+ID4gRG8geW91IHRoaW5rIGl0IGlzIHBvc3NpYmxlID8NCj4g
DQo+IG5vdyBJIHVuZGVyc3RhbmQgeW91ciBwcm9ibGVtLiBTbyBpbiB0aGVvcnkgeW91IGhhdmUg
YSBmdWxsIEJsdWV0b290aA0KPiBkZXZpY2Ugd29ya2luZyBhY2NvcmRpbmcgdG8gdGhlIEhDSSBz
dGFuZGFyZC4gQW5kIHlvdSBhcmUgdXNpbmcgdmVuZG9yDQo+IEhDSSBjb21tYW5kcyB0byBwYXRj
aCB0aGUgZmlybXdhcmUuDQo+IA0KPiBTbyB0aGlzIGlzIHNpbWlsYXIgdG8gd2hhdCB3ZSBhcmUg
ZG9pbmcgd2l0aCBhIGxvdCBvZiBVQVJUIGJhc2VkIGRldmljZXMNCj4gd2hlbiB1c2luZyBoY2lh
dHRhY2guDQo+IA0KPiBGb3Igbm93LCBJIGFtIGZpbmUgdXNpbmcgYmNkRGV2aWNlIG51bWJlci4g
SW4gdGhlIGVuZCB3ZSBoYXZlIHRvIGNyZWF0ZQ0KPiBhIHByZS1zdGFnZSBmb3IgbG9hZGluZyBm
dXJ0aGVyIGluc3RydWN0aW9ucyBvciBwYXRjaGVzIGludG8gdGhlIGRldmljZS4NCj4gV2UgaGFk
IHBsYW5zIGZvciB0aGlzIHByZS1zdGFnZSBhbHJlYWR5LCBidXQgbmV2ZXIgaW1wbGVtZW50ZWQg
dGhlbS4NCj4gDQo+ID4gRnJvbSAyZGMwZTcwM2VkMzkyZjQxZDkxOTg0YjBjZmQxZGE1NmY2ZjE3
M2NiIE1vbiBTZXAgMTcgMDA6MDA6MDANCj4gMjAwMQ0KPiA+IEZyb206IFN0ZXZlbi5MaSA8U3Rl
dmVuLkxpQEF0aGVyb3MuY29tPg0KPiA+IERhdGU6IFRodSwgMjYgTWF5IDIwMTEgMTc6MDY6NTIg
KzA4MDANCj4gPiBTdWJqZWN0OiBbUEFUQ0hdIFVzZSBiY2REZXZpY2UoRGV2aWNlIFJlbGVhc2Ug
TnVtYmVyKSB0byBleGNsdWRlIHRoZQ0KPiBhdGgzayBhbmQgYnR1c2IgZHJpdmVyLg0KPiA+DQo+
ID4gLS0tDQo+ID4gIGRyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMgfCAgICA1ICsrKystDQo+ID4g
IGRyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgfCAgICA5ICsrKysrKysrLQ0KPiA+ICAyIGZpbGVz
IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZm
IC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2F0
aDNrLmMNCj4gPiBpbmRleCA2YmFjZWYzLi5jOTlmYjA4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZl
cnMvYmx1ZXRvb3RoL2F0aDNrLmMNCj4gPiArKysgYi9kcml2ZXJzL2JsdWV0b290aC9hdGgzay5j
DQo+ID4gQEAgLTM3NSw2ICszNzUsOSBAQCBzdGF0aWMgaW50IGF0aDNrX3Byb2JlKHN0cnVjdCB1
c2JfaW50ZXJmYWNlICppbnRmLA0KPiA+DQo+ID4gIAkvKiBsb2FkIHBhdGNoIGFuZCBzeXNjb25m
aWcgZmlsZXMgZm9yIEFSMzAxMiAqLw0KPiA+ICAJaWYgKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNC
X0FUSDMwMTIpIHsNCj4gPiArCQlpZihsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmJjZERl
dmljZSA+IDB4MDAwMSkpDQo+IA0KPiBUaGlzIG5lZWRzIHRvIGJlIGxpa2UgdGhpczoNCj4gDQo+
IAkiaWYgKGxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuYmNkRGV2aWNlKSA+IDB4MDAwMSki
DQo+IA0KPiBPdGhlcndpc2UgeW91IGVuZGlhbiBzd2FwcGluZyBpcyBub3QgcmVhbGx5IGRvaW5n
IHdoYXQgaXQgaXMgc3VwcG9zZSB0bw0KPiBiZSBkb2luZy4NCj4gDQo+ID4gKwkJCXJldHVybiAt
RU5PREVWOw0KPiA+ICsNCj4gPiAgCQlyZXQgPSBhdGgza19sb2FkX3BhdGNoKHVkZXYpOw0KPiA+
ICAJCWlmIChyZXQgPCAwKSB7DQo+ID4gIAkJCUJUX0VSUigiTG9hZGluZyBwYXRjaCBmaWxlIGZh
aWxlZCIpOw0KPiA+IEBAIC0zOTAsNyArMzkzLDcgQEAgc3RhdGljIGludCBhdGgza19wcm9iZShz
dHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwNCj4gPiAgCQkJQlRfRVJSKCJTZXQgbm9ybWFsIG1v
ZGUgZmFpbGVkIik7DQo+ID4gIAkJCXJldHVybiByZXQ7DQo+ID4gIAkJfQ0KPiA+IC0JCWF0aDNr
X3N3aXRjaF9waWQodWRldik7DQo+ID4gKwkJLyogYXRoM2tfc3dpdGNoX3BpZCh1ZGV2KTsgKi8N
Cj4gDQo+IFRoaXMgaXMgaG9wZWZ1bGx5IGp1c3QgYSBjaGFuZ2UgZm9yIHRlc3RpbmcuIE90aGVy
d2lzZSB5b3UgYnJlYWsgdGhlDQo+IG90aGVyIGRyaXZlcnMgdGhhdCByZWFsbHkgZG8gbmVlZCB0
aGUgUElEIHN3aXRjaGluZy4gU28gcGxlYXNlIGZpeCB0aGlzLg0KPiANCj4gPiAgCQlyZXR1cm4g
MDsNCj4gPiAgCX0NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9idHVz
Yi5jIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+IGluZGV4IGMyZGU4OTUuLjliNjdi
MjIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+ICsrKyBi
L2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMNCj4gPiBAQCAtNTQsNiArNTQsNyBAQCBzdGF0aWMg
c3RydWN0IHVzYl9kcml2ZXIgYnR1c2JfZHJpdmVyOw0KPiA+ICAjZGVmaW5lIEJUVVNCX0JDTTky
MDM1CQkweDEwDQo+ID4gICNkZWZpbmUgQlRVU0JfQlJPS0VOX0lTT0MJMHgyMA0KPiA+ICAjZGVm
aW5lIEJUVVNCX1dST05HX1NDT19NVFUJMHg0MA0KPiA+ICsjZGVmaW5lIEJUVVNCX0FUSDMwMTIJ
CTB4ODANCj4gPg0KPiA+ICBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYnR1c2JfdGFibGVb
XSA9IHsNCj4gPiAgCS8qIEdlbmVyaWMgQmx1ZXRvb3RoIFVTQiBkZXZpY2UgKi8NCj4gPiBAQCAt
MTEwLDcgKzExMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBibGFja2xpc3RfdGFi
bGVbXSA9IHsNCj4gPiAgCXsgVVNCX0RFVklDRSgweDAzZjAsIDB4MzExZCksIC5kcml2ZXJfaW5m
byA9IEJUVVNCX0lHTk9SRSB9LA0KPiA+DQo+ID4gIAkvKiBBdGhlcm9zIDMwMTIgd2l0aCBzZmxh
c2ggZmlybXdhcmUgKi8NCj4gPiAtCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwNCksIC5kcml2
ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LA0KPiA+ICsJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgz
MDA0KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KPiA+DQo+ID4gIAkvKiBBdGhl
cm9zIEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovDQo+ID4gIAl7IFVTQl9ERVZJQ0Uo
MHgwNDg5LCAweGUwMmMpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9JR05PUkUgfSwNCj4gPiBAQCAt
OTE0LDYgKzkxNSwxMiBAQCBzdGF0aWMgaW50IGJ0dXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJm
YWNlICppbnRmLA0KPiA+ICAJaWYgKGlnbm9yZV9zbmlmZmVyICYmIGlkLT5kcml2ZXJfaW5mbyAm
IEJUVVNCX1NOSUZGRVIpDQo+ID4gIAkJcmV0dXJuIC1FTk9ERVY7DQo+ID4NCj4gPiArCWlmIChp
ZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9BVEgzMDEyKSB7DQo+ID4gKwkJc3RydWN0IHVzYl9kZXZp
Y2UgKnVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGYpOw0KPiA+ICsJCWlmKGxlMTZfdG9f
Y3B1KHVkZXYtPmRlc2NyaXB0b3IuYmNkRGV2aWNlIDw9IDB4MDAwMSkpDQo+IA0KPiBTZWUgY29t
bWVudCBhYm92ZS4NCj4gDQo+ID4gKwkJCXJldHVybiAtRU5PREVWOw0KPiA+ICsJfQ0KPiA+ICsN
Cj4gPiAgCWRhdGEgPSBremFsbG9jKHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOw0KPiA+ICAJ
aWYgKCFkYXRhKQ0KPiA+ICAJCXJldHVybiAtRU5PTUVNOw0KPiANCj4gUmVnYXJkcw0KPiANCj4g
TWFyY2VsDQo+IA0KDQo=

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: Bluetooth USB device keeps same PID/VID after downloading the patch and radio table
  2011-06-09 10:18     ` Marcel Holtmann
  2011-06-09 10:24       ` Li, Steven
@ 2011-06-27  8:47       ` Li, Steven
  1 sibling, 0 replies; 6+ messages in thread
From: Li, Steven @ 2011-06-27  8:47 UTC (permalink / raw)
  To: Bluettooth Linux

SGkgUGFkb3ZhbjoNCg0KUGxlYXNlIGhlbHAgdG8gYXBwcm92ZSBteSBwYXRjaC4NCkluIHRoaXMg
cGF0Y2gsIEkgYWRkZWQgc3VwcG9ydCB0byBvdXIgbmV3IHJlbGVhc2VkIEZXLCB3aGljaCBvbmx5
IHN1cHBvcnRzIG9uZSBQSUQvVklELg0KYW5kICB0aGlzIHBhdGNoIHdpbGwgbm90IGJyZWFrIHRo
b3NlIG9sZCBkZXZpY2VzIGRvIG5lZWQgdGhlIFBJRCBzd2l0Y2hpbmcuDQoNClRoYW5rIHlvdSB2
ZXJ5IG11Y2guDQoNCkJlc3QgUmVnYXJkcywNClN0ZXZlbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1l
c3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJjZWwgSG9sdG1hbm4gW21haWx0bzptYXJjZWxAaG9sdG1h
bm4ub3JnXQ0KPiBTZW50OiBUaHVyc2RheSwgSnVuZSAwOSwgMjAxMSA2OjE4IFBNDQo+IFRvOiBM
aSwgU3RldmVuDQo+IENjOiBHdXN0YXZvIEYuIFBhZG92YW47IEJsdWV0dG9vdGggTGludXgNCj4g
U3ViamVjdDogUmU6IEJsdWV0b290aCBVU0IgZGV2aWNlIGtlZXBzIHNhbWUgUElEL1ZJRCBhZnRl
ciBkb3dubG9hZGluZw0KPiB0aGUgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlDQo+IA0KPiBIaSBTdGV2
ZW4sDQo+IA0KPiA+ID4gSSBkZWxldGVkIHlvdXIgbGFzdCBlbWFpbCBieSBhY2NpZGVudC4gQ2Fu
IHlvdSByZS1zZW5kIGl0IHBsZWFzZS4NCj4gPg0KPiA+IEFzIHlvdSBtYXkgbG9zZSB0aGUgbWFp
bC4gSSdkIGxpa2UgdG8gaW50cm9kdWNlIG91ciBjb25kaXRpb24gYWdhaW4uDQo+ID4NCj4gPiBB
cyB0byB0aGUgQXRoZXJvcyAzMDExIGNoaXAuICB5ZXMsIGl0IHVzZXMgREZVIG1vZGUgdG8gZG93
bmxvYWQgdGhlDQo+IGZpcm13YXJlLg0KPiA+IEluc3RlYWQgb2YgZG93bmxvYWRpbmcgdGhlIGZp
cm13YXJlLCB0aGUgbmV3IEF0aGVyb3MgMzAxMiBjaGlwIG5lZWRzIHRvDQo+IGRvd25sb2FkIHBh
dGNoIGFuZCByYWRpbyB0YWJsZS4NCj4gPiBUaGUgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlIGFyZSB1
c2VkIHRvIGZpeCB0aG9zZSBidWdzIGZvdW5kIGFmdGVyIGNoaXANCj4gc2hpcHBpbmcgb3IgZm9y
IHNvbWUgb3RoZXIgc3BlY2lmaWMgdXNlLg0KPiA+IEFuZCAgdGhlIEF0aGVyb3MgMzAxMiBjaGlw
IGl0c2VsZiBpcyBhIG5hdGl2ZSBibHVldG9vdGggZGV2aWNlLiBFdmVuIHdpdGhvdXQNCj4gZG93
bmxvYWRpbmcgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlLCBpdCBjYW4gd29yay4NCj4gPg0KPiA+IFNv
IHdpdGggdGhpcyBkZXNpZ24sIHRoZSBBdGhlcm9zIDMwMTIgY2hpcCBhbHdheXMga2VlcHMgc2Ft
ZSBQSUQvVklEIGV2ZW4NCj4gYWZ0ZXIgZG93bmxvYWRpbmcgdGhlIHBhdGNoIGFuZCByYWRpbw0K
PiA+IHRhYmxlLiBEdWUgdG8gdGhpcyBsaW1pdGF0aW9uLCB3ZSBoYXZlIHByb2JsZW1zIHdpdGgg
Y3VycmVudCBidHVzYi5jDQo+IGltcGxlbWVudGF0aW9uLg0KPiA+DQo+ID4gV2UgaGF2ZSB0byBo
YXZlIGEgd29yayBhcm91bmQgd2F5LCAgdGhpcyBpcyB0byB1c2UgdGhlIGJjZERldmljZSAoRGV2
aWNlDQo+IFJlbGVhc2UgTnVtYmVyKSB0byBqdWRnZQ0KPiA+IHdoZXRoZXIgdGhlIEF0aGVyb3Mg
MzAxMiBjaGlwIGhhcyBiZWVuIHBhdGNoZWQgb3Igbm90Lg0KPiA+IFRoZSBpbml0IGJjZERldmlj
ZSB2YWx1ZSBvZiB0aGlzIGNoaXAgaXMgMHgwMDAxLCAgd2UgY2FuIGluY3JlYXNlIHRoaXMgdmFs
dWUNCj4gYWZ0ZXIgcGF0Y2ggYW5kIHJhZGlvIHRhYmxlIGRvd25sb2FkaW5nLg0KPiA+DQo+ID4g
RG8geW91IHRoaW5rIGl0IGlzIHBvc3NpYmxlID8NCj4gDQo+IG5vdyBJIHVuZGVyc3RhbmQgeW91
ciBwcm9ibGVtLiBTbyBpbiB0aGVvcnkgeW91IGhhdmUgYSBmdWxsIEJsdWV0b290aA0KPiBkZXZp
Y2Ugd29ya2luZyBhY2NvcmRpbmcgdG8gdGhlIEhDSSBzdGFuZGFyZC4gQW5kIHlvdSBhcmUgdXNp
bmcgdmVuZG9yDQo+IEhDSSBjb21tYW5kcyB0byBwYXRjaCB0aGUgZmlybXdhcmUuDQo+IA0KPiBT
byB0aGlzIGlzIHNpbWlsYXIgdG8gd2hhdCB3ZSBhcmUgZG9pbmcgd2l0aCBhIGxvdCBvZiBVQVJU
IGJhc2VkIGRldmljZXMNCj4gd2hlbiB1c2luZyBoY2lhdHRhY2guDQo+IA0KPiBGb3Igbm93LCBJ
IGFtIGZpbmUgdXNpbmcgYmNkRGV2aWNlIG51bWJlci4gSW4gdGhlIGVuZCB3ZSBoYXZlIHRvIGNy
ZWF0ZQ0KPiBhIHByZS1zdGFnZSBmb3IgbG9hZGluZyBmdXJ0aGVyIGluc3RydWN0aW9ucyBvciBw
YXRjaGVzIGludG8gdGhlIGRldmljZS4NCj4gV2UgaGFkIHBsYW5zIGZvciB0aGlzIHByZS1zdGFn
ZSBhbHJlYWR5LCBidXQgbmV2ZXIgaW1wbGVtZW50ZWQgdGhlbS4NCj4gDQo+ID4gRnJvbSAyZGMw
ZTcwM2VkMzkyZjQxZDkxOTg0YjBjZmQxZGE1NmY2ZjE3M2NiIE1vbiBTZXAgMTcgMDA6MDA6MDAN
Cj4gMjAwMQ0KPiA+IEZyb206IFN0ZXZlbi5MaSA8U3RldmVuLkxpQEF0aGVyb3MuY29tPg0KPiA+
IERhdGU6IFRodSwgMjYgTWF5IDIwMTEgMTc6MDY6NTIgKzA4MDANCj4gPiBTdWJqZWN0OiBbUEFU
Q0hdIFVzZSBiY2REZXZpY2UoRGV2aWNlIFJlbGVhc2UgTnVtYmVyKSB0byBleGNsdWRlIHRoZQ0K
PiBhdGgzayBhbmQgYnR1c2IgZHJpdmVyLg0KPiA+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvYmx1
ZXRvb3RoL2F0aDNrLmMgfCAgICA1ICsrKystDQo+ID4gIGRyaXZlcnMvYmx1ZXRvb3RoL2J0dXNi
LmMgfCAgICA5ICsrKysrKysrLQ0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMo
KyksIDIgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9v
dGgvYXRoM2suYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMNCj4gPiBpbmRleCA2YmFjZWYz
Li5jOTlmYjA4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMNCj4g
PiArKysgYi9kcml2ZXJzL2JsdWV0b290aC9hdGgzay5jDQo+ID4gQEAgLTM3NSw2ICszNzUsOSBA
QCBzdGF0aWMgaW50IGF0aDNrX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLA0KPiA+
DQo+ID4gIAkvKiBsb2FkIHBhdGNoIGFuZCBzeXNjb25maWcgZmlsZXMgZm9yIEFSMzAxMiAqLw0K
PiA+ICAJaWYgKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0FUSDMwMTIpIHsNCj4gPiArCQlpZihs
ZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmJjZERldmljZSA+IDB4MDAwMSkpDQo+IA0KPiBU
aGlzIG5lZWRzIHRvIGJlIGxpa2UgdGhpczoNCj4gDQo+IAkiaWYgKGxlMTZfdG9fY3B1KHVkZXYt
PmRlc2NyaXB0b3IuYmNkRGV2aWNlKSA+IDB4MDAwMSkiDQo+IA0KPiBPdGhlcndpc2UgeW91IGVu
ZGlhbiBzd2FwcGluZyBpcyBub3QgcmVhbGx5IGRvaW5nIHdoYXQgaXQgaXMgc3VwcG9zZSB0bw0K
PiBiZSBkb2luZy4NCj4gDQo+ID4gKwkJCXJldHVybiAtRU5PREVWOw0KPiA+ICsNCj4gPiAgCQly
ZXQgPSBhdGgza19sb2FkX3BhdGNoKHVkZXYpOw0KPiA+ICAJCWlmIChyZXQgPCAwKSB7DQo+ID4g
IAkJCUJUX0VSUigiTG9hZGluZyBwYXRjaCBmaWxlIGZhaWxlZCIpOw0KPiA+IEBAIC0zOTAsNyAr
MzkzLDcgQEAgc3RhdGljIGludCBhdGgza19wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50
ZiwNCj4gPiAgCQkJQlRfRVJSKCJTZXQgbm9ybWFsIG1vZGUgZmFpbGVkIik7DQo+ID4gIAkJCXJl
dHVybiByZXQ7DQo+ID4gIAkJfQ0KPiA+IC0JCWF0aDNrX3N3aXRjaF9waWQodWRldik7DQo+ID4g
KwkJLyogYXRoM2tfc3dpdGNoX3BpZCh1ZGV2KTsgKi8NCj4gDQo+IFRoaXMgaXMgaG9wZWZ1bGx5
IGp1c3QgYSBjaGFuZ2UgZm9yIHRlc3RpbmcuIE90aGVyd2lzZSB5b3UgYnJlYWsgdGhlDQo+IG90
aGVyIGRyaXZlcnMgdGhhdCByZWFsbHkgZG8gbmVlZCB0aGUgUElEIHN3aXRjaGluZy4gU28gcGxl
YXNlIGZpeCB0aGlzLg0KPiANCj4gPiAgCQlyZXR1cm4gMDsNCj4gPiAgCX0NCj4gPg0KPiA+IGRp
ZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jIGIvZHJpdmVycy9ibHVldG9vdGgv
YnR1c2IuYw0KPiA+IGluZGV4IGMyZGU4OTUuLjliNjdiMjIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp
dmVycy9ibHVldG9vdGgvYnR1c2IuYw0KPiA+ICsrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNi
LmMNCj4gPiBAQCAtNTQsNiArNTQsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYnR1c2Jf
ZHJpdmVyOw0KPiA+ICAjZGVmaW5lIEJUVVNCX0JDTTkyMDM1CQkweDEwDQo+ID4gICNkZWZpbmUg
QlRVU0JfQlJPS0VOX0lTT0MJMHgyMA0KPiA+ICAjZGVmaW5lIEJUVVNCX1dST05HX1NDT19NVFUJ
MHg0MA0KPiA+ICsjZGVmaW5lIEJUVVNCX0FUSDMwMTIJCTB4ODANCj4gPg0KPiA+ICBzdGF0aWMg
c3RydWN0IHVzYl9kZXZpY2VfaWQgYnR1c2JfdGFibGVbXSA9IHsNCj4gPiAgCS8qIEdlbmVyaWMg
Qmx1ZXRvb3RoIFVTQiBkZXZpY2UgKi8NCj4gPiBAQCAtMTEwLDcgKzExMSw3IEBAIHN0YXRpYyBz
dHJ1Y3QgdXNiX2RldmljZV9pZCBibGFja2xpc3RfdGFibGVbXSA9IHsNCj4gPiAgCXsgVVNCX0RF
VklDRSgweDAzZjAsIDB4MzExZCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LA0KPiA+
DQo+ID4gIAkvKiBBdGhlcm9zIDMwMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUgKi8NCj4gPiAtCXsg
VVNCX0RFVklDRSgweDBjZjMsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9
LA0KPiA+ICsJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA0KSwgLmRyaXZlcl9pbmZvID0gQlRV
U0JfQVRIMzAxMiB9LA0KPiA+DQo+ID4gIAkvKiBBdGhlcm9zIEFSNUJCVTEyIHdpdGggc2ZsYXNo
IGZpcm13YXJlICovDQo+ID4gIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwMmMpLCAuZHJpdmVy
X2luZm8gPSBCVFVTQl9JR05PUkUgfSwNCj4gPiBAQCAtOTE0LDYgKzkxNSwxMiBAQCBzdGF0aWMg
aW50IGJ0dXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLA0KPiA+ICAJaWYgKGln
bm9yZV9zbmlmZmVyICYmIGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX1NOSUZGRVIpDQo+ID4gIAkJ
cmV0dXJuIC1FTk9ERVY7DQo+ID4NCj4gPiArCWlmIChpZC0+ZHJpdmVyX2luZm8gJiBCVFVTQl9B
VEgzMDEyKSB7DQo+ID4gKwkJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBpbnRlcmZhY2VfdG9f
dXNiZGV2KGludGYpOw0KPiA+ICsJCWlmKGxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuYmNk
RGV2aWNlIDw9IDB4MDAwMSkpDQo+IA0KPiBTZWUgY29tbWVudCBhYm92ZS4NCj4gDQo+ID4gKwkJ
CXJldHVybiAtRU5PREVWOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiAgCWRhdGEgPSBremFsbG9jKHNp
emVvZigqZGF0YSksIEdGUF9LRVJORUwpOw0KPiA+ICAJaWYgKCFkYXRhKQ0KPiA+ICAJCXJldHVy
biAtRU5PTUVNOw0KPiANCj4gUmVnYXJkcw0KPiANCj4gTWFyY2VsDQo+IA0KDQo=

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-06-27  8:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-26  8:46 Bluetooth USB device keeps same PID/VID after downloading the patch and radio table Steven Li
2011-05-26  9:30 ` Steven Li
2011-06-08 10:31   ` Li, Steven
2011-06-09 10:18     ` Marcel Holtmann
2011-06-09 10:24       ` Li, Steven
2011-06-27  8:47       ` Li, Steven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.