From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kishon Vijay Abraham I Subject: Re: [PATCH 5/6] pci: layerscape: Add the EP mode support. Date: Mon, 5 Nov 2018 14:27:03 +0530 Message-ID: <8ec7f502-e058-2c28-9140-5d125e4af6ff@ti.com> References: <20181025110901.5680-1-xiaowei.bao@nxp.com> <20181025110901.5680-5-xiaowei.bao@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Xiaowei Bao , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "shawnguo@kernel.org" , Leo Li , "lorenzo.pieralisi@arm.com" , "arnd@arndb.de" , "gregkh@linuxfoundation.org" , "M.h. Lian" , Mingkai Hu , Roy Zang , "kstewart@linuxfoundation.org" , "cyrille.pitchen@free-electrons.com" , "pombredanne@nexb.com" , "shawn.lin@rock-chips.com" , "niklas.cassel@axis.com" , "linux-pci@vger.kernel.org" , "devicetree@vger.kernel.org" Cc: Jiafei Pan List-Id: devicetree@vger.kernel.org SGksCgpPbiAzMS8xMC8xOCA0OjA4IFBNLCBYaWFvd2VpIEJhbyB3cm90ZToKPiAKPiAKPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEtpc2hvbiBWaWpheSBBYnJhaGFtIEkgPGtp c2hvbkB0aS5jb20+IAo+IFNlbnQ6IDIwMTjlubQxMOaciDMx5pelIDEyOjE1Cj4gVG86IFhpYW93 ZWkgQmFvIDx4aWFvd2VpLmJhb0BueHAuY29tPjsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsgcm9iaCtk dEBrZXJuZWwub3JnOyBtYXJrLnJ1dGxhbmRAYXJtLmNvbTsgc2hhd25ndW9Aa2VybmVsLm9yZzsg TGVvIExpIDxsZW95YW5nLmxpQG54cC5jb20+OyBsb3JlbnpvLnBpZXJhbGlzaUBhcm0uY29tOyBh cm5kQGFybmRiLmRlOyBncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZzsgTS5oLiBMaWFuIDxtaW5n aHVhbi5saWFuQG54cC5jb20+OyBNaW5na2FpIEh1IDxtaW5na2FpLmh1QG54cC5jb20+OyBSb3kg WmFuZyA8cm95LnphbmdAbnhwLmNvbT47IGtzdGV3YXJ0QGxpbnV4Zm91bmRhdGlvbi5vcmc7IGN5 cmlsbGUucGl0Y2hlbkBmcmVlLWVsZWN0cm9ucy5jb207IHBvbWJyZWRhbm5lQG5leGIuY29tOyBz aGF3bi5saW5Acm9jay1jaGlwcy5jb207IG5pa2xhcy5jYXNzZWxAYXhpcy5jb207IGxpbnV4LXBj aUB2Z2VyLmtlcm5lbC5vcmc7IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJu ZWxAdmdlci5rZXJuZWwub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7 IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCj4gQ2M6IEppYWZlaSBQYW4gPGppYWZlaS5w YW5AbnhwLmNvbT4KPiBTdWJqZWN0OiBSZTogW1BBVENIIDUvNl0gcGNpOiBsYXllcnNjYXBlOiBB ZGQgdGhlIEVQIG1vZGUgc3VwcG9ydC4KPiAKPiBIaSwKPiAKPiBPbiAzMS8xMC8xOCA4OjAzIEFN LCBYaWFvd2VpIEJhbyB3cm90ZToKPj4KPj4KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0K Pj4gRnJvbTogWGlhb3dlaSBCYW8KPj4gU2VudDogMjAxOOW5tDEw5pyIMjbml6UgMTc6MTkKPj4g VG86ICdLaXNob24gVmlqYXkgQWJyYWhhbSBJJyA8a2lzaG9uQHRpLmNvbT47IGJoZWxnYWFzQGdv b2dsZS5jb207IAo+PiByb2JoK2R0QGtlcm5lbC5vcmc7IG1hcmsucnV0bGFuZEBhcm0uY29tOyBz aGF3bmd1b0BrZXJuZWwub3JnOyBMZW8gTGkgCj4+IDxsZW95YW5nLmxpQG54cC5jb20+OyBsb3Jl bnpvLnBpZXJhbGlzaUBhcm0uY29tOyBhcm5kQGFybmRiLmRlOyAKPj4gZ3JlZ2toQGxpbnV4Zm91 bmRhdGlvbi5vcmc7IE0uaC4gTGlhbiA8bWluZ2h1YW4ubGlhbkBueHAuY29tPjsgTWluZ2thaSAK Pj4gSHUgPG1pbmdrYWkuaHVAbnhwLmNvbT47IFJveSBaYW5nIDxyb3kuemFuZ0BueHAuY29tPjsg Cj4+IGtzdGV3YXJ0QGxpbnV4Zm91bmRhdGlvbi5vcmc7IGN5cmlsbGUucGl0Y2hlbkBmcmVlLWVs ZWN0cm9ucy5jb207IAo+PiBwb21icmVkYW5uZUBuZXhiLmNvbTsgc2hhd24ubGluQHJvY2stY2hp cHMuY29tOyAKPj4gbmlrbGFzLmNhc3NlbEBheGlzLmNvbTsgbGludXgtcGNpQHZnZXIua2VybmVs Lm9yZzsgCj4+IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5r ZXJuZWwub3JnOyAKPj4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51 eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZwo+PiBDYzogSmlhZmVpIFBhbiA8amlhZmVpLnBhbkBu eHAuY29tPgo+PiBTdWJqZWN0OiBSRTogW1BBVENIIDUvNl0gcGNpOiBsYXllcnNjYXBlOiBBZGQg dGhlIEVQIG1vZGUgc3VwcG9ydC4KPj4KPj4KPj4KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0KPj4gRnJvbTogS2lzaG9uIFZpamF5IEFicmFoYW0gSSA8a2lzaG9uQHRpLmNvbT4KPj4gU2Vu dDogMjAxOOW5tDEw5pyIMjbml6UgMTM6MjkKPj4gVG86IFhpYW93ZWkgQmFvIDx4aWFvd2VpLmJh b0BueHAuY29tPjsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsgCj4+IHJvYmgrZHRAa2VybmVsLm9yZzsg bWFyay5ydXRsYW5kQGFybS5jb207IHNoYXduZ3VvQGtlcm5lbC5vcmc7IExlbyBMaSAKPj4gPGxl b3lhbmcubGlAbnhwLmNvbT47IGxvcmVuem8ucGllcmFsaXNpQGFybS5jb207IGFybmRAYXJuZGIu ZGU7IAo+PiBncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZzsgTS5oLiBMaWFuIDxtaW5naHVhbi5s aWFuQG54cC5jb20+OyBNaW5na2FpIAo+PiBIdSA8bWluZ2thaS5odUBueHAuY29tPjsgUm95IFph bmcgPHJveS56YW5nQG54cC5jb20+OyAKPj4ga3N0ZXdhcnRAbGludXhmb3VuZGF0aW9uLm9yZzsg Y3lyaWxsZS5waXRjaGVuQGZyZWUtZWxlY3Ryb25zLmNvbTsgCj4+IHBvbWJyZWRhbm5lQG5leGIu Y29tOyBzaGF3bi5saW5Acm9jay1jaGlwcy5jb207IAo+PiBuaWtsYXMuY2Fzc2VsQGF4aXMuY29t OyBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyAKPj4gZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5v cmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IAo+PiBsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmc7IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCj4+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0ggNS82XSBwY2k6IGxheWVyc2NhcGU6IEFkZCB0aGUgRVAgbW9kZSBzdXBw b3J0Lgo+Pgo+PiBIaSwKPj4KPj4gT24gVGh1cnNkYXkgMjUgT2N0b2JlciAyMDE4IDA0OjM5IFBN LCBYaWFvd2VpIEJhbyB3cm90ZToKPj4+IEFkZCB0aGUgUENJZSBFUCBtb2RlIHN1cHBvcnQgZm9y IGxheWVyc2NhcGUgcGxhdGZvcm0uCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogWGlhb3dlaSBCYW8g PHhpYW93ZWkuYmFvQG54cC5jb20+Cj4+PiAtLS0KPj4+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9NYWtlZmlsZSAgICAgICAgICAgIHwgICAgMiArLQo+Pj4gIGRyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaS1sYXllcnNjYXBlLWVwLmMgfCAgMTYxCj4+PiArKysrKysrKysrKysrKysr KysrKysrKysKPj4+ICAyIGZpbGVzIGNoYW5nZWQsIDE2MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9ucygtKSAgY3JlYXRlIG1vZGUKPj4+IDEwMDY0NCBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2ktbGF5ZXJzY2FwZS1lcC5jCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL01ha2VmaWxlCj4+PiBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL01h a2VmaWxlCj4+PiBpbmRleCA1ZDJjZTcyLi5iMjZkNjE3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9kd2MvTWFrZWZpbGUKPj4+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL01ha2VmaWxlCj4+PiBAQCAtOCw3ICs4LDcgQEAgb2JqLSQoQ09ORklHX1BDSV9F WFlOT1MpICs9IHBjaS1leHlub3Mubwo+Pj4gIG9iai0kKENPTkZJR19QQ0lfSU1YNikgKz0gcGNp LWlteDYubwo+Pj4gIG9iai0kKENPTkZJR19QQ0lFX1NQRUFSMTNYWCkgKz0gcGNpZS1zcGVhcjEz eHgubwo+Pj4gIG9iai0kKENPTkZJR19QQ0lfS0VZU1RPTkUpICs9IHBjaS1rZXlzdG9uZS1kdy5v IHBjaS1rZXlzdG9uZS5vCj4+PiAtb2JqLSQoQ09ORklHX1BDSV9MQVlFUlNDQVBFKSArPSBwY2kt bGF5ZXJzY2FwZS5vCj4+PiArb2JqLSQoQ09ORklHX1BDSV9MQVlFUlNDQVBFKSArPSBwY2ktbGF5 ZXJzY2FwZS5vIHBjaS1sYXllcnNjYXBlLWVwLm8KPj4+ICBvYmotJChDT05GSUdfUENJRV9RQ09N KSArPSBwY2llLXFjb20ubwo+Pj4gIG9iai0kKENPTkZJR19QQ0lFX0FSTUFEQV84SykgKz0gcGNp ZS1hcm1hZGE4ay5vCj4+PiAgb2JqLSQoQ09ORklHX1BDSUVfQVJUUEVDNikgKz0gcGNpZS1hcnRw ZWM2Lm8gZGlmZiAtLWdpdCAKPj4+IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWxh eWVyc2NhcGUtZXAuYwo+Pj4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJz Y2FwZS1lcC5jCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uM2Iz M2JiYwo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9k d2MvcGNpLWxheWVyc2NhcGUtZXAuYwo+Pj4gQEAgLTAsMCArMSwxNjEgQEAKPj4+ICsvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+Pj4gKy8qCj4+PiArICogUENJZSBjb250cm9s bGVyIEVQIGRyaXZlciBmb3IgRnJlZXNjYWxlIExheWVyc2NhcGUgU29Dcwo+Pj4gKyAqCj4+PiAr ICogQ29weXJpZ2h0IChDKSAyMDE4IE5YUCBTZW1pY29uZHVjdG9yLgo+Pj4gKyAqCj4+PiArICog QXV0aG9yOiBYaWFvd2VpIEJhbyA8eGlhb3dlaS5iYW9AbnhwLmNvbT4gICovCj4+PiArCj4+PiAr I2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4+ PiArI2luY2x1ZGUgPGxpbnV4L29mX3BjaS5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0 Zm9ybS5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Cj4+PiArI2luY2x1ZGUg PGxpbnV4L3BjaS5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPj4+ ICsjaW5jbHVkZSA8bGludXgvcmVzb3VyY2UuaD4KPj4+ICsKPj4+ICsjaW5jbHVkZSAicGNpZS1k ZXNpZ253YXJlLmgiCj4+PiArCj4+PiArI2RlZmluZSBQQ0lFX0RCSTJfT0ZGU0VUCQkweDEwMDAJ LyogREJJMiBiYXNlIGFkZHJlc3MqLwo+Pgo+PiBUaGUgYmFzZSBhZGRyZXNzIHNob3VsZCBjb21l IGZyb20gZHQuCj4+PiArCj4+PiArc3RydWN0IGxzX3BjaWVfZXAgewo+Pj4gKwlzdHJ1Y3QgZHdf cGNpZQkJKnBjaTsKPj4+ICt9Owo+Pj4gKwo+Pj4gKyNkZWZpbmUgdG9fbHNfcGNpZV9lcCh4KQlk ZXZfZ2V0X2RydmRhdGEoKHgpLT5kZXYpCj4+PiArCj4+PiArc3RhdGljIGJvb2wgbHNfcGNpZV9p c19icmlkZ2Uoc3RydWN0IGxzX3BjaWVfZXAgKnBjaWUpIHsKPj4+ICsJc3RydWN0IGR3X3BjaWUg KnBjaSA9IHBjaWUtPnBjaTsKPj4+ICsJdTMyIGhlYWRlcl90eXBlOwo+Pj4gKwo+Pj4gKwloZWFk ZXJfdHlwZSA9IGlvcmVhZDgocGNpLT5kYmlfYmFzZSArIFBDSV9IRUFERVJfVFlQRSk7Cj4+PiAr CWhlYWRlcl90eXBlICY9IDB4N2Y7Cj4+PiArCj4+PiArCXJldHVybiBoZWFkZXJfdHlwZSA9PSBQ Q0lfSEVBREVSX1RZUEVfQlJJREdFOyB9Cj4+PiArCj4+PiArc3RhdGljIGludCBsc19wY2llX2Vz dGFibGlzaF9saW5rKHN0cnVjdCBkd19wY2llICpwY2kpIHsKPj4+ICsJcmV0dXJuIDA7Cj4+PiAr fQo+Pgo+PiBUaGVyZSBzaG91bGQgYmUgc29tZSB3YXkgYnkgd2hpY2ggRVAgc2hvdWxkIHRlbGwg UkMgdGhhdCBpdCBpcyBub3QgY29uZmlndXJlZCB5ZXQuIEFyZSB0aGVyZSBubyBiaXRzIHRvIGNv bnRyb2wgTFRTU00gc3RhdGUgaW5pdGlhbGl6YXRpb24gb3IgQ29uZmlndXJhdGlvbiByZXRyeSBz dGF0dXMgZW5hYmxpbmc/Cj4+IFtYaWFvd2VpIEJhb10gVGhlcmUgaGF2ZSBub3QgYml0cyB0byBj b250cm9sIExUU1NNIHN0YXRlIHRvIHRlbGwgdGhlIFJDIGl0IGlzIGNvbmZpZ3VyZWQuIFRoZSBz dGFydCBsaW5rIGlzIGF1dG8gY29tcGxldGVkLgo+PiBbWGlhb3dlaSBCYW9dIEhpIEtpc2hvbiwg aXMgdGhlcmUgYW55IGFkdmljZT8KPiAKPiBJZiB0aGVyZSBpcyBubyBIVyBzdXBwb3J0LCBJIGRv bid0IHRoaW5rIGFueXRoaW5nIGNvdWxkIGJlIGRvbmUgaGVyZS4gVGhpcyBjb3VsZCByZXN1bHQg aW4gUkMgcmVhZGluZyBjb25maWd1cmF0aW9uIHNwYWNlIGV2ZW4gYmVmb3JlIEVQIGlzIGZ1bGx5 IGluaXRpYWxpemVkLgo+IFtYaWFvd2VpIEJhb10gVGhlIGJvb3Rsb2FkZXIgaGF2ZSBpbml0aWFs aXplZCB0aGUgRVAgZGV2aWNlIGFuZCBzZXQgdGhlIGNvbmZpZyByZWFkeSBiaXQsIGFuZCB0aGUg a2VybmVsIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuCgpXaGF0IGRvZXMgYm9vdGxvYWRlciBp bml0YWxpemU/IFRoZSBFUCBkcml2ZXIgaGVyZSB3aWxsIHJlaW5pdGlhbGl6ZSBldmVyeXRoaW5n CnJpZ2h0PwoKVGhhbmtzCktpc2hvbgo+Pj4gKwo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHdf cGNpZV9vcHMgbHNfcGNpZV9lcF9vcHMgPSB7Cj4+PiArCS5zdGFydF9saW5rID0gbHNfcGNpZV9l c3RhYmxpc2hfbGluaywgfTsKPj4+ICsKPj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCBsc19wY2llX2VwX29mX21hdGNoW10gPSB7Cj4+PiArCXsgLmNvbXBhdGlibGUgPSAiZnNs LGxzLXBjaWUtZXAiLH0sCj4+PiArCXsgfSwKPj4+ICt9Owo+Pj4gKwo+Pj4gK3N0YXRpYyB2b2lk IGxzX3BjaWVfZXBfaW5pdChzdHJ1Y3QgZHdfcGNpZV9lcCAqZXApIHsKPj4+ICsJc3RydWN0IGR3 X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9lcChlcCk7Cj4+PiArCXN0cnVjdCBwY2lfZXBj ICplcGMgPSBlcC0+ZXBjOwo+Pj4gKwllbnVtIHBjaV9iYXJubyBiYXI7Cj4+PiArCj4+PiArCWZv ciAoYmFyID0gQkFSXzA7IGJhciA8PSBCQVJfNTsgYmFyKyspCj4+PiArCQlkd19wY2llX2VwX3Jl c2V0X2JhcihwY2ksIGJhcik7Cj4+PiArCj4+PiArCWVwYy0+ZmVhdHVyZXMgfD0gRVBDX0ZFQVRV UkVfTk9fTElOS1VQX05PVElGSUVSOyB9Cj4+PiArCj4+PiArc3RhdGljIGludCBsc19wY2llX2Vw X3JhaXNlX2lycShzdHJ1Y3QgZHdfcGNpZV9lcCAqZXAsIHU4IGZ1bmNfbm8sCj4+PiArCQkJCSAg ZW51bSBwY2lfZXBjX2lycV90eXBlIHR5cGUsIHUxNiBpbnRlcnJ1cHRfbnVtKSB7Cj4+PiArCXN0 cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fZXAoZXApOwo+Pj4gKwo+Pj4gKwlz d2l0Y2ggKHR5cGUpIHsKPj4+ICsJY2FzZSBQQ0lfRVBDX0lSUV9MRUdBQ1k6Cj4+PiArCQlyZXR1 cm4gZHdfcGNpZV9lcF9yYWlzZV9sZWdhY3lfaXJxKGVwLCBmdW5jX25vKTsKPj4+ICsJY2FzZSBQ Q0lfRVBDX0lSUV9NU0k6Cj4+PiArCQlyZXR1cm4gZHdfcGNpZV9lcF9yYWlzZV9tc2lfaXJxKGVw LCBmdW5jX25vLCBpbnRlcnJ1cHRfbnVtKTsKPj4+ICsJY2FzZSBQQ0lfRVBDX0lSUV9NU0lYOgo+ Pj4gKwkJcmV0dXJuIGR3X3BjaWVfZXBfcmFpc2VfbXNpeF9pcnEoZXAsIGZ1bmNfbm8sIGludGVy cnVwdF9udW0pOwo+Pj4gKwlkZWZhdWx0Ogo+Pj4gKwkJZGV2X2VycihwY2ktPmRldiwgIlVOS05P V04gSVJRIHR5cGVcbiIpOwo+Pj4gKwl9Cj4+PiArCj4+PiArCXJldHVybiAwOwo+Pj4gK30KPj4+ ICsKPj4+ICtzdGF0aWMgc3RydWN0IGR3X3BjaWVfZXBfb3BzIHBjaWVfZXBfb3BzID0gewo+Pj4g KwkuZXBfaW5pdCA9IGxzX3BjaWVfZXBfaW5pdCwKPj4+ICsJLnJhaXNlX2lycSA9IGxzX3BjaWVf ZXBfcmFpc2VfaXJxLAo+Pj4gK307Cj4+PiArCj4+PiArc3RhdGljIGludCBfX2luaXQgbHNfYWRk X3BjaWVfZXAoc3RydWN0IGxzX3BjaWVfZXAgKnBjaWUsCj4+PiArCQkJCQlzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQo+Pj4gK3sKPj4+ICsJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHBjaWUt PnBjaTsKPj4+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7Cj4+PiArCXN0cnVjdCBk d19wY2llX2VwICplcDsKPj4+ICsJc3RydWN0IHJlc291cmNlICpyZXM7Cj4+PiArCWludCByZXQ7 Cj4+PiArCj4+PiArCWVwID0gJnBjaS0+ZXA7Cj4+PiArCWVwLT5vcHMgPSAmcGNpZV9lcF9vcHM7 Cj4+PiArCj4+PiArCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZV9ieW5hbWUocGRldiwgSU9S RVNPVVJDRV9NRU0sICJhZGRyX3NwYWNlIik7Cj4+PiArCWlmICghcmVzKQo+Pj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4+PiArCj4+PiArCWVwLT5waHlzX2Jhc2UgPSByZXMtPnN0YXJ0Owo+Pj4gKwll cC0+YWRkcl9zaXplID0gcmVzb3VyY2Vfc2l6ZShyZXMpOwo+Pj4gKwo+Pj4gKwlyZXQgPSBkd19w Y2llX2VwX2luaXQoZXApOwo+Pj4gKwlpZiAocmV0KSB7Cj4+PiArCQlkZXZfZXJyKGRldiwgImZh aWxlZCB0byBpbml0aWFsaXplIGVuZHBvaW50XG4iKTsKPj4+ICsJCXJldHVybiByZXQ7Cj4+PiAr CX0KPj4+ICsKPj4+ICsJcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgX19p bml0IGxzX3BjaWVfZXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikgewo+Pj4g KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+Pj4gKwlzdHJ1Y3QgZHdfcGNpZSAq cGNpOwo+Pj4gKwlzdHJ1Y3QgbHNfcGNpZV9lcCAqcGNpZTsKPj4+ICsJc3RydWN0IHJlc291cmNl ICpkYmlfYmFzZTsKPj4+ICsJaW50IHJldDsKPj4+ICsKPj4+ICsJcGNpZSA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqcGNpZSksIEdGUF9LRVJORUwpOwo+Pj4gKwlpZiAoIXBjaWUpCj4+PiAr CQlyZXR1cm4gLUVOT01FTTsKPj4+ICsKPj4+ICsJcGNpID0gZGV2bV9remFsbG9jKGRldiwgc2l6 ZW9mKCpwY2kpLCBHRlBfS0VSTkVMKTsKPj4+ICsJaWYgKCFwY2kpCj4+PiArCQlyZXR1cm4gLUVO T01FTTsKPj4+ICsKPj4+ICsJZGJpX2Jhc2UgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1l KHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAicmVncyIpOwo+Pj4gKwlwY2ktPmRiaV9iYXNlID0gZGV2 bV9wY2lfcmVtYXBfY2ZnX3Jlc291cmNlKGRldiwgZGJpX2Jhc2UpOwo+Pj4gKwlpZiAoSVNfRVJS KHBjaS0+ZGJpX2Jhc2UpKQo+Pj4gKwkJcmV0dXJuIFBUUl9FUlIocGNpLT5kYmlfYmFzZSk7Cj4+ PiArCj4+PiArCXBjaS0+ZGJpX2Jhc2UyID0gcGNpLT5kYmlfYmFzZSArIFBDSUVfREJJMl9PRkZT RVQ7Cj4+PiArCXBjaS0+ZGV2ID0gZGV2Owo+Pj4gKwlwY2ktPm9wcyA9ICZsc19wY2llX2VwX29w czsKPj4+ICsJcGNpZS0+cGNpID0gcGNpOwo+Pj4gKwo+Pj4gKwlpZiAobHNfcGNpZV9pc19icmlk Z2UocGNpZSkpCj4+PiArCQlyZXR1cm4gLUVOT0RFVjsKPj4KPj4gRm9yIGFuIGVuZHBvaW50IHRo aXMgY29uZGl0aW9uIHNob3VsZCBuZXZlciBvY2N1ci4gVGhpcyBzaG91bGQgb25seSBtZWFuLCBh IHdyb25nIGNvbXBhdGlibGUgaGFzIGJlZW4gdXNlZCBpbiBkdC4KPj4gW1hpYW93ZWkgQmFvXSBU aGlzIGZ1bmN0aW9uIGlzIGEgd2F5IHRoYXQgY2FuIGNoZWNrIHRoZSBQQ0kgY29udHJvbGxlciB3 aGV0aGVyIHdvcmsgaW4gRVAgbW9kZSwgSSB0aGluayBpdCBpcyBtb3JlIHNhZmVyLiBPZiBjb3Vy c2UsIGl0IGNhbiBiZSByZW1vdmVkLgo+PiBbWGlhb3dlaSBCYW9dIEhpIEtpc2hvbiwgaXMgdGhl cmUgYW55IGFkdmljZT8KPiAKPiBJTUhPIHRoaXMgY2hlY2sgaXMgbm90IHJlcXVpcmVkLgo+IFtY aWFvd2VpIEJhb10gT0ssIEkgd2lsbCByZW1vdmUgdGhpcyBmdW5jdGlvbiBpbiBwYXRjaC12Mi4K PiAKPiBUaGFua3MKPiBLaXNob24KPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK