From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4D776E041 for ; Tue, 10 Sep 2019 11:48:58 +0000 (UTC) Date: Tue, 10 Sep 2019 14:48:54 +0300 From: Arkadiusz Hiler Message-ID: <20190910114854.hq6cdbeyzbs7h7in@ahiler-desk1.fi.intel.com> References: <20190904103701.20490-1-zbigniew.kempczynski@intel.com> <20190904103701.20490-4-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190904103701.20490-4-zbigniew.kempczynski@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v6 3/3] Introduce device selection lsgpu tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Cc: igt-dev@lists.freedesktop.org, Petri Latvala , Daniel Vetter List-ID: T24gV2VkLCBTZXAgMDQsIDIwMTkgYXQgMTI6Mzc6MDFQTSArMDIwMCwgWmJpZ25pZXcgS2VtcGN6 ecWEc2tpIHdyb3RlOgo+IFRvb2wgdXNlcyBkZXZpY2Ugc2VsZWN0aW9uIEFQSSB0byBzY2FuIGFu ZCBkaXNwbGF5IEdQVSBkZXZpY2VzLgo+IEl0IGNhbiBiZSB1c2VkIHRvIGNoZWNrIGZpbHRlciBj b3JyZWN0bmVzcyBhcyB3ZWxsIGFzIG9yZGVyCj4gb2YgZmlsdGVyIGFwcGx5aW5nICguaWd0cmMs IElHVF9ERVZJQ0UgYW5kIC0tZGV2aWNlIGFyZ3VtZW50KS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBa YmlnbmlldyBLZW1wY3p5xYRza2kgPHpiaWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KPiBD YzogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgo+IENjOiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gQ2M6IFBldHJpIExhdHZhbGEgPHBldHJpLmxh dHZhbGFAaW50ZWwuY29tPgo+IC0tLQo+ICB0b29scy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsK PiAgdG9vbHMvbHNncHUuYyAgICAgICAgICB8IDI5OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ICB0b29scy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKPiAgMyBm aWxlcyBjaGFuZ2VkLCAzMDEgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvbHNncHUuYwo+IAo+IGRpZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5zb3VyY2VzIGIvdG9v bHMvTWFrZWZpbGUuc291cmNlcwo+IGluZGV4IDUwNzA2ZjQxLi4wZTY3YjY1NCAxMDA2NDQKPiAt LS0gYS90b29scy9NYWtlZmlsZS5zb3VyY2VzCj4gKysrIGIvdG9vbHMvTWFrZWZpbGUuc291cmNl cwo+IEBAIC0zMyw2ICszMyw3IEBAIHRvb2xzX3Byb2dfbGlzdHMgPQkJXAo+ICAJaW50ZWxfd2F0 ZXJtYXJrCQlcCj4gIAlpbnRlbF9nZW1faW5mbwkJXAo+ICAJaW50ZWxfZ3Z0Z190ZXN0ICAgICBc Cj4gKwlsc2dwdQkJCVwKPiAgCSQoTlVMTCkKPiAgCj4gIGRpc3RfYmluX1NDUklQVFMgPSBpbnRl bF9ncHVfYWJydAo+IGRpZmYgLS1naXQgYS90b29scy9sc2dwdS5jIGIvdG9vbHMvbHNncHUuYwo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjk2NGJjZjg4Cj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL3Rvb2xzL2xzZ3B1LmMKPiBAQCAtMCwwICsxLDI5OSBAQAo+ICsvKgo+ ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u Cj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUg aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4g KyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4g KyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhF IFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJpZ3RfZGV2aWNlX3NjYW4u aCIKPiArI2luY2x1ZGUgImlndC5oIgo+ICsjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Cj4gKyNpbmNs dWRlIDxmY250bC5oPgo+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPiArI2luY2x1ZGUgPHN0cmluZy5o Pgo+ICsjaW5jbHVkZSA8c2lnbmFsLmg+Cj4gKyNpbmNsdWRlIDxnbGliLmg+Cj4gKwo+ICsvKioK PiArICogU0VDVElPTjpsc2dwdQo+ICsgKiBAc2hvcnRfZGVzY3JpcHRpb246IGxzZ3B1Cj4gKyAq IEB0aXRsZTogbHNncHUKPiArICogQGluY2x1ZGU6IGxzZ3B1LmMKPiArICoKPiArICogIyBsc2dw dQo+ICsgKgo+ICsgKiBUaGUgZGV2aWNlcyBjYW4gYmUgc2Nhbm5lZCBhbmQgZGlzcGxheWVkIHVz aW5nICdsc2dwdScgdG9vbC4gVG9vbCBhbHNvCj4gKyAqIGRpc3BsYXlzIHByb3BlcnRpZXMgYW5k IHN5c2F0dHJzICgtcCBzd2l0Y2gsIG1lYW5zIHByaW50IGRldGFpbCkgd2hpY2gKPiArICogY2Fu IGJlIHVzZWQgZHVyaW5nIGZpbHRlciBpbXBsZW1lbnRhdGlvbi4KPiArICoKPiArICogVG9vbCBj YW4gYWxzbyBiZSB1c2VkIHRvIHRyeSBvdXQgZmlsdGVycy4KPiArICogVG8gc2VsZWN0IGRldmlj ZSB1c2UgJy1kJyBvciAnLS1kZXZpY2UnIGFyZ3VtZW50IGxpa2U6Cj4gKyAqCj4gKyAqIHxbPCEt LSBsYW5ndWFnZT0icGxhaW4iIC0tPgo+ICsgKiAuL2xzZ3B1IC1kICdwY2k6dmVuZG9yPUludGVs Jwo+ICsgKiA9PT0gRGV2aWNlIGZpbHRlciBsaXN0ID09PQo+ICsgKiBbIDBdOiBwY2k6dmVuZG9y PUludGVsCj4gKwo+ICsgKiA9PT0gVGVzdGluZyBkZXZpY2Ugb3BlbiA9PT0KPiArICogc3Vic3lz dGVtICAgOiBwY2kKPiArICogY2hpcHNldCAgICAgOiAxCj4gKyAqIGRybSBjYXJkICAgIDogL2Rl di9kcmkvY2FyZDAKPiArICogZHJtIHJlbmRlciAgOiAvZGV2L2RyaS9yZW5kZXJEMTI4Cj4gKyAq IERldmljZSAvZGV2L2RyaS9jYXJkMCBzdWNjZXNzZnVsbHkgb3BlbmVkCj4gKyAqIERldmljZSAv ZGV2L2RyaS9yZW5kZXJEMTI4IHN1Y2Nlc3NmdWxseSBvcGVuZWQKPiArICogXXwKPiArICoKPiAr ICogQWRkaXRpb25hbGx5IGxzZ3B1IHRyaWVzIHRvIG9wZW4gdGhlIGNhcmQgYW5kIHJlbmRlciBu b2RlcyB0byB2ZXJpZnkKPiArICogcGVybWlzc2lvbnMuIEl0IGFsc28gdXNlcyBJR1QgdmFyaWFi bGUgc2VhcmNoIG9yZGVyOgo+ICsgKiAtIHVzZSAtLWRldmljZSBmaXJzdCAoaXQgb3ZlcnJpZGVz IElHVF9ERVZJQ0UgYW5kIC5pZ3RyYyBDb21tb246OkRldmljZQo+ICsgKiAgIHNldHRpbmdzKQo+ ICsgKiAtIHVzZSBJR1RfREVWSUNFIGVudmlyb21lbnQgdmFyaWFibGUgaWYgbm8gLS1kZXZpY2Ug YXJlIHBhc3NlZAo+ICsgKiAtIHVzZSAuaWd0cmMgQ29tbW9uOjpEZXZpY2UgaWYgbm8gLS1kZXZp Y2Ugbm9yIElHVF9ERVZJQ0UgYXJlIHBhc3NlZAo+ICsgKi8KCm5vdGUgdG8gc2VsZjogYWRkIHRv b2xzLyogdG8gdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uCgo+ICsKPiArZW51bSB7Cj4gKwlP UFRfUFJJTlRfREVUQUlMICAgPSAncCcsCj4gKwlPUFRfTElTVF9WRU5ET1JTICAgPSAndicsCj4g KwlPUFRfTElTVF9GSUxURVJTICAgPSAnbCcsCj4gKwlPUFRfREVWSUNFICAgICAgICAgPSAnZCcs Cj4gKwlPUFRfSEVMUCAgICAgICAgICAgPSAnaCcKPiArfTsKPiArCj4gK3N0YXRpYyBib29sIGdf c2hvd192ZW5kb3JzOwo+ICtzdGF0aWMgYm9vbCBnX2xpc3RfZmlsdGVyczsKPiArc3RhdGljIGJv b2wgZ19kZXZpY2U7Cj4gK3N0YXRpYyBib29sIGdfaGVscDsKPiArc3RhdGljIGNoYXIgKmlndF9y Y19kZXZpY2U7Cj4gKwo+ICtzdGF0aWMgY29uc3QgY2hhciAqdXNhZ2Vfc3RyID0KPiArCSJ1c2Fn ZTogbHNncHUgW29wdGlvbnNdXG5cbiIKPiArCSJPcHRpb25zOlxuIgo+ICsJIiAgLXAsIC0tcHJp bnQtZGV0YWlscyAgICAgICAgIFByaW50IGRldmljZXMgd2l0aCBkZXRhaWxzXG4iCj4gKwkiICAt diwgLS1saXN0LXZlbmRvcnMgICAgICAgICAgTGlzdCByZWNvZ25pemVkIHZlbmRvcnNcbiIKPiAr CSIgIC1sLCAtLWxpc3QtZmlsdGVyLXR5cGVzICAgICBMaXN0IHJlZ2lzdGVyZWQgZGV2aWNlIGZp bHRlcnMgdHlwZXNcbiIKPiArCSIgIC1kLCAtLWRldmljZSBmaWx0ZXIgICAgICAgICBEZXZpY2Ug ZmlsdGVyLCBjYW4gYmUgZ2l2ZW4gbXVsdGlwbGUgdGltZXNcbiIKPiArCSIgIC1oLCAtLWhlbHAg ICAgICAgICAgICAgICAgICBTaG93IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBleGl0XG4iOwo+ICsK PiArc3RhdGljIHZvaWQgdGVzdF9kZXZpY2Vfb3BlbihzdHJ1Y3QgaWd0X2RldmljZV9jYXJkICpj YXJkKQo+ICt7Cj4gKwlpbnQgZmQ7Cj4gKwo+ICsJaWYgKCFjYXJkKQo+ICsJCXJldHVybjsKPiAr Cj4gKwlmZCA9IGRybV9vcGVuX2NhcmQoY2FyZCk7Cj4gKwlpZiAoZmQgPj0gMCkgewo+ICsJCXBy aW50ZigiRGV2aWNlICVzIHN1Y2Nlc3NmdWxseSBvcGVuZWRcbiIsIGNhcmQtPmNhcmQpOwo+ICsJ CWNsb3NlKGZkKTsKPiArCX0gZWxzZSB7Cj4gKwkJaWYgKHN0cmxlbihjYXJkLT5jYXJkKSkKPiAr CQkJcHJpbnRmKCJDYW5ub3Qgb3BlbiBjYXJkICVzIGRldmljZVxuIiwgY2FyZC0+Y2FyZCk7Cj4g KwkJZWxzZQo+ICsJCQlwcmludGYoIkNhbm5vdCBvcGVuIGNhcmQgZGV2aWNlLCBlbXB0eSBuYW1l XG4iKTsKPiArCX0KPiArCj4gKwlmZCA9IGRybV9vcGVuX3JlbmRlcihjYXJkKTsKPiArCWlmIChm ZCA+PSAwKSB7Cj4gKwkJcHJpbnRmKCJEZXZpY2UgJXMgc3VjY2Vzc2Z1bGx5IG9wZW5lZFxuIiwg Y2FyZC0+cmVuZGVyKTsKPiArCQljbG9zZShmZCk7Cj4gKwl9IGVsc2Ugewo+ICsJCWlmIChzdHJs ZW4oY2FyZC0+cmVuZGVyKSkKPiArCQkJcHJpbnRmKCJDYW5ub3Qgb3BlbiByZW5kZXIgJXMgZGV2 aWNlXG4iLCBjYXJkLT5yZW5kZXIpOwo+ICsJCWVsc2UKPiArCQkJcHJpbnRmKCJDYW5ub3Qgb3Bl biByZW5kZXIgZGV2aWNlLCBlbXB0eSBuYW1lXG4iKTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgcHJpbnRfY2FyZChzdHJ1Y3QgaWd0X2RldmljZV9jYXJkICpjYXJkKQo+ICt7Cj4gKwlp ZiAoIWNhcmQpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXByaW50Zigic3Vic3lzdGVtICAgOiAlc1xu IiwgY2FyZC0+c3Vic3lzdGVtKTsKPiArCXByaW50ZigiY2hpcHNldCAgICAgOiAleFxuIiwgY2Fy ZC0+Y2hpcHNldCk7Cj4gKwlwcmludGYoImRybSBjYXJkICAgIDogJXNcbiIsIGNhcmQtPmNhcmQp Owo+ICsJcHJpbnRmKCJkcm0gcmVuZGVyICA6ICVzXG4iLCBjYXJkLT5yZW5kZXIpOwo+ICt9Cj4g Kwo+ICsvKiBQYXJ0aWFsbHkgY29waWVkIGZyb20gaWd0X2NvcmUgdG8gc2ltdWxhdGUgZGV2aWNl IHNlbGVjdGlvbiBvcmRlcjoKPiArICogMS4gLS1kZXZpY2UgICAgICAgIChJR1RfREVWSUNFIGFu ZCAuaWd0cmMgQ29tbW9uOjpEZXZpY2UgYXJlIGlnbm9yZWQpCj4gKyAqIDIuIElHVF9ERVZJQ0Ug ZW52ICAoLmlndHJjIENvbW1vbjo6RGV2aWNlIGlzIGlnbm9yZWQpCj4gKyAqIDMuIC5pZ3RyYyAg ICAgICAgICAob3ZlcnJpZGVzCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBjb21tb25faW5pdF9jb25m aWcodm9pZCkKPiArewo+ICsJY2hhciAqa2V5X2ZpbGVfZW52ID0gTlVMTDsKPiArCWNoYXIgKmtl eV9maWxlX2xvYyA9IE5VTEw7Cj4gKwlHRXJyb3IgKmVycm9yID0gTlVMTDsKPiArCUdLZXlGaWxl ICppZ3Rfa2V5X2ZpbGU7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCS8qIEZpbHRlciBjb3VudCA+IDAs IGp1c3Qgc2tpcCAuaWd0cmMgKi8KPiArCWlmIChpZ3RfZGV2aWNlX2ZpbHRlcl9jb3VudCgpKQo+ ICsJCXJldHVybjsKPiArCj4gKwkvKiBEZXRlcm1pbmUgaWd0IGNvbmZpZyBwYXRoICovCj4gKwlr ZXlfZmlsZV9lbnYgPSBnZXRlbnYoIklHVF9DT05GSUdfUEFUSCIpOwo+ICsJaWYgKGtleV9maWxl X2Vudikgewo+ICsJCWtleV9maWxlX2xvYyA9IGtleV9maWxlX2VudjsKPiArCX0gZWxzZSB7Cj4g KwkJa2V5X2ZpbGVfbG9jID0gbWFsbG9jKDEwMCk7Cj4gKwkJc25wcmludGYoa2V5X2ZpbGVfbG9j LCAxMDAsICIlcy8uaWd0cmMiLCBnX2dldF9ob21lX2RpcigpKTsKPiArCX0KPiArCj4gKwkvKiBM b2FkIGlndCBjb25maWcgZmlsZSAqLwo+ICsJaWd0X2tleV9maWxlID0gZ19rZXlfZmlsZV9uZXco KTsKPiArCXJldCA9IGdfa2V5X2ZpbGVfbG9hZF9mcm9tX2ZpbGUoaWd0X2tleV9maWxlLCBrZXlf ZmlsZV9sb2MsCj4gKwkJCQkJR19LRVlfRklMRV9OT05FLCAmZXJyb3IpOwo+ICsJaWYgKCFyZXQp IHsKPiArCQlnX2Vycm9yX2ZyZWUoZXJyb3IpOwo+ICsJCWdfa2V5X2ZpbGVfZnJlZShpZ3Rfa2V5 X2ZpbGUpOwo+ICsJCWlndF9rZXlfZmlsZSA9IE5VTEw7Cj4gKwo+ICsJCXJldHVybjsKPiArCX0K PiArCj4gKwlnX2NsZWFyX2Vycm9yKCZlcnJvcik7Cj4gKwo+ICsJaWYgKCFpZ3RfcmNfZGV2aWNl KQo+ICsJCWlndF9yY19kZXZpY2UgPQlnX2tleV9maWxlX2dldF9zdHJpbmcoaWd0X2tleV9maWxl LCAiQ29tbW9uIiwKPiArCQkJCQkJICAgICAgIkRldmljZSIsICZlcnJvcik7Cj4gKwo+ICsJaWYg KGlndF9yY19kZXZpY2UpIHsKPiArCQlpZ3RfZGV2aWNlX2ZpbHRlcl9hZGQoaWd0X3JjX2Rldmlj ZSk7Cj4gKwkJZ19kZXZpY2UgPSB0cnVlOwo+ICsJfQo+ICsKPiArCWdfY2xlYXJfZXJyb3IoJmVy cm9yKTsKPiArfQo+ICsKPiAraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiArewo+ ICsJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7Cj4gKwkJeyJwcmludC1k ZXRhaWwiLCAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBPUFRfUFJJTlRfREVUQUlMfSwK PiArCQl7Imxpc3QtdmVuZG9ycyIsICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsIE9QVF9M SVNUX1ZFTkRPUlN9LAo+ICsJCXsibGlzdC1maWx0ZXItdHlwZXMiLCBub19hcmd1bWVudCwgICAg ICAgTlVMTCwgT1BUX0xJU1RfRklMVEVSU30sCj4gKwkJeyJkZXZpY2UiLCAgICAgICAgICAgIHJl cXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBPUFRfREVWSUNFfSwKPiArCQl7ImhlbHAiLCAgICAgICAg ICAgICAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsIE9QVF9IRUxQfSwKPiArCQl7MCwgMCwgMCwg MH0KPiArCX07Cj4gKwlpbnQgYywgaW5kZXggPSAwOwo+ICsJY29uc3QgY2hhciAqZW52Owo+ICsJ ZW51bSBpZ3RfZGV2aWNlc19wcmludF90eXBlIHByaW50dHlwZSA9IElHVF9QUklOVF9TSU1QTEU7 Cj4gKwo+ICsJZW52ID0gZ2V0ZW52KCJJR1RfREVWSUNFIik7Cj4gKwlpZiAoZW52KSB7Cj4gKwkJ aWd0X2RldmljZV9maWx0ZXJfYWRkKGVudik7Cj4gKwkJZ19kZXZpY2UgPSB0cnVlOwo+ICsJfQo+ ICsKPiArCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJwdmxkOmgiLAo+ICsJ CQkJbG9uZ19vcHRpb25zLCAmaW5kZXgpKSAhPSAtMSkgewo+ICsJCXN3aXRjaChjKSB7Cj4gKwo+ ICsJCWNhc2UgT1BUX1BSSU5UX0RFVEFJTDoKPiArCQkJcHJpbnR0eXBlID0gSUdUX1BSSU5UX0RF VEFJTDsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBPUFRfTElTVF9WRU5ET1JTOgo+ICsJCQlnX3No b3dfdmVuZG9ycyA9IHRydWU7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgT1BUX0xJU1RfRklMVEVS UzoKPiArCQkJZ19saXN0X2ZpbHRlcnMgPSB0cnVlOwo+ICsJCQlicmVhazsKPiArCQljYXNlIE9Q VF9ERVZJQ0U6Cj4gKwkJCWdfZGV2aWNlID0gdHJ1ZTsKPiArCQkJaWYgKGdldGVudigiSUdUX0RF VklDRSIpICYmIGlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCkpIHsKPiArCQkJCXVuc2V0ZW52KCJJ R1RfREVWSUNFIik7Cj4gKwkJCQlpZ3RfcmNfZGV2aWNlID0gTlVMTDsKPiArCQkJCWlndF9kZXZp Y2VfZmlsdGVyX2ZyZWVfYWxsKCk7Cj4gKwkJCX0KPiArCQkJaWd0X2RldmljZV9maWx0ZXJfYWRk KG9wdGFyZyk7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgT1BUX0hFTFA6Cj4gKwkJCWdfaGVscCA9 IHRydWU7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KPiArCWNvbW1vbl9pbml0X2NvbmZpZygp Owo+ICsKPiArCWlmIChnX2hlbHApIHsKPiArCQlwcmludGYoIiVzXG4iLCB1c2FnZV9zdHIpOwo+ ICsJCWV4aXQoMCk7Cj4gKwl9Cj4gKwo+ICsJaWYgKGdfc2hvd192ZW5kb3JzKSB7Cj4gKwkJaWd0 X2RldmljZXNfcHJpbnRfdmVuZG9ycygpOwo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICsKPiArCWlm IChnX2xpc3RfZmlsdGVycykgewo+ICsJCWlndF9kZXZpY2VfcHJpbnRfZmlsdGVyX3R5cGVzKCk7 Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICsJaWd0X2RldmljZXNfc2NhbihmYWxzZSk7Cj4g Kwo+ICsJaWYgKGdldGVudigiSUdUX0RFVklDRSIpKSB7Cj4gKwkJcHJpbnRmKCJOb3RpY2U6IFVz aW5nIElHVF9ERVZJQ0UgZGV2aWNlIHNldHRpbmdzIFslc11cbiIsCj4gKwkJICAgICAgIGdldGVu digiSUdUX0RFVklDRSIpKTsKPiArCX0gZWxzZSBpZiAoaWd0X3JjX2RldmljZSkgewo+ICsJCXBy aW50ZigiTm90aWNlOiBVc2luZyAuaWd0cmMgZGV2aWNlIHNldHRpbmdzIFslc11cbiIsCj4gKwkJ ICAgICAgIGlndF9yY19kZXZpY2UpOwo+ICsJfSBlbHNlIHsKPiArCQlpZiAoaWd0X2RldmljZV9m aWx0ZXJfY291bnQoKSkKPiArCQkJcHJpbnRmKCJOb3RpY2U6IFVzaW5nIC0tZGV2aWNlIGZpbHRl cnNcbiIpOwo+ICsJfQoKd293LCB0aGlzIG1pbWlja2luZyBpZ3RfY29yZSBtYWRlIHRoaXMgcmVh bGx5IGhhcmQgdG8gZm9sbG93Li4uCgpub3RlIHRvIHNlbGY6IHJld29yayBib3RoLCBhbmQgdXNl IGlndF9sb2FkX2lndHJjKCkgb25jZSBbUGV0cmkncyBwYXRjaF0KbGFuZHMuCgpbUGV0cmkncyBw YXRjaF06IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8zMjk3NjIvCgpU aGUgb25seSB0aGluayB0aGF0IHdhcyBhIGJpdCBjb25mdXNpbmcgZm9yIG1lIGlzIHRoYXQgdGhl cmUgaXMgbm8KKGNsZWFyKSB3YXkgb2YgZ2V0dGluZyByaWQgb2YgYSBmaWx0ZXIgc2V0IGVsc2V3 aGVyZSwgZS5nLjoKCiAkIGV4cG9ydCBJR1RfREVWSUNFPXZnZW06Y2FyZD0wCgogJCBidWlsZC90 b29scy9sc2dwdQogIE5vdGljZTogVXNpbmcgSUdUX0RFVklDRSBkZXZpY2Ugc2V0dGluZ3MgW3Zn ZW06Y2FyZD0wXQogID09PSBEZXZpY2UgZmlsdGVyIGxpc3QgPT09CiAgWyAwXTogdmdlbTpjYXJk PTAKCiAgPT09IFRlc3RpbmcgZGV2aWNlIG9wZW4gPT09CiAgWyAwXTogTm8gZGV2aWNlIGZvdW5k IGZvciBmaWx0ZXIKCiAkIGJ1aWxkL3Rvb2xzL2xzZ3B1IC0tZGV2aWNlCiAgYnVpbGQvdG9vbHMv bHNncHU6IG9wdGlvbiAnLS1kZXZpY2UnIHJlcXVpcmVzIGFuIGFyZ3VtZW50CiAgTm90aWNlOiBV c2luZyBJR1RfREVWSUNFIGRldmljZSBzZXR0aW5ncyBbdmdlbTpjYXJkPTBdCiAgPT09IERldmlj ZSBmaWx0ZXIgbGlzdCA9PT0KICBbIDBdOiB2Z2VtOmNhcmQ9MAoKICA9PT0gVGVzdGluZyBkZXZp Y2Ugb3BlbiA9PT0KICBbIDBdOiBObyBkZXZpY2UgZm91bmQgZm9yIGZpbHRlcgoKICQgYnVpbGQv dG9vbHMvbHNncHUgLS1kZXZpY2UgIiIKICA9PT0gRGV2aWNlIGZpbHRlciBsaXN0ID09PQoKICA9 PT0gVGVzdGluZyBkZXZpY2Ugb3BlbiA9PT0KCiAkIGJ1aWxkL3Rvb2xzL2xzZ3B1IC0tZGV2aWNl ICIqIgogIChsc2dwdTo5Mjc1KSBpZ3RfZGV2aWNlX3NjYW4tV0FSTklORzogTm8gZmlsdGVyIHdp dGggbmFtZSBbKl0KICAobHNncHU6OTI3NSkgaWd0X2RldmljZV9zY2FuLVdBUk5JTkc6IFdhcm5p bmcgb24gY29uZGl0aW9uICFpc192YWxpZCBpbiBmdW5jdGlvbiBpZ3RfZGV2aWNlX2ZpbHRlcl9h ZGQsIGZpbGUgLi4vbGliL2lndF9kZXZpY2Vfc2Nhbi5jOjEyNzQKICA9PT0gRGV2aWNlIGZpbHRl ciBsaXN0ID09PQoKICA9PT0gVGVzdGluZyBkZXZpY2Ugb3BlbiA9PT0KCiAkIGJ1aWxkL3Rvb2xz L2xzZ3B1IC0tZGV2aWNlICJhbnkiCiAgKGxzZ3B1OjkyOTYpIGlndF9kZXZpY2Vfc2Nhbi1XQVJO SU5HOiBObyBmaWx0ZXIgd2l0aCBuYW1lIFthbnldCiAgKGxzZ3B1OjkyOTYpIGlndF9kZXZpY2Vf c2Nhbi1XQVJOSU5HOiBXYXJuaW5nIG9uIGNvbmRpdGlvbiAhaXNfdmFsaWQgaW4gZnVuY3Rpb24g aWd0X2RldmljZV9maWx0ZXJfYWRkLCBmaWxlIC4uL2xpYi9pZ3RfZGV2aWNlX3NjYW4uYzoxMjc0 CiAgPT09IERldmljZSBmaWx0ZXIgbGlzdCA9PT0KCiAgPT09IFRlc3RpbmcgZGV2aWNlIG9wZW4g PT09CgpCdXQgSSBkb24ndCB0aGluayBpdCB3aWxsIGhhdW50IG1hbnkgcGVvcGxlIGFuZCBpdCBj bGVhcmx5IHN0YXRlcyB3aGF0CmlzIGdvaW5nIG9uIHdpdGggdGhlIGZpbHRlcnMuIFdlIGNhbiBm aXggdGhlIGJlaGF2aW9yIGZvciAiIiBvciAiYW55IgpsYXRlci4KCkknbGwgb3BlbiBpc3N1ZXMg YmFzZWQgb24gdGhlIHR3byBub3RlcyBhYm92ZSB3aGVuIG1lcmdlaW5nIHRoZSBzZXJpZXMuCgpS ZXZpZXdlZC1ieTogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgoK PiArCj4gKwlpZiAoZ19kZXZpY2UpIHsKPiArCQlpbnQgbiA9IGlndF9kZXZpY2VfZmlsdGVyX2Nv dW50KCk7Cj4gKwkJcHJpbnRmKCI9PT0gRGV2aWNlIGZpbHRlciBsaXN0ID09PVxuIik7Cj4gKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKPiArCQkJcHJpbnRmKCJbJTJkXTogJXNcbiIs IGksCj4gKwkJCSAgICAgICBpZ3RfZGV2aWNlX2ZpbHRlcl9nZXQoaSkpOwo+ICsJCX0KPiArCQlw cmludGYoIlxuIik7Cj4gKwo+ICsJCXByaW50ZigiPT09IFRlc3RpbmcgZGV2aWNlIG9wZW4gPT09 XG4iKTsKPiArCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewo+ICsJCQlzdHJ1Y3QgaWd0 X2RldmljZV9jYXJkIGNhcmQ7Cj4gKwkJCWNvbnN0IGNoYXIgKmZpbHRlciA9IGlndF9kZXZpY2Vf ZmlsdGVyX2dldChpKTsKPiArCj4gKwkJCWlmICghaWd0X2RldmljZV9jYXJkX21hdGNoKGZpbHRl ciwgJmNhcmQpKSB7Cj4gKwkJCQlwcmludGYoIlslMmRdOiBObyBkZXZpY2UgZm91bmQgZm9yIGZp bHRlclxuXG4iLAo+ICsJCQkJICAgICAgIGkpOwo+ICsJCQkJY29udGludWU7Cj4gKwkJCX0KPiAr CQkJcHJpbnRmKCJbJTJkXTogRGV2aWNlIGRldGFpbDpcbiIsIGkpOwo+ICsJCQlwcmludF9jYXJk KCZjYXJkKTsKPiArCQkJdGVzdF9kZXZpY2Vfb3BlbigmY2FyZCk7Cj4gKwkJCWlmIChwcmludHR5 cGUgPT0gSUdUX1BSSU5UX0RFVEFJTCkgewo+ICsJCQkJcHJpbnRmKCJcbiIpOwo+ICsJCQkJaWd0 X2RldmljZXNfcHJpbnQocHJpbnR0eXBlKTsKPiArCQkJfQo+ICsJCQlwcmludGYoIi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwo+ICsJCX0KPiArCj4gKwkJ cmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICsJaWd0X2RldmljZXNfcHJpbnQocHJpbnR0eXBlKTsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+IGRpZmYgLS1naXQgYS90b29scy9tZXNvbi5idWlsZCBiL3Rv b2xzL21lc29uLmJ1aWxkCj4gaW5kZXggNmU3MmIyNjMuLjliM2EyYTY5IDEwMDY0NAo+IC0tLSBh L3Rvb2xzL21lc29uLmJ1aWxkCj4gKysrIGIvdG9vbHMvbWVzb24uYnVpbGQKPiBAQCAtMzYsNiAr MzYsNyBAQCB0b29sc19wcm9ncyA9IFsKPiAgCSdpbnRlbF9nZW1faW5mbycsCj4gIAknaW50ZWxf Z3Z0Z190ZXN0JywKPiAgCSdkcGNkX3JlZycsCj4gKwknbHNncHUnLAo+ICBdCj4gIHRvb2xfZGVw cyA9IGlndF9kZXBzCj4gIAo+IC0tIAo+IDIuMjMuMAo+IApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXY=