* 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox