From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id C2CBC8918F for ; Wed, 4 Sep 2019 10:37:13 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Wed, 4 Sep 2019 12:37:01 +0200 Message-Id: <20190904103701.20490-4-zbigniew.kempczynski@intel.com> In-Reply-To: <20190904103701.20490-1-zbigniew.kempczynski@intel.com> References: <20190904103701.20490-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [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: igt-dev@lists.freedesktop.org Cc: Daniel Vetter , Petri Latvala List-ID: VG9vbCB1c2VzIGRldmljZSBzZWxlY3Rpb24gQVBJIHRvIHNjYW4gYW5kIGRpc3BsYXkgR1BVIGRl dmljZXMuCkl0IGNhbiBiZSB1c2VkIHRvIGNoZWNrIGZpbHRlciBjb3JyZWN0bmVzcyBhcyB3ZWxs IGFzIG9yZGVyCm9mIGZpbHRlciBhcHBseWluZyAoLmlndHJjLCBJR1RfREVWSUNFIGFuZCAtLWRl dmljZSBhcmd1bWVudCkuCgpTaWduZWQtb2ZmLWJ5OiBaYmlnbmlldyBLZW1wY3p5xYRza2kgPHpi aWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KQ2M6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRp dXN6LmhpbGVyQGludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4K Q2M6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgotLS0KIHRvb2xzL01h a2VmaWxlLnNvdXJjZXMgfCAgIDEgKwogdG9vbHMvbHNncHUuYyAgICAgICAgICB8IDI5OSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvbWVzb24uYnVpbGQg ICAgICB8ICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDMwMSBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgdG9vbHMvbHNncHUuYwoKZGlmZiAtLWdpdCBhL3Rvb2xzL01ha2VmaWxlLnNv dXJjZXMgYi90b29scy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IDUwNzA2ZjQxLi4wZTY3YjY1NCAx MDA2NDQKLS0tIGEvdG9vbHMvTWFrZWZpbGUuc291cmNlcworKysgYi90b29scy9NYWtlZmlsZS5z b3VyY2VzCkBAIC0zMyw2ICszMyw3IEBAIHRvb2xzX3Byb2dfbGlzdHMgPQkJXAogCWludGVsX3dh dGVybWFyawkJXAogCWludGVsX2dlbV9pbmZvCQlcCiAJaW50ZWxfZ3Z0Z190ZXN0ICAgICBcCisJ bHNncHUJCQlcCiAJJChOVUxMKQogCiBkaXN0X2Jpbl9TQ1JJUFRTID0gaW50ZWxfZ3B1X2FicnQK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xzZ3B1LmMgYi90b29scy9sc2dwdS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwLi45NjRiY2Y4OAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xz L2xzZ3B1LmMKQEAgLTAsMCArMSwyOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRl bCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBo KSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z IG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJ RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklH SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICog TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FS RS4KKyAqCisgKi8KKworI2luY2x1ZGUgImlndF9kZXZpY2Vfc2Nhbi5oIgorI2luY2x1ZGUgImln dC5oIgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVk ZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNp bmNsdWRlIDxnbGliLmg+CisKKy8qKgorICogU0VDVElPTjpsc2dwdQorICogQHNob3J0X2Rlc2Ny aXB0aW9uOiBsc2dwdQorICogQHRpdGxlOiBsc2dwdQorICogQGluY2x1ZGU6IGxzZ3B1LmMKKyAq CisgKiAjIGxzZ3B1CisgKgorICogVGhlIGRldmljZXMgY2FuIGJlIHNjYW5uZWQgYW5kIGRpc3Bs YXllZCB1c2luZyAnbHNncHUnIHRvb2wuIFRvb2wgYWxzbworICogZGlzcGxheXMgcHJvcGVydGll cyBhbmQgc3lzYXR0cnMgKC1wIHN3aXRjaCwgbWVhbnMgcHJpbnQgZGV0YWlsKSB3aGljaAorICog Y2FuIGJlIHVzZWQgZHVyaW5nIGZpbHRlciBpbXBsZW1lbnRhdGlvbi4KKyAqCisgKiBUb29sIGNh biBhbHNvIGJlIHVzZWQgdG8gdHJ5IG91dCBmaWx0ZXJzLgorICogVG8gc2VsZWN0IGRldmljZSB1 c2UgJy1kJyBvciAnLS1kZXZpY2UnIGFyZ3VtZW50IGxpa2U6CisgKgorICogfFs8IS0tIGxhbmd1 YWdlPSJwbGFpbiIgLS0+CisgKiAuL2xzZ3B1IC1kICdwY2k6dmVuZG9yPUludGVsJworICogPT09 IERldmljZSBmaWx0ZXIgbGlzdCA9PT0KKyAqIFsgMF06IHBjaTp2ZW5kb3I9SW50ZWwKKworICog PT09IFRlc3RpbmcgZGV2aWNlIG9wZW4gPT09CisgKiBzdWJzeXN0ZW0gICA6IHBjaQorICogY2hp cHNldCAgICAgOiAxCisgKiBkcm0gY2FyZCAgICA6IC9kZXYvZHJpL2NhcmQwCisgKiBkcm0gcmVu ZGVyICA6IC9kZXYvZHJpL3JlbmRlckQxMjgKKyAqIERldmljZSAvZGV2L2RyaS9jYXJkMCBzdWNj ZXNzZnVsbHkgb3BlbmVkCisgKiBEZXZpY2UgL2Rldi9kcmkvcmVuZGVyRDEyOCBzdWNjZXNzZnVs bHkgb3BlbmVkCisgKiBdfAorICoKKyAqIEFkZGl0aW9uYWxseSBsc2dwdSB0cmllcyB0byBvcGVu IHRoZSBjYXJkIGFuZCByZW5kZXIgbm9kZXMgdG8gdmVyaWZ5CisgKiBwZXJtaXNzaW9ucy4gSXQg YWxzbyB1c2VzIElHVCB2YXJpYWJsZSBzZWFyY2ggb3JkZXI6CisgKiAtIHVzZSAtLWRldmljZSBm aXJzdCAoaXQgb3ZlcnJpZGVzIElHVF9ERVZJQ0UgYW5kIC5pZ3RyYyBDb21tb246OkRldmljZQor ICogICBzZXR0aW5ncykKKyAqIC0gdXNlIElHVF9ERVZJQ0UgZW52aXJvbWVudCB2YXJpYWJsZSBp ZiBubyAtLWRldmljZSBhcmUgcGFzc2VkCisgKiAtIHVzZSAuaWd0cmMgQ29tbW9uOjpEZXZpY2Ug aWYgbm8gLS1kZXZpY2Ugbm9yIElHVF9ERVZJQ0UgYXJlIHBhc3NlZAorICovCisKK2VudW0gewor CU9QVF9QUklOVF9ERVRBSUwgICA9ICdwJywKKwlPUFRfTElTVF9WRU5ET1JTICAgPSAndicsCisJ T1BUX0xJU1RfRklMVEVSUyAgID0gJ2wnLAorCU9QVF9ERVZJQ0UgICAgICAgICA9ICdkJywKKwlP UFRfSEVMUCAgICAgICAgICAgPSAnaCcKK307CisKK3N0YXRpYyBib29sIGdfc2hvd192ZW5kb3Jz Oworc3RhdGljIGJvb2wgZ19saXN0X2ZpbHRlcnM7CitzdGF0aWMgYm9vbCBnX2RldmljZTsKK3N0 YXRpYyBib29sIGdfaGVscDsKK3N0YXRpYyBjaGFyICppZ3RfcmNfZGV2aWNlOworCitzdGF0aWMg Y29uc3QgY2hhciAqdXNhZ2Vfc3RyID0KKwkidXNhZ2U6IGxzZ3B1IFtvcHRpb25zXVxuXG4iCisJ Ik9wdGlvbnM6XG4iCisJIiAgLXAsIC0tcHJpbnQtZGV0YWlscyAgICAgICAgIFByaW50IGRldmlj ZXMgd2l0aCBkZXRhaWxzXG4iCisJIiAgLXYsIC0tbGlzdC12ZW5kb3JzICAgICAgICAgIExpc3Qg cmVjb2duaXplZCB2ZW5kb3JzXG4iCisJIiAgLWwsIC0tbGlzdC1maWx0ZXItdHlwZXMgICAgIExp c3QgcmVnaXN0ZXJlZCBkZXZpY2UgZmlsdGVycyB0eXBlc1xuIgorCSIgIC1kLCAtLWRldmljZSBm aWx0ZXIgICAgICAgICBEZXZpY2UgZmlsdGVyLCBjYW4gYmUgZ2l2ZW4gbXVsdGlwbGUgdGltZXNc biIKKwkiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2Fn ZSBhbmQgZXhpdFxuIjsKKworc3RhdGljIHZvaWQgdGVzdF9kZXZpY2Vfb3BlbihzdHJ1Y3QgaWd0 X2RldmljZV9jYXJkICpjYXJkKQoreworCWludCBmZDsKKworCWlmICghY2FyZCkKKwkJcmV0dXJu OworCisJZmQgPSBkcm1fb3Blbl9jYXJkKGNhcmQpOworCWlmIChmZCA+PSAwKSB7CisJCXByaW50 ZigiRGV2aWNlICVzIHN1Y2Nlc3NmdWxseSBvcGVuZWRcbiIsIGNhcmQtPmNhcmQpOworCQljbG9z ZShmZCk7CisJfSBlbHNlIHsKKwkJaWYgKHN0cmxlbihjYXJkLT5jYXJkKSkKKwkJCXByaW50Zigi Q2Fubm90IG9wZW4gY2FyZCAlcyBkZXZpY2VcbiIsIGNhcmQtPmNhcmQpOworCQllbHNlCisJCQlw cmludGYoIkNhbm5vdCBvcGVuIGNhcmQgZGV2aWNlLCBlbXB0eSBuYW1lXG4iKTsKKwl9CisKKwlm ZCA9IGRybV9vcGVuX3JlbmRlcihjYXJkKTsKKwlpZiAoZmQgPj0gMCkgeworCQlwcmludGYoIkRl dmljZSAlcyBzdWNjZXNzZnVsbHkgb3BlbmVkXG4iLCBjYXJkLT5yZW5kZXIpOworCQljbG9zZShm ZCk7CisJfSBlbHNlIHsKKwkJaWYgKHN0cmxlbihjYXJkLT5yZW5kZXIpKQorCQkJcHJpbnRmKCJD YW5ub3Qgb3BlbiByZW5kZXIgJXMgZGV2aWNlXG4iLCBjYXJkLT5yZW5kZXIpOworCQllbHNlCisJ CQlwcmludGYoIkNhbm5vdCBvcGVuIHJlbmRlciBkZXZpY2UsIGVtcHR5IG5hbWVcbiIpOworCX0K K30KKworc3RhdGljIHZvaWQgcHJpbnRfY2FyZChzdHJ1Y3QgaWd0X2RldmljZV9jYXJkICpjYXJk KQoreworCWlmICghY2FyZCkKKwkJcmV0dXJuOworCisJcHJpbnRmKCJzdWJzeXN0ZW0gICA6ICVz XG4iLCBjYXJkLT5zdWJzeXN0ZW0pOworCXByaW50ZigiY2hpcHNldCAgICAgOiAleFxuIiwgY2Fy ZC0+Y2hpcHNldCk7CisJcHJpbnRmKCJkcm0gY2FyZCAgICA6ICVzXG4iLCBjYXJkLT5jYXJkKTsK KwlwcmludGYoImRybSByZW5kZXIgIDogJXNcbiIsIGNhcmQtPnJlbmRlcik7Cit9CisKKy8qIFBh cnRpYWxseSBjb3BpZWQgZnJvbSBpZ3RfY29yZSB0byBzaW11bGF0ZSBkZXZpY2Ugc2VsZWN0aW9u IG9yZGVyOgorICogMS4gLS1kZXZpY2UgICAgICAgIChJR1RfREVWSUNFIGFuZCAuaWd0cmMgQ29t bW9uOjpEZXZpY2UgYXJlIGlnbm9yZWQpCisgKiAyLiBJR1RfREVWSUNFIGVudiAgKC5pZ3RyYyBD b21tb246OkRldmljZSBpcyBpZ25vcmVkKQorICogMy4gLmlndHJjICAgICAgICAgIChvdmVycmlk ZXMKKyAqLworc3RhdGljIHZvaWQgY29tbW9uX2luaXRfY29uZmlnKHZvaWQpCit7CisJY2hhciAq a2V5X2ZpbGVfZW52ID0gTlVMTDsKKwljaGFyICprZXlfZmlsZV9sb2MgPSBOVUxMOworCUdFcnJv ciAqZXJyb3IgPSBOVUxMOworCUdLZXlGaWxlICppZ3Rfa2V5X2ZpbGU7CisJaW50IHJldDsKKwor CS8qIEZpbHRlciBjb3VudCA+IDAsIGp1c3Qgc2tpcCAuaWd0cmMgKi8KKwlpZiAoaWd0X2Rldmlj ZV9maWx0ZXJfY291bnQoKSkKKwkJcmV0dXJuOworCisJLyogRGV0ZXJtaW5lIGlndCBjb25maWcg cGF0aCAqLworCWtleV9maWxlX2VudiA9IGdldGVudigiSUdUX0NPTkZJR19QQVRIIik7CisJaWYg KGtleV9maWxlX2VudikgeworCQlrZXlfZmlsZV9sb2MgPSBrZXlfZmlsZV9lbnY7CisJfSBlbHNl IHsKKwkJa2V5X2ZpbGVfbG9jID0gbWFsbG9jKDEwMCk7CisJCXNucHJpbnRmKGtleV9maWxlX2xv YywgMTAwLCAiJXMvLmlndHJjIiwgZ19nZXRfaG9tZV9kaXIoKSk7CisJfQorCisJLyogTG9hZCBp Z3QgY29uZmlnIGZpbGUgKi8KKwlpZ3Rfa2V5X2ZpbGUgPSBnX2tleV9maWxlX25ldygpOworCXJl dCA9IGdfa2V5X2ZpbGVfbG9hZF9mcm9tX2ZpbGUoaWd0X2tleV9maWxlLCBrZXlfZmlsZV9sb2Ms CisJCQkJCUdfS0VZX0ZJTEVfTk9ORSwgJmVycm9yKTsKKwlpZiAoIXJldCkgeworCQlnX2Vycm9y X2ZyZWUoZXJyb3IpOworCQlnX2tleV9maWxlX2ZyZWUoaWd0X2tleV9maWxlKTsKKwkJaWd0X2tl eV9maWxlID0gTlVMTDsKKworCQlyZXR1cm47CisJfQorCisJZ19jbGVhcl9lcnJvcigmZXJyb3Ip OworCisJaWYgKCFpZ3RfcmNfZGV2aWNlKQorCQlpZ3RfcmNfZGV2aWNlID0JZ19rZXlfZmlsZV9n ZXRfc3RyaW5nKGlndF9rZXlfZmlsZSwgIkNvbW1vbiIsCisJCQkJCQkgICAgICAiRGV2aWNlIiwg JmVycm9yKTsKKworCWlmIChpZ3RfcmNfZGV2aWNlKSB7CisJCWlndF9kZXZpY2VfZmlsdGVyX2Fk ZChpZ3RfcmNfZGV2aWNlKTsKKwkJZ19kZXZpY2UgPSB0cnVlOworCX0KKworCWdfY2xlYXJfZXJy b3IoJmVycm9yKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlz dGF0aWMgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsKKwkJeyJwcmludC1kZXRhaWwi LCAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBPUFRfUFJJTlRfREVUQUlMfSwKKwkJeyJs aXN0LXZlbmRvcnMiLCAgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBPUFRfTElTVF9WRU5E T1JTfSwKKwkJeyJsaXN0LWZpbHRlci10eXBlcyIsIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBP UFRfTElTVF9GSUxURVJTfSwKKwkJeyJkZXZpY2UiLCAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3Vt ZW50LCBOVUxMLCBPUFRfREVWSUNFfSwKKwkJeyJoZWxwIiwgICAgICAgICAgICAgIG5vX2FyZ3Vt ZW50LCAgICAgICBOVUxMLCBPUFRfSEVMUH0sCisJCXswLCAwLCAwLCAwfQorCX07CisJaW50IGMs IGluZGV4ID0gMDsKKwljb25zdCBjaGFyICplbnY7CisJZW51bSBpZ3RfZGV2aWNlc19wcmludF90 eXBlIHByaW50dHlwZSA9IElHVF9QUklOVF9TSU1QTEU7CisKKwllbnYgPSBnZXRlbnYoIklHVF9E RVZJQ0UiKTsKKwlpZiAoZW52KSB7CisJCWlndF9kZXZpY2VfZmlsdGVyX2FkZChlbnYpOworCQln X2RldmljZSA9IHRydWU7CisJfQorCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJn diwgInB2bGQ6aCIsCisJCQkJbG9uZ19vcHRpb25zLCAmaW5kZXgpKSAhPSAtMSkgeworCQlzd2l0 Y2goYykgeworCisJCWNhc2UgT1BUX1BSSU5UX0RFVEFJTDoKKwkJCXByaW50dHlwZSA9IElHVF9Q UklOVF9ERVRBSUw7CisJCQlicmVhazsKKwkJY2FzZSBPUFRfTElTVF9WRU5ET1JTOgorCQkJZ19z aG93X3ZlbmRvcnMgPSB0cnVlOworCQkJYnJlYWs7CisJCWNhc2UgT1BUX0xJU1RfRklMVEVSUzoK KwkJCWdfbGlzdF9maWx0ZXJzID0gdHJ1ZTsKKwkJCWJyZWFrOworCQljYXNlIE9QVF9ERVZJQ0U6 CisJCQlnX2RldmljZSA9IHRydWU7CisJCQlpZiAoZ2V0ZW52KCJJR1RfREVWSUNFIikgJiYgaWd0 X2RldmljZV9maWx0ZXJfY291bnQoKSkgeworCQkJCXVuc2V0ZW52KCJJR1RfREVWSUNFIik7CisJ CQkJaWd0X3JjX2RldmljZSA9IE5VTEw7CisJCQkJaWd0X2RldmljZV9maWx0ZXJfZnJlZV9hbGwo KTsKKwkJCX0KKwkJCWlndF9kZXZpY2VfZmlsdGVyX2FkZChvcHRhcmcpOworCQkJYnJlYWs7CisJ CWNhc2UgT1BUX0hFTFA6CisJCQlnX2hlbHAgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisJ Y29tbW9uX2luaXRfY29uZmlnKCk7CisKKwlpZiAoZ19oZWxwKSB7CisJCXByaW50ZigiJXNcbiIs IHVzYWdlX3N0cik7CisJCWV4aXQoMCk7CisJfQorCisJaWYgKGdfc2hvd192ZW5kb3JzKSB7CisJ CWlndF9kZXZpY2VzX3ByaW50X3ZlbmRvcnMoKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKGdf bGlzdF9maWx0ZXJzKSB7CisJCWlndF9kZXZpY2VfcHJpbnRfZmlsdGVyX3R5cGVzKCk7CisJCXJl dHVybiAwOworCX0KKworCWlndF9kZXZpY2VzX3NjYW4oZmFsc2UpOworCisJaWYgKGdldGVudigi SUdUX0RFVklDRSIpKSB7CisJCXByaW50ZigiTm90aWNlOiBVc2luZyBJR1RfREVWSUNFIGRldmlj ZSBzZXR0aW5ncyBbJXNdXG4iLAorCQkgICAgICAgZ2V0ZW52KCJJR1RfREVWSUNFIikpOworCX0g ZWxzZSBpZiAoaWd0X3JjX2RldmljZSkgeworCQlwcmludGYoIk5vdGljZTogVXNpbmcgLmlndHJj IGRldmljZSBzZXR0aW5ncyBbJXNdXG4iLAorCQkgICAgICAgaWd0X3JjX2RldmljZSk7CisJfSBl bHNlIHsKKwkJaWYgKGlndF9kZXZpY2VfZmlsdGVyX2NvdW50KCkpCisJCQlwcmludGYoIk5vdGlj ZTogVXNpbmcgLS1kZXZpY2UgZmlsdGVyc1xuIik7CisJfQorCisJaWYgKGdfZGV2aWNlKSB7CisJ CWludCBuID0gaWd0X2RldmljZV9maWx0ZXJfY291bnQoKTsKKwkJcHJpbnRmKCI9PT0gRGV2aWNl IGZpbHRlciBsaXN0ID09PVxuIik7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisJ CQlwcmludGYoIlslMmRdOiAlc1xuIiwgaSwKKwkJCSAgICAgICBpZ3RfZGV2aWNlX2ZpbHRlcl9n ZXQoaSkpOworCQl9CisJCXByaW50ZigiXG4iKTsKKworCQlwcmludGYoIj09PSBUZXN0aW5nIGRl dmljZSBvcGVuID09PVxuIik7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisJCQlz dHJ1Y3QgaWd0X2RldmljZV9jYXJkIGNhcmQ7CisJCQljb25zdCBjaGFyICpmaWx0ZXIgPSBpZ3Rf ZGV2aWNlX2ZpbHRlcl9nZXQoaSk7CisKKwkJCWlmICghaWd0X2RldmljZV9jYXJkX21hdGNoKGZp bHRlciwgJmNhcmQpKSB7CisJCQkJcHJpbnRmKCJbJTJkXTogTm8gZGV2aWNlIGZvdW5kIGZvciBm aWx0ZXJcblxuIiwKKwkJCQkgICAgICAgaSk7CisJCQkJY29udGludWU7CisJCQl9CisJCQlwcmlu dGYoIlslMmRdOiBEZXZpY2UgZGV0YWlsOlxuIiwgaSk7CisJCQlwcmludF9jYXJkKCZjYXJkKTsK KwkJCXRlc3RfZGV2aWNlX29wZW4oJmNhcmQpOworCQkJaWYgKHByaW50dHlwZSA9PSBJR1RfUFJJ TlRfREVUQUlMKSB7CisJCQkJcHJpbnRmKCJcbiIpOworCQkJCWlndF9kZXZpY2VzX3ByaW50KHBy aW50dHlwZSk7CisJCQl9CisJCQlwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS1cbiIpOworCQl9CisKKwkJcmV0dXJuIDA7CisJfQorCisJaWd0X2Rldmlj ZXNfcHJpbnQocHJpbnR0eXBlKTsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdG9vbHMv bWVzb24uYnVpbGQgYi90b29scy9tZXNvbi5idWlsZAppbmRleCA2ZTcyYjI2My4uOWIzYTJhNjkg MTAwNjQ0Ci0tLSBhL3Rvb2xzL21lc29uLmJ1aWxkCisrKyBiL3Rvb2xzL21lc29uLmJ1aWxkCkBA IC0zNiw2ICszNiw3IEBAIHRvb2xzX3Byb2dzID0gWwogCSdpbnRlbF9nZW1faW5mbycsCiAJJ2lu dGVsX2d2dGdfdGVzdCcsCiAJJ2RwY2RfcmVnJywKKwknbHNncHUnLAogXQogdG9vbF9kZXBzID0g aWd0X2RlcHMKIAotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXY=