From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id CDE1E89E7B for ; Thu, 24 Oct 2019 11:05:46 +0000 (UTC) From: Arkadiusz Hiler Date: Thu, 24 Oct 2019 14:05:14 +0300 Message-ID: <20191024110515.11741-4-arkadiusz.hiler@intel.com> In-Reply-To: <20191024110515.11741-1-arkadiusz.hiler@intel.com> References: <20191024110515.11741-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 3/4] 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: Petri Latvala List-ID: RnJvbTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5j b20+CgpUb29sIHVzZXMgZGV2aWNlIHNlbGVjdGlvbiBBUEkgdG8gc2NhbiBhbmQgZGlzcGxheSBH UFUgZGV2aWNlcy4KSXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZmlsdGVyIGNvcnJlY3RuZXNzIGFz IHdlbGwgYXMgb3JkZXIKb2YgYXBwbHlpbmcgdGhlIGZpbHRlcnMgKC5pZ3RyYywgSUdUX0RFVklD RSBhbmQgLS1kZXZpY2UgYXJndW1lbnQpLgoKdjIgKEFyZWspOgogKiBkb24ndCBwcmludCBjaGlw IGFzIGl0J3Mgbm8gbG9uZ2VyIHRoZXJlCiAqIG1ha2UgaXQgYSBzZWNvbmQgcGF0Y2gsIGJlZm9y ZSBhbnkgYWx0ZXJhdGlvbnMgdG8gaWd0X2NvcmUgb3IgZHJtdGVzdAogKiB1c2Ugb25seSBhIHNp bmdsZSBmaWx0ZXIKCkNjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNr aUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6Lmhp bGVyQGludGVsLmNvbT4KLS0tCiB0b29scy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsKIHRvb2xz L2xzZ3B1LmMgICAgICAgICAgfCAyOTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHRvb2xzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2Vk LCAyOTcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2xzZ3B1LmMKCmRp ZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5zb3VyY2VzIGIvdG9vbHMvTWFrZWZpbGUuc291cmNl cwppbmRleCBkNzY0ODk1ZC4uYjdhNDNkNDcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL01ha2VmaWxlLnNv dXJjZXMKKysrIGIvdG9vbHMvTWFrZWZpbGUuc291cmNlcwpAQCAtMzMsNiArMzMsNyBAQCB0b29s c19wcm9nX2xpc3RzID0JCVwKIAlpbnRlbF93YXRlcm1hcmsJCVwKIAlpbnRlbF9nZW1faW5mbwkJ XAogCWludGVsX2d2dGdfdGVzdCAgICAgXAorCWxzZ3B1CQkJXAogCSQoTlVMTCkKIAogZGlzdF9i aW5fU0NSSVBUUyA9IGludGVsX2dwdV9hYnJ0CmRpZmYgLS1naXQgYS90b29scy9sc2dwdS5jIGIv dG9vbHMvbHNncHUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZTM4NWFh YTYKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9sc2dwdS5jCkBAIC0wLDAgKzEsMjk1IEBACisv KgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJl IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRo ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl LCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQg dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNs dWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFM TAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkg Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS IERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpbmNsdWRlICJpZ3Rf ZGV2aWNlX3NjYW4uaCIKKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4K KyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RyaW5n Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorCisvKioKKyAqIFNF Q1RJT046bHNncHUKKyAqIEBzaG9ydF9kZXNjcmlwdGlvbjogbHNncHUKKyAqIEB0aXRsZTogbHNn cHUKKyAqIEBpbmNsdWRlOiBsc2dwdS5jCisgKgorICogIyBsc2dwdQorICoKKyAqIFRoZSBkZXZp Y2VzIGNhbiBiZSBzY2FubmVkIGFuZCBkaXNwbGF5ZWQgdXNpbmcgJ2xzZ3B1JyB0b29sLiBUb29s IGFsc28KKyAqIGRpc3BsYXlzIHByb3BlcnRpZXMgYW5kIHN5c2F0dHJzICgtcCBzd2l0Y2gsIG1l YW5zIHByaW50IGRldGFpbCkgd2hpY2gKKyAqIGNhbiBiZSB1c2VkIGR1cmluZyBmaWx0ZXIgaW1w bGVtZW50YXRpb24uCisgKgorICogVG9vbCBjYW4gYWxzbyBiZSB1c2VkIHRvIHRyeSBvdXQgZmls dGVycy4KKyAqIFRvIHNlbGVjdCBkZXZpY2UgdXNlICctZCcgb3IgJy0tZGV2aWNlJyBhcmd1bWVu dCBsaWtlOgorICoKKyAqIHxbPCEtLSBsYW5ndWFnZT0icGxhaW4iIC0tPgorICogLi9sc2dwdSAt ZCAncGNpOnZlbmRvcj1JbnRlbCcKKyAqID09PSBEZXZpY2UgZmlsdGVyIGxpc3QgPT09CisgKiBb IDBdOiBwY2k6dmVuZG9yPUludGVsCisKKyAqID09PSBUZXN0aW5nIGRldmljZSBvcGVuID09PQor ICogc3Vic3lzdGVtICAgOiBwY2kKKyAqIGRybSBjYXJkICAgIDogL2Rldi9kcmkvY2FyZDAKKyAq IGRybSByZW5kZXIgIDogL2Rldi9kcmkvcmVuZGVyRDEyOAorICogRGV2aWNlIC9kZXYvZHJpL2Nh cmQwIHN1Y2Nlc3NmdWxseSBvcGVuZWQKKyAqIERldmljZSAvZGV2L2RyaS9yZW5kZXJEMTI4IHN1 Y2Nlc3NmdWxseSBvcGVuZWQKKyAqIF18CisgKgorICogQWRkaXRpb25hbGx5IGxzZ3B1IHRyaWVz IHRvIG9wZW4gdGhlIGNhcmQgYW5kIHJlbmRlciBub2RlcyB0byB2ZXJpZnkKKyAqIHBlcm1pc3Np b25zLiBJdCBhbHNvIHVzZXMgSUdUIHZhcmlhYmxlIHNlYXJjaCBvcmRlcjoKKyAqIC0gdXNlIC0t ZGV2aWNlIGZpcnN0IChpdCBvdmVycmlkZXMgSUdUX0RFVklDRSBhbmQgLmlndHJjIENvbW1vbjo6 RGV2aWNlCisgKiAgIHNldHRpbmdzKQorICogLSB1c2UgSUdUX0RFVklDRSBlbnZpcm9tZW50IHZh cmlhYmxlIGlmIG5vIC0tZGV2aWNlIGFyZSBwYXNzZWQKKyAqIC0gdXNlIC5pZ3RyYyBDb21tb246 OkRldmljZSBpZiBubyAtLWRldmljZSBub3IgSUdUX0RFVklDRSBhcmUgcGFzc2VkCisgKi8KKwor ZW51bSB7CisJT1BUX1BSSU5UX0RFVEFJTCAgID0gJ3AnLAorCU9QVF9MSVNUX1ZFTkRPUlMgICA9 ICd2JywKKwlPUFRfTElTVF9GSUxURVJTICAgPSAnbCcsCisJT1BUX0RFVklDRSAgICAgICAgID0g J2QnLAorCU9QVF9IRUxQICAgICAgICAgICA9ICdoJworfTsKKworc3RhdGljIGJvb2wgZ19zaG93 X3ZlbmRvcnM7CitzdGF0aWMgYm9vbCBnX2xpc3RfZmlsdGVyczsKK3N0YXRpYyBib29sIGdfZGV2 aWNlOworc3RhdGljIGJvb2wgZ19oZWxwOworc3RhdGljIGNoYXIgKmlndF9yY19kZXZpY2U7CisK K3N0YXRpYyBjb25zdCBjaGFyICp1c2FnZV9zdHIgPQorCSJ1c2FnZTogbHNncHUgW29wdGlvbnNd XG5cbiIKKwkiT3B0aW9uczpcbiIKKwkiICAtcCwgLS1wcmludC1kZXRhaWxzICAgICAgICAgUHJp bnQgZGV2aWNlcyB3aXRoIGRldGFpbHNcbiIKKwkiICAtdiwgLS1saXN0LXZlbmRvcnMgICAgICAg ICAgTGlzdCByZWNvZ25pemVkIHZlbmRvcnNcbiIKKwkiICAtbCwgLS1saXN0LWZpbHRlci10eXBl cyAgICAgTGlzdCByZWdpc3RlcmVkIGRldmljZSBmaWx0ZXJzIHR5cGVzXG4iCisJIiAgLWQsIC0t ZGV2aWNlIGZpbHRlciAgICAgICAgIERldmljZSBmaWx0ZXIsIGNhbiBiZSBnaXZlbiBtdWx0aXBs ZSB0aW1lc1xuIgorCSIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICBTaG93IHRoaXMgaGVs cCBtZXNzYWdlIGFuZCBleGl0XG4iOworCitzdGF0aWMgdm9pZCB0ZXN0X2RldmljZV9vcGVuKHN0 cnVjdCBpZ3RfZGV2aWNlX2NhcmQgKmNhcmQpCit7CisJaW50IGZkOworCisJaWYgKCFjYXJkKQor CQlyZXR1cm47CisKKwlmZCA9IGlndF9vcGVuX2NhcmQoY2FyZCk7CisJaWYgKGZkID49IDApIHsK KwkJcHJpbnRmKCJEZXZpY2UgJXMgc3VjY2Vzc2Z1bGx5IG9wZW5lZFxuIiwgY2FyZC0+Y2FyZCk7 CisJCWNsb3NlKGZkKTsKKwl9IGVsc2UgeworCQlpZiAoc3RybGVuKGNhcmQtPmNhcmQpKQorCQkJ cHJpbnRmKCJDYW5ub3Qgb3BlbiBjYXJkICVzIGRldmljZVxuIiwgY2FyZC0+Y2FyZCk7CisJCWVs c2UKKwkJCXByaW50ZigiQ2Fubm90IG9wZW4gY2FyZCBkZXZpY2UsIGVtcHR5IG5hbWVcbiIpOwor CX0KKworCWZkID0gaWd0X29wZW5fcmVuZGVyKGNhcmQpOworCWlmIChmZCA+PSAwKSB7CisJCXBy aW50ZigiRGV2aWNlICVzIHN1Y2Nlc3NmdWxseSBvcGVuZWRcbiIsIGNhcmQtPnJlbmRlcik7CisJ CWNsb3NlKGZkKTsKKwl9IGVsc2UgeworCQlpZiAoc3RybGVuKGNhcmQtPnJlbmRlcikpCisJCQlw cmludGYoIkNhbm5vdCBvcGVuIHJlbmRlciAlcyBkZXZpY2VcbiIsIGNhcmQtPnJlbmRlcik7CisJ CWVsc2UKKwkJCXByaW50ZigiQ2Fubm90IG9wZW4gcmVuZGVyIGRldmljZSwgZW1wdHkgbmFtZVxu Iik7CisJfQorfQorCitzdGF0aWMgdm9pZCBwcmludF9jYXJkKHN0cnVjdCBpZ3RfZGV2aWNlX2Nh cmQgKmNhcmQpCit7CisJaWYgKCFjYXJkKQorCQlyZXR1cm47CisKKwlwcmludGYoInN1YnN5c3Rl bSAgIDogJXNcbiIsIGNhcmQtPnN1YnN5c3RlbSk7CisJcHJpbnRmKCJkcm0gY2FyZCAgICA6ICVz XG4iLCBjYXJkLT5jYXJkKTsKKwlwcmludGYoImRybSByZW5kZXIgIDogJXNcbiIsIGNhcmQtPnJl bmRlcik7Cit9CisKKy8qIFBhcnRpYWxseSBjb3BpZWQgZnJvbSBpZ3RfY29yZSB0byBzaW11bGF0 ZSBkZXZpY2Ugc2VsZWN0aW9uIG9yZGVyOgorICogMS4gLS1kZXZpY2UgICAgICAgIChJR1RfREVW SUNFIGFuZCAuaWd0cmMgQ29tbW9uOjpEZXZpY2UgYXJlIGlnbm9yZWQpCisgKiAyLiBJR1RfREVW SUNFIGVudiAgKC5pZ3RyYyBDb21tb246OkRldmljZSBpcyBpZ25vcmVkKQorICogMy4gLmlndHJj ICAgICAgICAgIChvdmVycmlkZXMKKyAqLworc3RhdGljIHZvaWQgY29tbW9uX2luaXRfY29uZmln KHZvaWQpCit7CisJY2hhciAqa2V5X2ZpbGVfZW52ID0gTlVMTDsKKwljaGFyICprZXlfZmlsZV9s b2MgPSBOVUxMOworCUdFcnJvciAqZXJyb3IgPSBOVUxMOworCUdLZXlGaWxlICppZ3Rfa2V5X2Zp bGU7CisJaW50IHJldDsKKworCS8qIEZpbHRlciBjb3VudCA+IDAsIGp1c3Qgc2tpcCAuaWd0cmMg Ki8KKwlpZiAoaWd0X2RldmljZV9pc19maWx0ZXJfc2V0KCkpCisJCXJldHVybjsKKworCS8qIERl dGVybWluZSBpZ3QgY29uZmlnIHBhdGggKi8KKwlrZXlfZmlsZV9lbnYgPSBnZXRlbnYoIklHVF9D T05GSUdfUEFUSCIpOworCWlmIChrZXlfZmlsZV9lbnYpIHsKKwkJa2V5X2ZpbGVfbG9jID0ga2V5 X2ZpbGVfZW52OworCX0gZWxzZSB7CisJCWtleV9maWxlX2xvYyA9IG1hbGxvYygxMDApOworCQlz bnByaW50ZihrZXlfZmlsZV9sb2MsIDEwMCwgIiVzLy5pZ3RyYyIsIGdfZ2V0X2hvbWVfZGlyKCkp OworCX0KKworCS8qIExvYWQgaWd0IGNvbmZpZyBmaWxlICovCisJaWd0X2tleV9maWxlID0gZ19r ZXlfZmlsZV9uZXcoKTsKKwlyZXQgPSBnX2tleV9maWxlX2xvYWRfZnJvbV9maWxlKGlndF9rZXlf ZmlsZSwga2V5X2ZpbGVfbG9jLAorCQkJCQlHX0tFWV9GSUxFX05PTkUsICZlcnJvcik7CisJaWYg KCFyZXQpIHsKKwkJZ19lcnJvcl9mcmVlKGVycm9yKTsKKwkJZ19rZXlfZmlsZV9mcmVlKGlndF9r ZXlfZmlsZSk7CisJCWlndF9rZXlfZmlsZSA9IE5VTEw7CisKKwkJcmV0dXJuOworCX0KKworCWdf Y2xlYXJfZXJyb3IoJmVycm9yKTsKKworCWlmICghaWd0X3JjX2RldmljZSkKKwkJaWd0X3JjX2Rl dmljZSA9CWdfa2V5X2ZpbGVfZ2V0X3N0cmluZyhpZ3Rfa2V5X2ZpbGUsICJDb21tb24iLAorCQkJ CQkJICAgICAgIkRldmljZSIsICZlcnJvcik7CisKKwlpZiAoaWd0X3JjX2RldmljZSkgeworCQlp Z3RfZGV2aWNlX2ZpbHRlcl9zZXQoaWd0X3JjX2RldmljZSk7CisJCWdfZGV2aWNlID0gdHJ1ZTsK Kwl9CisKKwlnX2NsZWFyX2Vycm9yKCZlcnJvcik7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCit7CisJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7 CisJCXsicHJpbnQtZGV0YWlsIiwgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX1BS SU5UX0RFVEFJTH0sCisJCXsibGlzdC12ZW5kb3JzIiwgICAgICBub19hcmd1bWVudCwgICAgICAg TlVMTCwgT1BUX0xJU1RfVkVORE9SU30sCisJCXsibGlzdC1maWx0ZXItdHlwZXMiLCBub19hcmd1 bWVudCwgICAgICAgTlVMTCwgT1BUX0xJU1RfRklMVEVSU30sCisJCXsiZGV2aWNlIiwgICAgICAg ICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0RFVklDRX0sCisJCXsiaGVscCIsICAg ICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX0hFTFB9LAorCQl7MCwgMCwg MCwgMH0KKwl9OworCWludCBjLCBpbmRleCA9IDA7CisJY29uc3QgY2hhciAqZW52OworCWVudW0g aWd0X2RldmljZXNfcHJpbnRfdHlwZSBwcmludHR5cGUgPSBJR1RfUFJJTlRfU0lNUExFOworCisJ ZW52ID0gZ2V0ZW52KCJJR1RfREVWSUNFIik7CisJaWYgKGVudikgeworCQlpZ3RfZGV2aWNlX2Zp bHRlcl9zZXQoZW52KTsKKwkJZ19kZXZpY2UgPSB0cnVlOworCX0KKworCXdoaWxlICgoYyA9IGdl dG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJwdmxkOmgiLAorCQkJCWxvbmdfb3B0aW9ucywgJmluZGV4 KSkgIT0gLTEpIHsKKwkJc3dpdGNoKGMpIHsKKworCQljYXNlIE9QVF9QUklOVF9ERVRBSUw6CisJ CQlwcmludHR5cGUgPSBJR1RfUFJJTlRfREVUQUlMOworCQkJYnJlYWs7CisJCWNhc2UgT1BUX0xJ U1RfVkVORE9SUzoKKwkJCWdfc2hvd192ZW5kb3JzID0gdHJ1ZTsKKwkJCWJyZWFrOworCQljYXNl IE9QVF9MSVNUX0ZJTFRFUlM6CisJCQlnX2xpc3RfZmlsdGVycyA9IHRydWU7CisJCQlicmVhazsK KwkJY2FzZSBPUFRfREVWSUNFOgorCQkJZ19kZXZpY2UgPSB0cnVlOworCQkJaWYgKGdldGVudigi SUdUX0RFVklDRSIpICYmIGlndF9kZXZpY2VfaXNfZmlsdGVyX3NldCgpKSB7CisJCQkJdW5zZXRl bnYoIklHVF9ERVZJQ0UiKTsKKwkJCQlpZ3RfcmNfZGV2aWNlID0gTlVMTDsKKwkJCQlpZ3RfZGV2 aWNlX2ZpbHRlcl9mcmVlKCk7CisJCQl9CisJCQlpZ3RfZGV2aWNlX2ZpbHRlcl9zZXQob3B0YXJn KTsKKwkJCWJyZWFrOworCQljYXNlIE9QVF9IRUxQOgorCQkJZ19oZWxwID0gdHJ1ZTsKKwkJCWJy ZWFrOworCQl9CisJfQorCWNvbW1vbl9pbml0X2NvbmZpZygpOworCisJaWYgKGdfaGVscCkgewor CQlwcmludGYoIiVzXG4iLCB1c2FnZV9zdHIpOworCQlleGl0KDApOworCX0KKworCWlmIChnX3No b3dfdmVuZG9ycykgeworCQlpZ3RfZGV2aWNlc19wcmludF92ZW5kb3JzKCk7CisJCXJldHVybiAw OworCX0KKworCWlmIChnX2xpc3RfZmlsdGVycykgeworCQlpZ3RfZGV2aWNlX3ByaW50X2ZpbHRl cl90eXBlcygpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZ3RfZGV2aWNlc19zY2FuKGZhbHNlKTsK KworCWlmIChnZXRlbnYoIklHVF9ERVZJQ0UiKSkgeworCQlwcmludGYoIk5vdGljZTogVXNpbmcg SUdUX0RFVklDRSBkZXZpY2Ugc2V0dGluZ3MgWyVzXVxuIiwKKwkJICAgICAgIGdldGVudigiSUdU X0RFVklDRSIpKTsKKwl9IGVsc2UgaWYgKGlndF9yY19kZXZpY2UpIHsKKwkJcHJpbnRmKCJOb3Rp Y2U6IFVzaW5nIC5pZ3RyYyBkZXZpY2Ugc2V0dGluZ3MgWyVzXVxuIiwKKwkJICAgICAgIGlndF9y Y19kZXZpY2UpOworCX0gZWxzZSB7CisJCWlmIChpZ3RfZGV2aWNlX2lzX2ZpbHRlcl9zZXQoKSkK KwkJCXByaW50ZigiTm90aWNlOiBVc2luZyAtLWRldmljZSBmaWx0ZXJzXG4iKTsKKwl9CisKKwlp ZiAoZ19kZXZpY2UpIHsKKwkJc3RydWN0IGlndF9kZXZpY2VfY2FyZCBjYXJkOworCQljb25zdCBj aGFyICpmaWx0ZXIgPSBpZ3RfZGV2aWNlX2ZpbHRlcl9nZXQoKTsKKworCQlpZiAoIWlndF9kZXZp Y2VfaXNfZmlsdGVyX3NldCgpKSB7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQlwcmludGYoIj09 PSBEZXZpY2UgZmlsdGVyID09PVxuIik7CisJCXByaW50ZigiJXNcblxuIiwgZmlsdGVyKTsKKwor CQlwcmludGYoIj09PSBUZXN0aW5nIGRldmljZSBvcGVuID09PVxuIik7CisKKwkJaWYgKCFpZ3Rf ZGV2aWNlX2NhcmRfbWF0Y2goZmlsdGVyLCAmY2FyZCkpIHsKKwkJCXByaW50ZigiTm8gZGV2aWNl IGZvdW5kIGZvciB0aGUgZmlsdGVyXG5cbiIpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJcHJp bnRmKCJEZXZpY2UgZGV0YWlsOlxuIik7CisJCXByaW50X2NhcmQoJmNhcmQpOworCQl0ZXN0X2Rl dmljZV9vcGVuKCZjYXJkKTsKKwkJaWYgKHByaW50dHlwZSA9PSBJR1RfUFJJTlRfREVUQUlMKSB7 CisJCQlwcmludGYoIlxuIik7CisJCQlpZ3RfZGV2aWNlc19wcmludChwcmludHR5cGUpOworCQl9 CisJCXByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxu Iik7CisKKwkJcmV0dXJuIDA7CisJfQorCisJaWd0X2RldmljZXNfcHJpbnQocHJpbnR0eXBlKTsK KworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbWVzb24uYnVpbGQgYi90b29scy9t ZXNvbi5idWlsZAppbmRleCBlZWNiMTIyYi4uNzQ4MjJhMzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL21l c29uLmJ1aWxkCisrKyBiL3Rvb2xzL21lc29uLmJ1aWxkCkBAIC0zNiw2ICszNiw3IEBAIHRvb2xz X3Byb2dzID0gWwogCSdpbnRlbF9nZW1faW5mbycsCiAJJ2ludGVsX2d2dGdfdGVzdCcsCiAJJ2Rw Y2RfcmVnJywKKwknbHNncHUnLAogXQogdG9vbF9kZXBzID0gaWd0X2RlcHMKIAotLSAKMi4yMS4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2 IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=