Return-Path: From: Par-Gunnar HJALMDAHL To: Arnd Bergmann , Pavan Savoy Cc: Vitaly Wool , Linus Walleij , Alan Cox , Samuel Ortiz , Marcel Holtmann , "linux-kernel@vger.kernel.org" , "linux-bluetooth@vger.kernel.org" , Lukasz Rymanowski , Par-Gunnar Hjalmdahl Date: Mon, 17 Jan 2011 16:32:50 +0100 Subject: RE: [PATCH 00/11] mfd and bluetooth: Add CG2900 suppor Message-ID: References: <1292584829-28279-1-git-send-email-par-gunnar.p.hjalmdahl@stericsson.com> <201101061946.04790.arnd@arndb.de> <201101091955.05174.arnd@arndb.de> In-Reply-To: <201101091955.05174.arnd@arndb.de> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 List-ID: SGksDQoNClNvcnJ5IGZvciBub3QgYW5zd2VyaW5nIGVhcmxpZXIuIEkndmUgYmVlbiBvdmVybG9h ZGVkIHdpdGggdGhpbmdzIHRvIGRvIG5vdyBhZnRlciBOZXcgWWVhci4gU2VlIGJlbG93Lg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFybmQgQmVyZ21hbm4gW21haWx0 bzphcm5kQGFybmRiLmRlXQ0KPiBTZW50OiBkZW4gOSBqYW51YXJpIDIwMTEgMTk6NTUNCj4gVG86 IFBhdmFuIFNhdm95DQo+IENjOiBQYXItR3VubmFyIEhKQUxNREFITDsgVml0YWx5IFdvb2w7IExp bnVzIFdhbGxlaWo7IEFsYW4gQ294OyBTYW11ZWwNCj4gT3J0aXo7IE1hcmNlbCBIb2x0bWFubjsg bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtDQo+IGJsdWV0b290aEB2Z2VyLmtl cm5lbC5vcmc7IEx1a2FzeiBSeW1hbm93c2tpOyBQYXItR3VubmFyIEhqYWxtZGFobA0KPiBTdWJq ZWN0OiBSZTogW1BBVENIIDAwLzExXSBtZmQgYW5kIGJsdWV0b290aDogQWRkIENHMjkwMCBzdXBw b3INCj4gDQo+IE9uIFN1bmRheSAwOSBKYW51YXJ5IDIwMTEsIFBhdmFuIFNhdm95IHdyb3RlOg0K PiA+IE9uIEZyaSwgSmFuIDcsIDIwMTEgYXQgMTI6MTYgQU0sIEFybmQgQmVyZ21hbm4gPGFybmRA YXJuZGIuZGU+IHdyb3RlOg0KPiA+ID4gT24gV2VkbmVzZGF5IDA1IEphbnVhcnkgMjAxMSwgUGFy LUd1bm5hciBISkFMTURBSEwgd3JvdGU6DQo+ID4gPg0KPiA+ID4+IFNvcnJ5IGZvciBub3QgYW5z d2VyaW5nIHNvb25lci4gSSd2ZSBiZWVuIG9uIENocmlzdG1hcyBhbmQgTmV3DQo+IFllYXIgdmFj YXRpb24uDQo+ID4gPg0KPiA+ID4gSSdtIGFsc28gc3RpbGwgY2F0Y2hpbmcgdXAgd2l0aCBlbWFp bCB0aGF0IGhhcyBhY2N1bXVsYXRlZCBvdmVyIG15DQo+ID4gPiB2YWNhdGlvbiwgaW5jbHVkaW5n IHlvdXIgcHJldmlvdXMgcmVzcG9uc2UuDQo+ID4gPg0KPiA+ID4gVGhpcyBzb3VuZHMgd3Jvbmcg Zm9yIGJvdGggVEkgYW5kIFNULUU6IEFGQUlDVCB0aGV5IGFyZSBhY3R1YWxseQ0KPiBidWlsdA0K PiA+ID4gYXJvdW5kIGFuIEhDSSBpbnRlcmZhY2UuIEl0J3MgdW5mb3J0dW5hdGUgdGhhdCB0aGUg VEkgY29kZSBhY3R1YWxseQ0KPiBnb3QNCj4gPiA+IG1lcmdlZCBpbnRvIHRoZSBrZXJuZWwgbGlr ZSB0aGlzLg0KPiA+DQo+ID4gSSBhbSBub3Qgc3VyZSB3aGF0IGRvZXMgYnVpbHQgYXJvdW5kIEhD SSBJbnRlcmZhY2UgbWVhbj8gQWxzbyB5ZXMsIGluDQo+IFRJLSBjb2RlDQo+ID4gd2UgZG8gcmVm ZXIgdG8gQmx1ZXRvb3RoIGhlYWRlcnMuDQo+ID4gSG93ZXZlciB0aGUgZmFjdCB0aGF0IEkgd2Fu dGVkIHRvIHBvaW50IG91dCB0byBQYXItR3VubmFyIHdhcywgdGhhdA0KPiB3ZQ0KPiA+IGRvbid0 IHdhbnQgdG8gdXNlDQo+ID4gaGNpYXR0YWNoIGFuZCBlbmFibGUgSENJLVVBUlQgKyBIQ0ktSDQg Zm9yIGVuYWJsaW5nIG91ciBkcml2ZXIgb3Igb3VyDQo+ID4gZHJpdmVyIHNob3VsZCBub3QNCj4g PiBkZXBlbmQgb24gdGhvc2UgbW9kdWxlcyBhcyBzdWNoLi4uDQo+IA0KPiBHb29kIHBvaW50IGFi b3V0IGhjaWF0dGFjaCwgeW91IGNlcnRhaW5seSBzaG91bGRuJ3QgbmVlZCB0byB1c2UgdGhhdCBp Zg0KPiB0aGUga2VybmVsIGFscmVhZHkga25vd3MgdGhhdCBhIHR0eSBpcyBjb25uZWN0ZWQgdG8g YW4gSENJIGFuZCB3aGF0IHRoZQ0KPiBwYXJhbWV0ZXJzIGFyZS4gRXZlbiBtb3JlIHNvIGlmIHRo ZSBIQ0kgaXMgbm90IGFjdHVhbGx5IG9uIGEgcnMyMzIgbGluZQ0KPiBidXQgc29tZXRoaW5nIGxp a2UgaTJjIG9yIHNwaS4gQXV0b21hdGljYWxseSBiaW5kaW5nIHRvIHRoZSByaWdodCBsaW5lDQo+ IGRpc2NpcGxpbmUgc2hvdWxkIGJlIGVhc2lseSBkb2FibGUgaW4gdGhlIGRyaXZlcnMgdGhvdWdo Lg0KPiANCg0KV2hlbiBoYXZpbmcgVUFSVCBhcyB0cmFuc3BvcnQgeW91IG5lZWQgc29tZXRoaW5n IHRvIG9wZW4gdGhlIFVBUlQgYW5kIHNldCB0aGUgbGluZSBkaXNjaXBsaW5lLiBJZiB0aGlzIGlz IGhjaWF0dGFjaCBvciBzb21ldGhpbmcgZWxzZSBpcyB1cCB0byBlYWNoIGRldmVsb3BlciB0byBz dWl0IHdoYXQgdGhleSBhcmUgZG9pbmcuIEkgZG9uJ3Qgc2VlIGEgcHJvYmxlbSB3aXRoIHVzaW5n IGhjaWF0dGFjaCBldmVuIGlmIHlvdSBkb24ndCB1c2UgdGhlIEJsdWV0b290aCBwYXJ0IChpZiB0 aGUgZXhlIGlzIHBhcnQgb2YgdGhlIHN5c3RlbSBhbnl3YXkpLCBidXQgaWYgYSBjb21wYW55L2Rl dmVsb3BlciB3YW50IHRvIHVzZSBzb21ldGhpbmcgZWxzZSB0aGV5IGNhbiBkbyB0aGF0LiBJdCdz IGEgdXNhZ2Ugb2Ygc3RhbmRhcmQgaW50ZXJmYWNlcyB1c2luZyBvcGVuKCkgYW5kIGlvY3RsKCku DQpJIHN0aWxsIGRvbid0IHRoaW5rIHRoYXQgeW91IHNob3VsZCBoYXZlIGEgbGluZSBkaXNjaXBs aW5lIGZvciBvdGhlciB0cmFuc3BvcnRzIHRoYW4gVUFSVC4gSWYgSSB3b3VsZCBsb29rIGF0IGhv dyBJIHdvdWxkIGltcGxlbWVudCBhbiBTUEkgZHJpdmVyIGZvciBDRzI5MDAsIHRoZXJlIHdvdWxk IGFsbW9zdCBiZSBubyBjb2RlIHRoYXQgY291bGQgYmUgdXNlZCBpbiBjb21tb24gYmV0d2VlbiBj ZzI5MDBfdWFydCBhbmQgY2cyOTAwX3NwaS4gU1BJIGRvZXNuJ3QgY2hhbmdlIGJhdWQgcmF0ZSwg U1BJIHVzZXMgY29tbWFuZHMgZm9yIHNsZWVwL3dha2UgaW5zdGVhZCBvZiBCcmVhaywgU1BJIHBh Y2tldHMgZG9lc24ndCBuZWVkIGV4dHJhIHBhY2tldGl6aW5nLCBldGMuDQoNCj4gSSBkb24ndCB1 bmRlcnN0YW5kIHRoZSBwcm9ibGVtIHdpdGggcmVseWluZyBvbiB0aGUgaGNpLXVhcnQgb3IgaGNp LWg0DQo+IG1vZHVsZXMuIElmIHRoZSBoYXJkd2FyZSB1c2VzIHRoZSBINCBwcm90b2NvbCwgd2Ug Y2VydGFpbmx5IHNob3VsZCB1c2UNCj4gdGhlIGtlcm5lbCBtb2R1bGUgdGhhdCBrbm93cyBob3cg dG8gZGVhbCB3aXRoIEg0LCBhbmQgd2UgZG9uJ3Qgd2FudA0KPiB0byBoYXZlIHR3byBtb2R1bGVz IGltcGxlbWVudGluZyB0aGUgc2FtZSBwcm90b2NvbC4NCj4gDQoNCkkgbXVzdCBzYXkgSSBkb24n dCB1bmRlcnN0YW5kIHRoaXMgcHJvYmxlbSBlaXRoZXIuIFVubGVzcyB0aGUgcHJvdG9jb2wgZHJp dmVyIGlzIGFjdGl2YXRlZCB0aHJvdWdoIGlvY3RsIFNFVF9QUk9UT0NPTCwgdGhlIGNvZGUgd2ls bCBub3QgYmUgZXhlY3V0ZWQsIGFuZCB0aGUgYW1vdW50IG9mIFJPTSBuZWVkZWQgaXMgbmVnbGln aWJsZS4NCklmIHlvdSBsb29rIGF0IG91ciBzdWJtaXNzaW9uLCB0aGUgaGNpLWg0IGNvdWxkIHBv c3NpYmx5IGJlIHJldXNlZCB0byBzb21lIGV4dGVudC4gQmFzaWNhbGx5IHRoZSBwYWNrZXRpemlu ZyB0byB0aGUgQmx1ZXRvb3RoIEg0IGNoYW5uZWxzIDEtNCBjb3VsZCBiZSByZS11c2VkLiBJbiBv cmRlciB0byBhbGxvdyBmb3IgdmVuZG9yIHNwZWNpZmljIGNoYW5uZWxzIHRvIGJlIGhhbmRsZWQg c29tZSBuZXcgcmVnaXN0cmF0aW9uIHN5c3RlbSBvbiB0b3Agb2YgaGNpLWg0IHBsdXMgYSBjYWxs YmFjayBzeXN0ZW0gZm9yIGRhdGEgcmVjZXB0aW9uIHdvdWxkIGhhdmUgdG8gYmUgYWRkZWQgKGlu IG9yZGVyIHRvIGZhY2lsaXRhdGUgc3lzdGVtcyB0aGF0IGRvIG5vdCB3YW50IGFsbCBkYXRhIHRv IGJlIHNlbnQgZGlyZWN0bHkgdG8gdGhlIEJsdWV0b290aCBzdGFjayBzdWNoIGFzIHRoZSBDRzI5 MDAgZHJpdmVyKS4gSSdtIGFmcmFpZCB0aGF0IHdlIHdvdWxkIGhhdmUgYSBzaWduaWZpY2FudGx5 IG1vcmUgY29tcGxleCBzeXN0ZW0gYW5kIGxhcmdlciBhbW91bnQgb2YgY29kZSBpZiB3ZSB3b3Vs ZCB0cnkgdG8gZ2VuZXJhbGl6ZSB0aGUgaGNpLWg0IG1vZHVsZS4gSSBkZWZpbml0ZWx5IHByZWZl ciB0aGUgY3VycmVudCBtb2RlbCB3aGVyZSBhIHZlbmRvciBzcGVjaWZpYyBkcml2ZXIgcmVwbGFj ZXMgdGhlIGhjaS1oNCBwcm90b2NvbCBkcml2ZXIuDQoNCj4gPiA+PiA+IGluc3RlYWQgb2YgY29t bW9uLWhjaS1tb2R1bGUsIHdoeSBub3QgY3JlYXRlIGEgYWxnby1kcml2ZXIgbGF5ZXINCj4gJ2Fs YQ0KPiA+ID4+ID4gaTJjID8gd2hlcmUgaW5kaXZpZHVhbCBkcml2ZXJzIGNhbiByZWdpc3RlciB0 aGVpciByZWNlaXZlDQo+IGhhbmRsZXJzIGZvcg0KPiA+ID4+ID4gZGF0YSBpbnRlcnByZXRhdGlv biA/DQo+ID4gPg0KPiA+ID4gVGhhdCB3b3VsZCBiZSB3aGF0IEkgc3VnZ2VzdGVkIDstKQ0KPiA+ DQo+ID4gQnV0IGV2ZW4gaGVyZSB0b28sIHRoZSBhbGdvcyBsYXllciBpZiB5b3UgaW1hZ2luZSB3 aGljaCBjYW4gYmUgdGhlDQo+ID4gc29ydCBvZiB0aGUgZmlyc3QNCj4gPiByZWNlaXZlciBvZiBk YXRhIGZyb20gdGhlIHRyYW5zcG9ydCB3b3VsZCByZWZlciB0byBCVCBoZWFkZXJzIHRvDQo+ID4g aW50ZXJwcmV0IHRoZSBkYXRhIChub3QganVzdCBCVCwgYnV0IEZNL0dQUykNCj4gPiBhbmQgcGFz cyBpdCBvbnRvIG90aGVyIHByb3RvY29sL2NsaWVudCBkcml2ZXJzLA0KPiANCj4gUmlnaHQsIHRo YXQgaXMgdGhlIGVudGlyZSBpZGVhLCBhbmQgSSBkb24ndCBzZWUgYSBwcm9ibGVtIGhlcmUuDQo+ IElmIHlvdSBkbyB0aGlzLCB5b3UgdXNlIHRoZSBoZWFkZXJzIG9mIHRoZSB0d28gc3Vic3lzdGVt cyB5b3UNCj4gaW50ZXJmYWNlIHdpdGguIFdoYXQgeW91IHNob3VsZCAvbm90LyBpbnN0ZWFkIGlz IHVzZSBoZWFkZXINCj4gZmlsZXMgb2YgYSBzdWJzeXN0ZW0geW91IGRvbid0IGludGVyZmFjZSB3 aXRoIGFuZCByZWludGVycHJldGUNCj4gdGhlIGRlZmluaXRpb25zIGluIGNyZWF0aXZlIHdheXMs IHdoaWNoIGlzIHdoYXQgSSB1bmRlcnN0b29kDQo+IHdhcyBiZWluZyBkaXNjdXNzZWQgZWFybGll ci4NCj4gDQo+ID4gPj4gSW4gc29tZSB3YXkgeW91IHRoZW4gcnVuIGludG8gdGhlIHNhbWUgcHJv YmxlbSBoYXMgSSBoYWQgaW4NCj4gcHJldmlvdXMgcGF0Y2gNCj4gPiA+PiBzZXRzLiBUaGUgZnVu Y3Rpb25hbGl0aWVzIHN1cHBvcnRlZCBpcyByZWFsbHkgZGV0ZXJtaW5lZCBieSBlYWNoDQo+IGNo aXAuDQo+ID4gPj4gWW91IG1pZ2h0IG9yIG1pZ2h0IG5vdCBoYXZlIGZvciBleGFtcGxlIEdQUyBp biBhIGNlcnRhaW4gY2hpcC4gU28NCj4geW91IGRvIG5vdA0KPiA+ID4+IHdhbnQgYSBjZW50cmFs IG1vZHVsZSB0byBleHBvc2UgYWxsIHBvc3NpYmxlIGNoYW5uZWxzIHRvIHRoZQ0KPiBzdGFja3Mg b24gdG9wLg0KPiA+ID4+DQo+ID4gPj4gWW91IG9ubHkgd2FudCB0aGUgYWN0dWFsbHkgc3VwcG9y dGVkIGZlYXR1cmVzIHRvIGJlIGV4cG9zZWQgdG8NCj4gdXBwZXIgbGF5ZXJzLg0KPiA+ID4+IFRo ZW4gdGhlIE1GRCBzeXN0ZW0gaXMgcHJldHR5IG5pY2UuIEl0J3MgZWFzeSBhbmQgbW9kdWxhcml6 ZWQgdG8NCj4gZXhwb3NlIHRoZQ0KPiA+ID4+IGRpZmZlcmVudCBjaGFubmVscyBhcyBNRkQgY2Vs bHMuDQo+ID4gPg0KPiA+ID4gQnV0IGFzIHNvb24gYXMgeW91IGhhdmUgdGhlIGNvbmNlcHQgb2Yg Y2hhbm5lbHMgd2l0aCBhIGNsZWFybHkNCj4gZGVmaW5lZA0KPiA+ID4gaW50ZXJmYWNlLCB5b3Ug aGF2ZSBhbG1vc3QgYWJzdHJhY3RlZCBpdCBlbm91Z2ggdG8gZ28gYWxsIHRoZSB3YXkuDQo+ID4N Cj4gPiBTb21ldGhpbmcgbGlrZSB0aGlzIGlzIHdoYXQgdGhlIHJlY2VudCBSRkMgcG9zdGVkIHRv DQo+ID4gbGttbC9saW51eC1ibHVldG9vdGgNCj4gPiBodHRwOi8vd3d3LnNwaW5pY3MubmV0L2xp c3RzL2xpbnV4LWJsdWV0b290aC9tc2cwOTk5MC5odG1sLA0KPiA+IGl0IGtpbmRhIGxvb2tzIGNs dW1zeQ0KPiA+IGJ1dCB3aGF0IEkgZmVlbCBpcyB3ZSBzaG91bGRuJ3Qgc2h5IGF3YXkgZnJvbSBu b3QgcmVmZXJlbmNpbmcNCj4gPiBCbHVldG9vdGgsIChvciBtYXkgYmUgdG9tb3Jyb3cgR1BTDQo+ ID4gd2l0aCBOTUVBIGhlYWRlcnMpLi4uLg0KPiANCj4gVGhlIG9uZSBpbXBvcnRhbnQgZ29hbCBo ZXJlIHNob3VsZCBiZSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLg0KPiBVc2luZyB0aGUgaGVh ZGVyIHRvIGdldCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGZyb20gc2VwYXJhdGUgY29kZQ0KPiBtZWFu cyB5b3UgbmVlZCB0byBoYXZlIHNpbWlsYXIgcGFyc2luZyBmdW5jdGlvbnMgaW4gZWFjaCBvZiB0 aGUgbW9kdWxlcw0KPiB1c2luZyBpdC4gTm90IHNoYXJpbmcgdGhlIGhlYWRlciB3b3VsZG4ndCBo ZWxwLCBiZWNhdXNlIHRoZW4geW91IGVuZA0KPiB1cCBkdXBsaWNhdGluZyBldmVuIG1vcmUuIFRo ZSByZWFsIHNvbHV0aW9uLCBzcGVha2luZyB2ZXJ5IGJyb2FkbHksDQo+IG11c3QgYmUgdG8gaGF2 ZSBhIGdlbmVyYWwgbW9kdWxlIHRoYXQgZGVhbHMgd2l0aCB3aGF0ZXZlciB0aGUgbW9yZQ0KPiBz cGVjaWZpYyBtb2R1bGVzIGhhdmUgaW4gY29tbW9uLCBhbmQgaGF2ZSBhIGhlYWRlciBmaWxlIHRo YXQgZGVmaW5lcw0KPiB0aGUgaW50ZXJmYWNlIHRvIGl0Lg0KPiANCg0KSW4gZ2VuZXJhbCBJIGFn cmVlIHdpdGggeW91LCBidXQgdGhlcmUgYXJlIHNvbWUgcHJvYmxlbXMgaGVyZS4NClRoZSBtb3N0 IHVzZWQgQlQgSENJIGV2ZW50cyBhcmUgQ29tbWFuZCBTdGF0dXMgYW5kIENvbW1hbmQgQ29tcGxl dGUuDQpDb21tYW5kIFN0YXR1cyBjb3VsZCBiZSBwYXJzZWQgY29tcGxldGVseSBpbiBhIGdvb2Qg d2F5IChyZXRyaWV2aW5nIG9wIGNvZGUsIG5iciBvZiBjb21tYW5kcyBhbGxvd2VkLCBhbmQgc3Rh dHVzIG9mIGNvbW1hbmQgc2VudCkuDQpDb21tYW5kIENvbXBsZXRlIGlzIGhvd2V2ZXIgcXVpdGUg Y29tcGxleCBzaW5jZSB0aGUgcmV0dXJuZWQgZGF0YSB3aWxsIGRpZmZlciBkZXBlbmRpbmcgb24g Y29tbWFuZCBzZW50LiBPcCBjb2RlIGFuZCBuYnIgb2YgY29tbWFuZHMgYWxsb3dlZCBjYW4gYmUg cmV0cmlldmVkIGJ1dCBldmVyeXRoaW5nIGVsc2UgaGF2ZSB0byBiZSBleHRyYWN0ZWQgZGlmZmVy ZW50bHkgZGVwZW5kaW5nIG9uIGNvbW1hbmQuIFRoaXMgbWVhbnMgdGhhdCB0aGVyZSBpcyBub3Qg bXVjaCB0aGF0IHdpbGwgYmUgc2F2ZWQgaGVyZS4gQnV0IG1heWJlIHdlIGNvdWxkIGV4dHJhY3Qg c29tZSBwYXJzaW5nIGludG8gY29tbW9uIGZ1bmN0aW9ucywgYnV0IEkgZG9uJ3QgdGhpbmsgeW91 IHdvdWxkIGdhaW4gdGhhdCBtdWNoLg0KTW9yZW92ZXIsIHRoaXMgd291bGQgbGVhZCB0byBhIG1h am9yIHJlaW1wbGVtZW50YXRpb24gb2YgdGhlIGhjaV9jb3JlLmMgYW5kIHJlbGF0ZWQgZmlsZXMs IHNpbmNlIHRoZXkgZG8gbm90IHVzZSBhbnkgZXhwb3J0ZWQgY29tbW9uIGZ1bmN0aW9ucyBhcyBp dCBpcyB0b2RheS4gSSBkbyBub3Qga25vdyBpZiB0aGV5IChCbHVlWiBjb21tdW5pdHkpIHdvdWxk IHdhbnQgdGhpcyBhbmQgSSBkbyBub3QgdGhpbmsgdGhhdCB0aGF0IHNob3VsZCBiZSBwYXJ0IG9m IHRoZSBDRzI5MDAgZHJpdmVyIHRvIGRvLiBJdCBzaG91bGQgaW4gdGhhdCBjYXNlIGJlIGRvbmUg c2VwYXJhdGVseS4NCg0KPiA+ID4+IEFsc28gbm90ZSB0aGF0IHRoZSBjb21tb24taGNpLW1vZHVs ZSBpcyBvbmx5IHJlYWxseSB1c2VkIHVudGlsIHRoZQ0KPiBjb25uZWN0ZWQNCj4gPiA+PiBjaGlw IGhhcyBiZWVuIGRldGVjdGVkLiBUaGUgY2hpcCBoYW5kbGVyIHdpbGwgdGhlbiBzZXQgdGhlDQo+ IGNhbGxiYWNrIGZ1bmN0aW9ucw0KPiA+ID4+IHNvIGFjdHVhbCBkYXRhIHRyYW5zbWlzc2lvbnMg bmV2ZXIgcGFzcyB0aGUgY29tbW9uLWhjaS1tb2R1bGUuDQo+IFRoZXkgZ28gZGlyZWN0bHkNCj4g PiA+PiBmcm9tIHRyYW5zcG9ydCB0byBjaGlwIGhhbmRsZXIuIFRoYXQgaXMgbm90IHJlYWxseSBz aG93biBpbiB0aGUNCj4gcGljdHVyZSBhYm92ZS4NCj4gPiA+PiBKdXN0IGltYWdpbmUgdGhhdCBj b21tb24taGNpLW1vZHVsZSBpcyByZW1vdmVkIGFmdGVyIGEgY2hpcCBoYXMNCj4gYmVlbiBjb25u ZWN0ZWQNCj4gPiA+PiBhbmQgYSBjaGlwIGhhbmRsZXIgaGFzIGJlZW4gZGV0ZXJtaW5lZC4NCj4g PiA+Pg0KPiA+ID4+IEkgaG9wZSBJIGhhdmVuJ3QgbWlzdW5kZXJzdG9vZCB5b3VyIHF1ZXN0aW9u LiBJIGRvIG5vdCBrbm93IG11Y2gNCj4gYWJvdXQgdGhlIEkyQw0KPiA+ID4+IHN5c3RlbSwgYnV0 IEkgdHJpZWQgdG8gdW5kZXJzdGFuZCB5b3VyIHF1ZXN0aW9uIGFzIGJlc3QgYXMgSQ0KPiBjb3Vs ZC4NCj4gPiA+DQo+ID4gPiBJIHRoaW5rIHRoZXJlIGlzIGEgZGlzY29ubmVjdCB3aGVuIHRhbGtp bmcgYWJvdXQgaGllcmFyY2hpZXMsIGFzIGl0DQo+IGNhbiBiZSBhcHBsaWVkDQo+ID4gPiB0byBk aWZmZXJlbnQgYXJlYXM6DQo+ID4gPg0KPiA+ID4gKiBtb2R1bGUgZGVwZW5kZW5jaWVzDQo+ID4g PiAqIGRldmljZSBkZXRlY3Rpb24NCj4gPiA+ICogc3lzZnMgb2JqZWN0IGhpZXJhcmNoeQ0KPiA+ ID4gKiBkYXRhIGZsb3cNCj4gPg0KPiA+IG1vZHVsZSBkZXBlbmRlY3ktd2lzZSBJIGFncmVlLA0K PiA+IEkgd291bGQgd2FudCBGTS1WNEwyIHdpdGhvdXQgQlQgb3IgSSBtaWdodCB3YW50IEdQUyBz aW1wbGlzdGljIGNoYXINCj4gPiBkcml2ZXIgd2l0aG91dCBCVCBvciBGTSBWNEwyLg0KPiANCj4g QnV0IHlvdSdkIHN0aWxsIG5lZWQgdG8gaGF2ZSBhbiBIQ0kgbW9kdWxlLiBJIGJlbGlldmUgcmln aHQgbm93LCB0aGUNCj4gaGNpIG1vZHVsZSBkZXBlbmRzIG9uIHRoZSBibHVldG9vdGggbW9kdWxl LCBhbmQgeW91IGFyZSByaWdodCB0aGF0IHRoaXMNCj4gaXMgYW4gdW5kZXNpcmFibGUgZGVwZW5k ZW5jeSB0byBoYXZlIGZvciBhIEdQUyBtb2R1bGUuIEhvd2V2ZXIsIHRoZQ0KPiBzb2x1dGlvbg0K PiB0byB0aGlzIHNob3VsZCBub3QgYmUgdG8gbWFrZSBHUFMgaW5kZXBlbmRlbnQgb2YgSENJLCBi dXQgdG8gbWFrZSBwYXJ0cw0KPiBvZiBIQ0kgaW5kZXBlbmRlbnQgb2YgYmx1ZXRvb3RoLg0KPiAN Cg0KRm9yIHRoZSBDRzI5MDAgdGhhdCBpcyBub3QgcG9zc2libGUuIEV2ZW4gaWYgeW91IGFyZSBy dW5uaW5nIGp1c3QgR1BTIHlvdSBzdGlsbCBtdXN0IGRvd25sb2FkIHBhdGNoZXMgYW5kIHNldHRp bmdzIGFuZCB0aGF0IGlzIGRvbmUgdGhyb3VnaCBIQ0kgY29tbWFuZHMgb3ZlciB0aGUgQmx1ZXRv b3RoIGNvbW1hbmQgaW50ZXJmYWNlLiBXZSBhbHNvIHVzZSBCbHVldG9vdGggY29tbWFuZHMgdG8g aWRlbnRpZnkgdGhlIGNvbnRyb2xsZXIuDQoNCj4gPiBkZXZpY2UgZGV0ZWN0aW9uIHdpc2UsIEl0 IGlzIGEgcHJvYmxlbSwgdGhlcmUgaXMgbm90ICJfcHJvYmUiDQo+ID4gbWVjaGFuaXNtIGZvciBV QVJUIGJhc2VkIHRyYW5zcG9ydCBhcyBpdCBpcw0KPiA+IHVuZGVyc3RhbmRhYmxlLCBhbmQgcHJl dHR5IG11Y2ggdGhlIGRyaXZlciB3b3VsZCBlbmQgdXAgYmVpbmcNCj4gcGxhdGZvcm0NCj4gPiBk ZXZpY2UgZHJpdmVyIC4uLg0KPiANCj4gVGhlIHBsYXRmb3JtIGRldmljZSBpcyBqdXN0IHRoZSBs b3dlc3QgbGV2ZWwgaW4gdGhlIGRldmljZSBoaWVyYXJjaHkuDQo+IA0KPiBJZiBlYWNoIEhDSSBj aGFubmVsIGlzIGEgZGV2aWNlLCB5b3UgY2FuIHN0YWNrIGJ0LCBncHMsIGF1ZGlvLCAuLi4NCj4g ZGV2aWNlcyBhbGwgb24gdG9wIG9mIHRoZSBIQ0kgZGV2aWNlLCB3aGljaCBpcyBlaXRoZXIgc3Rh Y2tlZCBvbiB0b3ANCj4gb2YgYSBzZXJpYWwgcG9ydCBvciBpbiBzb21lIG90aGVyIHdheSBjb25u ZWN0ZWQgdG8gdGhlIHVuZGVyeWluZw0KPiB0cmFuc3BvcnQuDQo+IA0KPiBJbiB0aGlzIGNhc2Us IHRoZSBjaGFubmVscyB0aGVtc2VsdmVzIGFyZSBub3QgcGxhdGZvcm0gZGV2aWNlcywgYnV0DQo+ IHdvdWxkIGdldCBhIG5ldyBidXMgZm9yIHRoZW0uIFRoYXQgYnVzIGlzIHBvcHVsYXRlZCBieSBh IGRyaXZlciB0aGF0DQo+IG93bnMgdGhlIEhDSSBhbmQgdGhhdCBrbm93cyAoZS5nLiBmcm9tIGl0 cyBwbGF0Zm9ybSBkYXRhLCBoYXJkd2FyZQ0KPiByZWdpc3RlcnMsIHVzZXIgY29uZmlnIG9yIGRl dmljZSB0cmVlKSB3aGF0IGNoYW5uZWxzIGFyZSBwcmVzZW50Lg0KPiANCj4gPiBkYXRhIGZsb3cg aXMgd2hlcmUgSSBndWVzcyB0aGUgYWJzdHJhY3Rpb24gaGFzIHRvIGxpZSBpbiwgZm9yDQo+ID4g ZGlmZmVyZW50IHZlbmRvcnMuLi4NCj4gDQo+IEkgZG9uJ3Qga25vdyB3aGF0IHlvdSBtZWFuIHdp dGggdGhhdC4gTXkgcG9pbnQgd2FzIHRoYXQgd2UgbmVlZCB0bw0KPiBjb25zaWRlciBhbGwgdGhl IGhpZXJhcmNoaWVzLCBhbmQgdGhhdCB0aGV5IG1pZ2h0IGJlIGRpZmZlcmVudC4NCj4gDQo+IAlB cm5kDQoNCi9QLUcNCg0K