From mboxrd@z Thu Jan 1 00:00:00 1970 From: Barry Song <21cnbao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Subject: Re: [PATCH v2] ARM: CSR: Adding CSR SiRFprimaII board support Date: Fri, 1 Jul 2011 14:20:12 +0800 Message-ID: References: <1309231954-23260-1-git-send-email-bs14@csr.com> <201106292329.44447.arnd@arndb.de> <201106301236.25822.arnd@arndb.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <201106301236.25822.arnd-r2nGTMty4D4@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Sender: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org To: Arnd Bergmann Cc: linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, workgroup.linux-kQvG35nSl+M@public.gmane.org, weizeng.he-kQvG35nSl+M@public.gmane.org, tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: devicetree@vger.kernel.org SGkgQXJuZCwKCjIwMTEvNi8zMCBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPjoKPiBPbiBU aHVyc2RheSAzMCBKdW5lIDIwMTEsIEJhcnJ5IFNvbmcgd3JvdGU6Cj4KPj4gPiBJcyB0aGlzIHJl YWxseSBqdXN0IG9uZSBidXMgd2l0aCBhIGh1Z2UgYWRkcmVzcyBzcGFjZSwgb3IgcmF0aGVyIHNv bWUKPj4gPiBuZXN0ZWQgYnVzZXM/IEknZCBwcmVmZXIgdG8gaGF2ZSB0aGUgZGV2aWNlIHRyZWUg cmVwcmVzZW50YXRpb24gYXMKPj4gPiBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aGUgYWN0dWFsIGxh eW91dC4KPj4KPj4gdGhlcmUgYXJlIHR3byBBWEkgYnVzZXMgaW4gcHJpbWEyLiBBWEktMSBjb25u ZWN0IHRvIG1lbW9yeSwgQVhJLTIgaXMKPj4gdHJhbnNmZXJyZWQgdG8gQ1NSIHNlbGYtZGVmaW5l ZCBJT0JVUyBieSBDUFVJRiwgdGhlbiAxIGludHRlcnVwdAo+PiBjb250cm9sbGVyIGFuZCA5IElP IGJyaWRnZXMgYXJlIGNvbm5lY3RlZCB0byB0aGUgSU9CVVMgLgo+PiBUaGUgOSBJTyBicmlkZ2Vz IGFyZSBTWVNJT0JHLCBQRVJJSU9CRyxDUFVSVENJT0JHLCBVVVNJT0JHLCBHUkFQSElPQkcsCj4+ IE1FRElBSU9CRywgRFNQSU9CRywgRElTUElPQkcsIE1FTUlPQkcuIEV2ZXJ5IGlvYnJnIGNvbm5l Y3QgdG8gYSBncm91cAo+PiBvZiBjb250cm9sbGVycy4KPj4gRm9yIGV4YW1wbGUsIERJU1BJT0JH IGNvbm5lY3QgdG8gVlBQIGFuZCBMQ0QsIFNZU0lPQkcgY29ubmVjdCB0byBDTEtDLAo+PiBSU1RD LCBSU0MgYW5kIENQSElGQkcsIERTUElPQkcgY29ubmVjdCB0byBEU1BJRiwgR1BTIGFuZCBEU1Au Cj4+IFBFUklJT0JHIGNvbm5lY3QgdG8gVElNRVIsIE5BTkQsIEFVRElPLCBVQVJUMCwgVUFSVDEs IFVBUlQyLCBVU1AwLAo+PiBVU1AxLCBVU1AyLCBTUEkwLCBJMkMwLCBJMkMxLCBHUElPLCAqU1lT MlBDSSogYW5kIHNvIG9uLiBUaGVuCj4+ICpTWVMyUENJKiBjb25uZWN0IHRvIFNELgo+Pgo+PiBU aGUgaW5kZW5kYXRpb24gZGVzY2libGUgdGhlIGRldmljZSBoaWVyYXJjaHkKPj4gQVhJLTEKPj4g wqAgwqAgwqAgwqAgwqBNZW1vcnkKPj4gQVhJLTIKPj4gwqAgwqAgwqAgwqAgwqBpbnRlcnJ1cHQg Y29udHJvbGxlcgo+PiDCoCDCoCDCoCDCoCDCoElPQkcuLi4KPj4gwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgeHh4eAo+PiDCoCDCoCDCoCDCoCDCoElPQkcuLi4KPj4gwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgeHh4eAo+PiDCoCDCoCDCoCDCoCDCoElPQkcuLi4KPj4gwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgeHh4eAo+PiDCoCDCoCDCoCDCoCDCoElPQkcuLi4KPj4gwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgeHh4eAo+PiDCoCDCoCDCoCDCoCDCoElPQkcuLi4KPj4gwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgeHh4eAo+PiDCoCDCoCDCoCDCoCDCoElPQkcuLi4KPj4gwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU1lTMlBDSQo+PiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCBTRAo+Pgo+PiBpIGhhdmUgZ2V0IHRoZSBJQyBndXkgV2VpemVu ZyBpbnZvbHZlZCwgbWF5YmUgaGUgY2FuIGV4cGxhaW4gYmV0dGVyIHRoYW4gbWUgOi0pCj4KPiBJ IHRoaW5rIGl0IHdvdWxkIGJlIGdvb2QgdG8gcmVwcmVzZW50IHRoZSBJT0JHIGRldmljZXMgaW4g dGhlIGRldmljZSB0cmVlIHRoZW4uCj4gWW91IGRvbid0IG5lZWQgdG8gcmVwcmVzZW50IEFYSS0x IGJlY2F1c2UgbWVtb3J5IGlzIHNwZWNpYWwgYW55d2F5LCBhbmQgSSB3b3VsZAo+IG5vdCBib3Ro ZXIgdG8gbGlzdCBTWVMyUENJIGlmIHRoZSBpbnRlbnRpb24gb2YgdGhhdCBibG9jayB3YXMgdG8g aGlkZSB0aGUgZmFjdAo+IHRoYXQgaXQncyBQQ0kgYmVoaW5kIGl0LiBQcm9wZXJseSBpbnN0YW50 aWF0aW5nIGl0IGFzIGEgUENJIGJyaWRnZSB3b3VsZCBiZQo+IGEgbG90IG9mIHdvcmsgdGhhdCBp cyBwcm9iYWJseSBub3Qgd29ydGggaXQuCj4KPiBNeSB1c3VhbCBwbGVhIHRvIGhhcmR3YXJlIGRl dmVsb3BlcnM6IFBsZWFzZSBtYWtlIHRoZSByZWdpc3RlcnMKPiBhdXRvZGlzY292ZXJhYmxlIGZy b20gc29mdHdhcmUhIE9uIGFuIEFNQkEgYnVzLCBwbGVhc2UgdXNlIHRoZSBQcmltZUNlbGwKPiBy ZWdpc3RlciBsYXlvdXQuIElmIHlvdSBhbHdheXMgaGF2ZSBhbiBJT0JHIGRldmljZSBiZWhpbmQs IHRoZXkgc2hvdWxkCj4gYWxsIGhhdmUgdGhlIHNhbWUgaWRlbnRpZmllciBmb3IgdGhhdCBraW5k IG9mIGJ1cyBicmlkZ2UuCj4KPiBGb3IgdGhlIElPQkcsIGl0IHdvdWxkIGJlIGlkZWFsIHRvIGhh dmUgYSBzaW1pbGFyIHdheSBvZiBmaW5kaW5nIGFuZAo+IGNvbmZpZ3VyaW5nIHRoZSBjb25uZWN0 ZWQgaGFyZHdhcmUsIGluY2x1ZGluZzoKPgo+ICogdW5pcXVlIGlkZW50aWZpZXIgZm9yIGVhY2gg ZGlzdGluY3QgSVAgYmxvY2sKPiAqIHJldmlzaW9uIG9mIHRoYXQgYmxvY2sKPiAqIE1NSU8gcmFu Z2VzIGFuZCBzaXplcywgcmVsYXRpdmUgdG8gdGhlIGJ1cwo+ICogaW50ZXJydXB0IG51bWJlcnMs IHJlbGF0aXZlIHRvIGEgbG9jYWwgaW50ZXJydXB0IGNvbnRyb2xsZXIKPiAqIGxvY2F0aW9uIGlk ZW50aWZpZXIgKGxpa2UgUENJIGJ1cy9kZXZpY2UvZm4gbnVtYmVyKSB0aGF0IGNhbiBiZQo+IMKg cmVmZXJyZWQgdG8gYnkgb3RoZXIgZGV2aWNlcwo+ICogY2xvY2sgbWFuYWdlbWVudCBmb3IgdGhh dCBkZXZpY2UKPiAqIHBvd2VyIG1hbmFnZW1lbnQgZm9yIHRoYXQgZGV2aWNlCj4KPiBJZiB5b3Vy IElPREIgaW5mcmFzdHJ1Y3R1cmUgYWxyZWFkeSBoYXMgdGhpcywgeW91IHNob3VsZCBjcmVhdGUg YSBuZXcKPiBidXMtdHlwZSBmb3IgdGhpcyBpbiBMaW51eCwgd2hpY2ggd2lsbCBsZXQgeW91IGRl dGVjdCBhbGwgZGV2aWNlcwo+IGluIGEgY29uc2lzdGVudCBtYW5uZXIgd2l0aG91dCBoYXZpbmcg dG8gbGlzdCB0aGVtIGluIHRoZSBkZXZpY2UgdHJlZS4KCklPIGJyaWRnZXMgaW4gcHJpbWEyIGRv bid0IGhhdmUgdGhhdC4gQ29uZmlndXJhdGlvbiBpcyBoYXJkY29kZWQgbm93LgpidXQgd2UgaGF2 ZSBsZWFybmVkIHNvIG11Y2ggZnJvbSB5b3UgYW5kIGhvcGUgdG8gaW1wcm92ZSBvdXIgZnV0dXJl IElDCmRlc2lnbi4KCj4KPj4gPiBJIHRoaW5rIHRoZSBuYW1lc3BhY2UgZm9yIHRoZSBjb21wYXRp YmxlIHZhbHVlcyBpcyBzdXBwb3NlZCB0byBzdGFydCB3aXRoCj4+ID4gdGhlIHN0b2NrIHRpY2tl ciBuYW1lIG9mIHRoZSBjb21wYW55IG1ha2luZyB0aGUgZGV2aWNlIGFzIGEgdW5pcXVlCj4+ID4g aWRlbnRpZmllci4gVGhpcyBtZWFucyB5b3UnZCBoYXZlIHRvIHVzZQo+PiA+ICJjc3J4ZixzaXJm LWludGMiLCAiY3NyeGYsc2lyZi1wcmltYTItaW50YyIgYXMgdGhlIHZhbHVlLCBpbnN0ZWFkCj4+ ID4gb2Ygc3RhcnRpbmcgd2l0aCB0aGUgcHJvZHVjdCBuYW1lLiBJIGRvbid0IGtub3cgZXhhY3Rs eSBob3cgc3RyaWN0bHkKPj4gPiB3ZSBhcHBseSB0aGF0IHJ1bGUsIGJ1dCBJJ3ZlIHRha2VuIHRo ZSBkZXZpY2V0cmVlLWRpc2N1c3NAbGlzdHMub3psYWJzLm9yZwo+PiA+IG1haWxpbmcgbGlzdCBv biBDYywgbWF5YmUgc29tZW9uZSBjYW4gY2xhcmlmeS4KPj4KPj4gaW4gZmFjdCwgU2lSRiBpcyBh IGNvbXBhbnkgbmFtZS4gaXQgd2FzIG1lcmdlZCBpbnRvIENTUiA0IHllYXJzIGFnby4KPj4gRHVl IHRvIGhpc3RvcnkgcmVhc29uLCBub3cgdGhlIFNvQyBuYW1lcyBhcmUgc3RpbGwgaGVhZGVkIGJ5 IHNpcmYuCj4+IHRoZSBsb2dvIGluIFNpUkZwcmltYUlJIGNoaXAgaXMgQ1NSLgo+PiBTbyB0aGUg IlNpUkYiIG9mIFNpUkZwcmltYUlJIHNob3VsZCBtZWFuIHR3byB0aGluZ3M6IG9sZCBjb21wYW55 IG5hbWUsCj4+IMKgaGVyaXRhYmxlIENQVSBwcm9kdWN0aW9uLWxpbmUuIEFueXdheSwgImNzciwg c2lyZi1pbnRjIiBzZWVtcyB0byBtYWtlCj4+IG1vcmUgc2Vuc2VzIHRoYW4gInNpcmYsIGludGMi Lgo+Pgo+PiBjb3VsZCB3ZSBjaGFuZ2UgImNzcnhmLHNpcmYtaW50YyIsICJjc3J4ZixzaXJmLXBy aW1hMi1pbnRjIiB0bwo+PiAiY3NyLHNpcmYtaW50YyIsICJjc3Isc2lyZi1wcmltYTItaW50YyI/ Cj4KPiBOb3Qgc3VyZSBob3cgc3RyaWN0IHdlIGludGVycHJldCB0aGUgcnVsZXMgYWJvdXQgc3Rv Y2sgdGlja2VyIHN5bWJvbHMuCj4gJ0NTUicgb24gd2FsbHN0cmVldCBpcyAnQ2hpbmEgU2VjdXJp dHkgJiBTdXJ2ZWlsbGFuY2UgVGVjaC4gSW5jJy4gSWYgdGhleQo+IGV2ZXIgZGVjaWRlIHRvIHBy b2R1Y2UgZW1iZWRkZWQgTGludXggbWFjaGluZXMsIHdlJ2QgZ2V0IGEgY29uZmxpY3QsIHVubGVz cwo+IHRoZXkgYWxzbyB1c2UgImNzc3QiICh0aGVpciAuY29tIGRvbWFpbiBuYW1lKSBhcyBhIHBy ZWZpeC4KPgo+PiA+IGJldHRlciBwdXQgdGhlc2UgaW4gYSBsaXN0IHdpdGggb25lIGZpbGUgcGVy IGxpbmUsIGxpa2UKPj4gPgo+PiA+IG9iai15IMKgICs9IHRpbWVyLm8KPj4gPiBvYmoteSDCoCAr PSBpcnEubwo+PiA+Cj4+ID4gVGhhdCBtYWtlcyB0aGUgbGlzdCBtb3JlIGNvbnNpc3RlbnQgd2hl biB5b3UgYWRkIGNvbmRpdGlvbmFsIGZpbGVzLgo+Pgo+PiBUaGVuIGl0IGNvdWxkIGJlOgo+PiBv YmoteSArPSB0aW1lci5vCj4+IG9iai15ICs9IGlycS5vCj4+IG9iai15ICs9IGNsb2NrLm8KPj4g b2JqLXkgKz0gY29tbW9uLm8KPj4gb2JqLSQoQ09ORklHX0NBQ0hFX0wyWDApIDo9IGwyeDAubwoK Tm93IGl0IGlzIGNoYW5nZWQgdG86Cgorb2JqLXkgOj0gdGltZXIubworb2JqLXkgKz0gaXJxLm8K K29iai15ICs9IGNsb2NrLm8KK29iai15ICs9IHJzdGMubworb2JqLXkgKz0gcHJpbWEyLm8KK29i ai0kKENPTkZJR19DQUNIRV9MMlgwKSArPSBsMngwLm8KK29iai0kKENPTkZJR19ERUJVR19MTCkg Kz0gbGx1YXJ0Lm8KCkZvciBjbG9jaywgaSBoYXZlIG1vdmVkIHRoZSBzdGF0aWMgbWFwcGluZyB0 byBjbG9jay5jOgoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHJpbWEyL2Nsb2NrLmMgYi9h cmNoL2FybS9tYWNoLXByaW1hMi9jbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmY0Njc2YmMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXByaW1hMi9j bG9jay5jCi4uLgorCitzdGF0aWMgdm9pZCBfX2luaXQgc2lyZnNvY19jbGtfaW5pdCh2b2lkKQor eworCWNsa2Rldl9hZGRfdGFibGUob25jaGlwX2Nsa3MsIEFSUkFZX1NJWkUob25jaGlwX2Nsa3Mp KTsKK30KKworc3RhdGljIHN0cnVjdCBvZl9kZXZpY2VfaWQgY2xrY19pZHNbXSA9IHsKKwl7IC5j b21wYXRpYmxlID0gInNpcmYsY2xrYyIgfSwKK307CisKK3ZvaWQgX19pbml0IHNpcmZzb2Nfb2Zf Y2xrX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wOworCXN0cnVjdCByZXNv dXJjZSByZXM7CisJc3RydWN0IG1hcF9kZXNjIHNpcmZzb2NfY2xrY19pb2Rlc2MgPSB7CisJCS52 aXJ0dWFsID0gU0lSRlNPQ19DTE9DS19WQV9CQVNFLAorCQkudHlwZSAgICA9IE1UX0RFVklDRSwK Kwl9OworCisJbnAgPSBvZl9maW5kX21hdGNoaW5nX25vZGUoTlVMTCwgY2xrY19pZHMpOworCWlm ICghbnApCisJCXBhbmljKCJ1bmFibGUgdG8gZmluZCBjb21wYXRpYmxlIGNsa2Mgbm9kZSBpbiBk dGJcbiIpOworCisJaWYgKG9mX2FkZHJlc3NfdG9fcmVzb3VyY2UobnAsIDAsICZyZXMpKQorCQlw YW5pYygidW5hYmxlIHRvIGZpbmQgY2xrYyByYW5nZSBpbiBkdGIiKTsKKwlvZl9ub2RlX3B1dChu cCk7CisKKwlzaXJmc29jX2Nsa2NfaW9kZXNjLnBmbiA9IF9fcGh5c190b19wZm4ocmVzLnN0YXJ0 KTsKKwlzaXJmc29jX2Nsa2NfaW9kZXNjLmxlbmd0aCA9IDEgKyByZXMuZW5kIC0gcmVzLnN0YXJ0 OworCisJaW90YWJsZV9pbml0KCZzaXJmc29jX2Nsa2NfaW9kZXNjLCAxKTsKKworCXNpcmZzb2Nf Y2xrX2luaXQoKTsKK30KCkl0IGxvb2tzIGxpa2Ugd2UgY2FuIG5ldyBhIGNvbW1vbiBmdW5jdGlv biBuYW1lZCBhcyBvZl9pb19lYXJseW1hcCgpCm9yIHNvbWV0aGluZyBpbiBkcml2ZXJzL29mL2Fk ZHJlc3MuYy4gb2ZfaW9tYXAoKSBkb2VzIGlvcmVtYXAsCm9mX2lvX2Vhcmx5bWFwKCkgZG9lcyBl YXJseSBzdGF0aWMgbWFwcGluZz8KVGhlbiBhbGwgU29DcyBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9u IHRvIGRvIGVhcmx5IHN0YXRpYyBtYXBwaW5nLiBpZgpzbywgc29tZSBsaW5lcyBjYW4gYmUgZGVs ZXRlZCBpbiBzaXJmc29jX29mX2Nsa19pbml0KCkuIEhvdyBkbyB5b3UKdGhpbmsgYWJvdXQgbmV3 aW5nIHRoZSBmdW5jdGlvbiBpbiBkcml2ZXJzL29mL2FkZHJlc3MuYz8KCkZvciBERUJVR19MTCB1 YXJ0LCBpIGhhdmUgbW92ZWQgdGhlIHN0YXRpYyBtYXBwaW5nIHRvIGEgbmV3IGZpbGUgbmFtZWQK bGx1YXJ0LmMgdG9vOgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGFzbS9w YWdlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8bWFjaC9tYXAuaD4K KyNpbmNsdWRlIDxtYWNoL3VhcnQuaD4KKwordm9pZCBfX2luaXQgc2lyZnNvY19tYXBfbGx1YXJ0 KHZvaWQpCit7CisJc3RydWN0IG1hcF9kZXNjIHNpcmZzb2NfbGx1YXJ0X21hcCA9IHsKKwkJLnZp cnR1YWwgICAgICAgID0gU0lSRlNPQ19VQVJUMV9WQV9CQVNFLAorCQkucGZuICAgICAgICAgICAg PSBfX3BoeXNfdG9fcGZuKFNJUkZTT0NfVUFSVDFfUEFfQkFTRSksCisJCS5sZW5ndGggICAgICAg ICA9IFNJUkZTT0NfVUFSVDFfU0laRSwKKwkJLnR5cGUgICAgICAgICAgID0gTVRfREVWSUNFLAor CX07CisKKwlpb3RhYmxlX2luaXQoJnNpcmZzb2NfbGx1YXJ0X21hcCwgMSk7Cit9CisKCm9ubHkg d2hlbiBERUJVR19MTCBpcyBzZWxlY3RlZCwgdGhpcyBmaWxlIHdpbGwgYmUgY29tcGlsZWQuIE90 aGVyd2lzZSwKYW4gZW1wdHkgc2lyZnNvY19tYXBfbGx1YXJ0IGlzIHVzZWQ6Ci0tLSAvZGV2L251 bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1wcmltYTIvY29tbW9uLmgKQEAgLTAsMCArMSwyNiBAQAor LyoKKyAqIFRoaXMgZmlsZSBjb250YWlucyBjb21tb24gZnVuY3Rpb24gcHJvdG90eXBlcyB0byBh dm9pZCBleHRlcm5zIGluCnRoZSBjIGZpbGVzLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBD YW1icmlkZ2UgU2lsaWNvbiBSYWRpbyBMaW1pdGVkLCBhIENTUiBwbGMgZ3JvdXAgY29tcGFueS4K KyAqCisgKiBMaWNlbnNlZCB1bmRlciBHUEx2MiBvciBsYXRlci4KKyAqLworCisjaWZuZGVmIF9f TUFDSF9QUklNQTJfQ09NTU9OX0hfXworI2RlZmluZSBfX01BQ0hfUFJJTUEyX0NPTU1PTl9IX18K KworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisK K2V4dGVybiBzdHJ1Y3Qgc3lzX3RpbWVyIHNpcmZzb2NfdGltZXI7CisKK2V4dGVybiB2b2lkIF9f aW5pdCBzaXJmc29jX29mX2lycV9pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgX19pbml0IHNpcmZz b2Nfb2ZfY2xrX2luaXQodm9pZCk7CisKKyNpZm5kZWYgQ09ORklHX0RFQlVHX0xMCitzdGF0aWMg aW5saW5lIHZvaWQgc2lyZnNvY19tYXBfbGx1YXJ0KHZvaWQpICB7fQorI2Vsc2UKK2V4dGVybiB2 b2lkIF9faW5pdCBzaXJmc29jX21hcF9sbHVhcnQodm9pZCk7CisjZW5kaWYKKworI2VuZGlmCgpG b3IgcnN0YywgaXQgaXMgdGhlIHJlc2V0IGNvbnRyb2xsZXIgaW4gcHJpbWEyLCBldmVyeSBiaXQg Y2FuIHJlc2V0IGEKc3BlY2lhbCBjb21wb25lbnQgaW4gdGhlIFNvQy4gaSBtb3ZlIHRoZSBtYXBw aW5nIHRvIGEgbmV3IHJzdGMuYyBmaWxlCnRvby4gQnV0IEFQSXMsIHdoaWNoIGV2ZXJ5IGRyaXZl ciB3aWxsIGNhbGwgdG8gcmVzZXQgaXRzZWxmLCAgaW4gcnN0YwppcyBub3QgZnVsbCBmaW5pc2hl ZDoKKy8qCisgKiByZXNldCBjb250cm9sbGVyIGZvciBDU1IgU2lSRnByaW1hSUkKKyAqCisgKiBD b3B5cmlnaHQgKGMpIDIwMTEgQ2FtYnJpZGdlIFNpbGljb24gUmFkaW8gTGltaXRlZCwgYSBDU1Ig cGxjIGdyb3VwIGNvbXBhbnkuCisgKgorICogTGljZW5zZWQgdW5kZXIgR1BMdjIgb3IgbGF0ZXIu CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5v Lmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+ CisKK3ZvaWQgX19pb21lbSAqc2lyZnNvY19yc3RjX2Jhc2U7CisKK3N0YXRpYyBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIHJzdGNfaWRzW10gID0geworCXsgLmNvbXBhdGlibGUgPSAic2lyZixyc3RjIiB9 LAorfTsKKworc3RhdGljIGludCBfX2luaXQgc2lyZnNvY19vZl9yc3RjX2luaXQodm9pZCkKK3sK KwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wOworCisJbnAgPSBvZl9maW5kX21hdGNoaW5nX25vZGUo TlVMTCwgcnN0Y19pZHMpOworCWlmICghbnApCisJCXBhbmljKCJ1bmFibGUgdG8gZmluZCBjb21w YXRpYmxlIHJzdGMgbm9kZSBpbiBkdGJcbiIpOworCisJc2lyZnNvY19yc3RjX2Jhc2UgPSBvZl9p b21hcChucCwgMCk7CisJaWYgKCFzaXJmc29jX3JzdGNfYmFzZSkKKwkJcGFuaWMoInVuYWJsZSB0 byBtYXAgcnN0YyBjcHUgcmVnaXN0ZXJzXG4iKTsKKworCW9mX25vZGVfcHV0KG5wKTsKKworCXJl dHVybiAwOworfQorZWFybHlfaW5pdGNhbGwoc2lyZnNvY19vZl9yc3RjX2luaXQpOworCisvKiBU T0RPOgorICogYWRkIEFQSXMgdG8gY29udHJvbCByZXNldCBvZiBldmVyeSBtb2R1bGUKKyAqLwoK Pgo+Cj4gUmlnaHQuIE5vdGUgdGhhdCB5b3UgaGF2ZSBhIDo9IGluIHRoZXJlLCB3aGljaCBuZWVk cyB0byBiZSArPS4KPgo+Cj4+ID4gSXQgcHJvYmFibHkgbWFrZXMgc2Vuc2UgdG8gcGljayBhIG5l dyBuYW1lIGZvciB0aGUgY29tYmluZWQgZmlsZSwgdG9vLCBidXQgSQo+PiA+IGNhbid0IHRoaW5r IG9mIGEgZ29vZCBvbmUuIE1heWJlIG9uZSBvZiBwbGF0Zm9ybS5jLCBwcmltYTIuYyBvciBjb3Jl LmMuCj4+Cj4+IGkgYW0gbm90IHN1cmUgdGhlIG9yaWdpbmFsIHB1cnBvc2Ugb2YgYm9hcmRfZHQu Yy4gYW5kIGkgYW0gZ3Vlc3NpbmcKPj4gd2hldGhlciBHcmFudCBjcmVhdGVkIHRoYXQgc2luZ2xl IGJvYXJkIGZpbGUgdG8gY29udGFpbiBtdWx0aXBsZQo+PiBib2FyZHMuIEZvciBleGFtcGxlOgo+ Pgo+PiBNQUNISU5FX1NUQVJUKFBSSU1BMl9YWFgsICJwcmltYTJ4eHgiKQo+PiDCoCDCoCDCoCDC oC5ib290X3BhcmFtcyDCoCDCoD0gU0lSRlNPQ19TRFJBTV9QQSArIDB4MTAwLAo+PiDCoCDCoCDC oCDCoC5pbml0X2Vhcmx5IMKgIMKgID0gc2lyZnNvY19pbml0X2NsaywKPj4gwqAgwqAgwqAgwqAu bWFwX2lvIMKgIMKgIMKgIMKgID0gc2lyZnNvY19tYXBfaW8sCj4+IMKgIMKgIMKgIMKgLmluaXRf aXJxIMKgIMKgIMKgID0gc2lyZnNvY19vZl9pbml0X2lycSwKPj4gwqAgwqAgwqAgwqAudGltZXIg wqAgwqAgwqAgwqAgwqA9ICZzaXJmc29jX3RpbWVyLAo+PiDCoCDCoCDCoCDCoC5pbml0X21hY2hp bmUgwqAgPSBzaXJmc29jX21hY2hfaW5pdCwKPj4gwqAgwqAgwqAgwqAuZHRfY29tcGF0IMKgIMKg IMKgPSBwcmltYTJ4eHhfZHRfbWF0Y2gsCj4+IE1BQ0hJTkVfRU5ECj4+Cj4+IE1BQ0hJTkVfU1RB UlQoUFJJTUEyX1lZWSwgInByaW1hMnl5eSIpCj4+IMKgIMKgIMKgIMKgLmJvb3RfcGFyYW1zIMKg IMKgPSBTSVJGU09DX1NEUkFNX1BBICsgMHgxMDAsCj4+IMKgIMKgIMKgIMKgLmluaXRfZWFybHkg wqAgwqAgPSBzaXJmc29jX2luaXRfY2xrLAo+PiDCoCDCoCDCoCDCoC5tYXBfaW8gwqAgwqAgwqAg wqAgPSBzaXJmc29jX21hcF9pbywKPj4gwqAgwqAgwqAgwqAuaW5pdF9pcnEgwqAgwqAgwqAgPSBz aXJmc29jX29mX2luaXRfaXJxLAo+PiDCoCDCoCDCoCDCoC50aW1lciDCoCDCoCDCoCDCoCDCoD0g JnNpcmZzb2NfdGltZXIsCj4+IMKgIMKgIMKgIMKgLmluaXRfbWFjaGluZSDCoCA9IHNpcmZzb2Nf bWFjaF9pbml0LAo+PiDCoCDCoCDCoCDCoC5kdF9jb21wYXQgwqAgwqAgwqA9IHByaW1hMnl5eV9k dF9tYXRjaCwKPj4gTUFDSElORV9FTkQKPgo+IE5vLCB0aGlzIHdvdWxkbid0IG1ha2UgYW55IHNl bnNlIHdoZW4gdGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGUgZHRfY29tcGF0Cj4gZmllbGQ6IEF0 IHRoYXQgcG9pbnQgeW91IHdvdWxkIGp1c3QgbGlzdCBhbGwgdGhlIHBvc3NpYmxlIGJvYXJkcyBp biB0aGUKPiBnbG9iYWwgZHRfbWF0Y2ggdGFibGUuCgpZZXMuIGkgaGF2ZSByZW5hbWUgY29tbW9u LmMgdG8gcHJpbWEyLmMgYW5kIG5vdyB0aGVyZSBpcyBubyBhbnkKbWFwX2Rlc2MgdGFibGUgZHVl IHRvIHRoZSBhYm92ZSBjaGFuZ2VzLCBzbyBpdCBpcyBub3cgbXVjaCBzaG9ydGVyOgoKZGlmZiAt LWdpdCBhL2FyY2gvYXJtL21hY2gtcHJpbWEyL3ByaW1hMi5jIGIvYXJjaC9hcm0vbWFjaC1wcmlt YTIvcHJpbWEyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZiMDRhMQot LS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtcHJpbWEyL3ByaW1hMi5jCkBAIC0wLDAg KzEsNDAgQEAKKy8qCisgKiBEZWZpbmVzIG1hY2hpbmVzIGZvciBDU1IgU2lSRnByaW1hSUkKKyAq CisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgQ2FtYnJpZGdlIFNpbGljb24gUmFkaW8gTGltaXRlZCwg YSBDU1IgcGxjIGdyb3VwIGNvbXBhbnkuCisgKgorICogTGljZW5zZWQgdW5kZXIgR1BMdjIgb3Ig bGF0ZXIuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9r ZXJuZWwuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNo L2FyY2guaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRm b3JtLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3N0YXRpYyBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk IHNpcmZzb2Nfb2ZfYnVzX2lkc1tdIF9faW5pdGRhdGEgPSB7CisJeyAuY29tcGF0aWJsZSA9ICJz aW1wbGUtYnVzIiwgfSwKKwl7fSwKK307CisKK3ZvaWQgX19pbml0IHNpcmZzb2NfbWFjaF9pbml0 KHZvaWQpCit7CisJb2ZfcGxhdGZvcm1fYnVzX3Byb2JlKE5VTEwsIHNpcmZzb2Nfb2ZfYnVzX2lk cywgTlVMTCk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpwcmltYTJjYl9kdF9tYXRjaFtdIF9f aW5pdGRhdGEgPSB7CisgICAgICAgInNpcmYscHJpbWEyLWNiIiwKKyAgICAgICBOVUxMCit9Owor CitNQUNISU5FX1NUQVJUKFBSSU1BMl9FVkIsICJwcmltYTJjYiIpCisJLmJvb3RfcGFyYW1zCT0g MHgwMDAwMDEwMCwKKwkuaW5pdF9lYXJseSAgICAgPSBzaXJmc29jX29mX2Nsa19pbml0LAorCS5t YXBfaW8JCT0gc2lyZnNvY19tYXBfbGx1YXJ0LAorCS5pbml0X2lycQk9IHNpcmZzb2Nfb2ZfaXJx X2luaXQsCisJLnRpbWVyCQk9ICZzaXJmc29jX3RpbWVyLAorCS5pbml0X21hY2hpbmUJPSBzaXJm c29jX21hY2hfaW5pdCwKKwkuZHRfY29tcGF0ICAgICAgPSBwcmltYTJjYl9kdF9tYXRjaCwKK01B Q0hJTkVfRU5ECgo+Cj4+IGFmdGVyIGNyZWF0aW5nIGEgbmV3IGZpbGUgbmFtZWQgbWFjaC1wcmlt YTIvbDJ4MC5jLCDCoGl0IHNlZW1zIHdlIG9ubHkKPj4gbmVlZCB0byBjaGFuZ2UgTWFrZWZpbGUg dG86Cj4+IG9iai0kKENPTkZJR19DQUNIRV9MMlgwKSA6PSBsMngwLm8KPj4gdGhlIGhlYWQgZmls ZSBpcyBub3QgbmVlZGVkLgo+Pgo+PiBDdXJyZW50bHksIHJvYidzIE9GLWJhc2VkIEwyIGNhY2hl IGlzIG5vdCBtZXJnZWQgeWV0LiB0aGVuIGkgb25seQo+PiB3cml0ZSB0aGUgZm9sbG93aW5nOgo+ Pgo+PiBzdGF0aWMgaW50IF9faW5pdCBzaXJmc29jX29mX2wyeF9pbml0KHZvaWQpCj4+IHsKPj4g wqAgwqAgwqAgwqAgc3RydWN0IGRldmljZV9ub2RlICpucDsKPj4gwqAgwqAgwqAgwqAgdm9pZCBf X2lvbWVtICpzaXJmc29jX2wyeF9iYXNlOwo+Pgo+PiDCoCDCoCDCoCDCoCBucCA9IG9mX2ZpbmRf bWF0Y2hpbmdfbm9kZShOVUxMLCBsMnhfaWRzKTsKPj4gwqAgwqAgwqAgwqAgaWYgKCFucCkKPj4g wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcGFuaWMoInVuYWJsZSB0byBmaW5kIGNvbXBhdGlibGUg aW50YyBub2RlIGluIGR0YlxuIik7Cj4+Cj4+IMKgIMKgIMKgIMKgIHNpcmZzb2NfbDJ4X2Jhc2Ug PSBvZl9pb21hcChucCwgMCk7Cj4+IMKgIMKgIMKgIMKgIGlmICghc2lyZnNvY19sMnhfYmFzZSkK Pj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcGFuaWMoInVuYWJsZSB0byBtYXAgbDJ4IGNwdSBy ZWdpc3RlcnNcbiIpOwo+Pgo+PiDCoCDCoCDCoCDCoCBvZl9ub2RlX3B1dChucCk7Cj4+Cj4+IMKg IMKgIMKgIMKgIGlmICghKHJlYWRsX3JlbGF4ZWQoc2lyZnNvY19sMnhfYmFzZSArIEwyWDBfQ1RS TCkgJiAxKSkgewo+PiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKgo+PiDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCogc2V0IHRoZSBwaHlzaWNhbCBtZW1vcnkgd2luZG93cyBMMiBjYWNoZSB3 aWxsIGNvdmVyCj4+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKi8KPj4gwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgd3JpdGVsX3JlbGF4ZWQoUExBVF9QSFlTX09GRlNFVCArIDEwMjQgKiAxMDI0 ICogMTAyNCwKPj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc2lyZnNvY19s MnhfYmFzZSArIEwyWDBfQUREUl9GSUxURVJJTkdfRU5EKTsKPj4gwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgd3JpdGVsX3JlbGF4ZWQoUExBVF9QSFlTX09GRlNFVCB8IDB4MSwKPj4gwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc2lyZnNvY19sMnhfYmFzZSArIEwyWDBfQUREUl9G SUxURVJJTkdfU1RBUlQpOwo+Pgo+PiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB3cml0ZWxfcmVs YXhlZCgwLAo+PiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBzaXJmc29jX2wy eF9iYXNlICsgTDJYMF9UQUdfTEFURU5DWV9DVFJMKTsKPj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgd3JpdGVsX3JlbGF4ZWQoMCwKPj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgc2lyZnNvY19sMnhfYmFzZSArIEwyWDBfREFUQV9MQVRFTkNZX0NUUkwpOwo+PiDCoCDCoCDC oCDCoCB9Cj4+IMKgIMKgIMKgIMKgIGwyeDBfaW5pdCgodm9pZCBfX2lvbWVtICopc2lyZnNvY19s MnhfYmFzZSwgMHgwMDA0MDAwMCwKPj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgMHgwMDAwMDAw MCk7Cj4+Cj4+IMKgIMKgIMKgIMKgIHJldHVybiAwOwo+PiB9Cj4+IGVhcmx5X2luaXRjYWxsKHNp cmZzb2Nfb2ZfbDJ4X2luaXQpOwo+Pgo+PiBBZnRlciBSb2IncyBwYXRjaCBpcyBtZXJnZWQsIGkg dGhpbmsgc2lyZnNvY19vZl9sMnhfaW5pdCBjYW4gYmUgbXVjaCBzaW1wbGVyLgo+Pgo+IFllcy4g Um9iL09sb2YsIHdoYXQncyB0aGUgc3RhdHVzIG9mIHRoYXQgcGF0Y2g/Cj4KPiDCoCDCoCDCoCDC oEFybmQKPgoKQWZ0ZXIgd2UgZ2V0IGFnZ3JlbWVudCBvbiBEVCBub2RlIG5hbWUoY3NyL2Nzcnhm L2Nzci5sID8pLCBpIHdpbGwgc2VuZApwYXRjaCB2MyB3aXRoIGFsbCB0aG9zZSBhbGwgY2hhbmdl cyBhbmQgZnVsbCBEVC4gUmVhbGx5IHRoYW5rIHlvdSB2ZXJ5Cm11Y2ghCgotYmFycnkKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZGV2aWNldHJlZS1kaXNj dXNzIG1haWxpbmcgbGlzdApkZXZpY2V0cmVlLWRpc2N1c3NAbGlzdHMub3psYWJzLm9yZwpodHRw czovL2xpc3RzLm96bGFicy5vcmcvbGlzdGluZm8vZGV2aWNldHJlZS1kaXNjdXNzCg==