From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sameer Goel Subject: [RFC v2 5/7] acpi:arm64: Add support for parsing IORT table Date: Wed, 20 Sep 2017 18:37:08 -0600 Message-ID: <1505954230-18892-6-git-send-email-sgoel@codeaurora.org> References: <1505954230-18892-1-git-send-email-sgoel@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dupUr-0000Ls-4L for xen-devel@lists.xenproject.org; Thu, 21 Sep 2017 00:37:41 +0000 In-Reply-To: <1505954230-18892-1-git-send-email-sgoel@codeaurora.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, julien.grall@arm.com, mjaggi@caviumnetworks.com Cc: sstabellini@kernel.org, wei.liu2@citrix.com, george.dunlap@eu.citrix.com, Andrew.Cooper3@citrix.com, jbeulich@suse.com, Sameer Goel , Ian.Jackson@citrix.com, nd@arm.com, robin.murphy@arm.com, shankerd@codeaurora.org List-Id: xen-devel@lists.xenproject.org QWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgSU9SVCB0YWJsZSB0byBpbml0aWFsaXplIFNNTVUgZGV2 aWNlcy4KKiBUaGUgY29kZSBmb3IgY3JlYXRpbmcgYW4gU01NVSBkZXZpY2UgaGFzIGJlZW4gbW9k aWZpZWQsIHNvIHRoYXQgdGhlIFNNTVUKZGV2aWNlIGNhbiBiZSBpbml0aWFsaXplZC4KKiBUaGUg TkFNRUQgTk9ERSBjb2RlIGhhcyBiZWVuIGNvbW1lbnRlZCBvdXQgYXMgdGhpcyB3aWxsIG5lZWQg RE9NMCBrZXJuZWwKc3VwcG9ydC4KKiBJVFMgY29kZSBoYXMgYmVlbiBpbmNsdWRlZCBidXQgaXQg aGFzIG5vdCBiZWVuIHRlc3RlZC4KClNpZ25lZC1vZmYtYnk6IFNhbWVlciBHb2VsIDxzZ29lbEBj b2RlYXVyb3JhLm9yZz4KLS0tCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyAgICAgICAgICAgICAgIHwg ICAzICsKIHhlbi9kcml2ZXJzL2FjcGkvTWFrZWZpbGUgICAgICAgICAgfCAgIDEgKwogeGVuL2Ry aXZlcnMvYWNwaS9hcm0vTWFrZWZpbGUgICAgICB8ICAgMSArCiB4ZW4vZHJpdmVycy9hY3BpL2Fy bS9pb3J0LmMgICAgICAgIHwgMTczICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMgfCAgIDEgKwogeGVuL2luY2x1 ZGUvYWNwaS9hY3BpX2lvcnQuaCAgICAgICB8ICAxNyArKy0tCiB4ZW4vaW5jbHVkZS9hc20tYXJt L2RldmljZS5oICAgICAgIHwgICAyICsKIHhlbi9pbmNsdWRlL3hlbi9hY3BpLmggICAgICAgICAg ICAgfCAgMjEgKysrKysKIHhlbi9pbmNsdWRlL3hlbi9wY2kuaCAgICAgICAgICAgICAgfCAgIDgg KysKIDkgZmlsZXMgY2hhbmdlZCwgMTQ2IGluc2VydGlvbnMoKyksIDgxIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL2FjcGkvYXJtL01ha2VmaWxlCgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwppbmRleCA5 MmYxNzNiLi40YmEwOWIyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vc2V0dXAuYworKysgYi94 ZW4vYXJjaC9hcm0vc2V0dXAuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGFzbS9zZXR1 cC5oPgogI2luY2x1ZGUgPHhzbS94c20uaD4KICNpbmNsdWRlIDxhc20vYWNwaS5oPgorI2luY2x1 ZGUgPGFjcGkvYWNwaV9pb3J0Lmg+CiAKIHN0cnVjdCBib290aW5mbyBfX2luaXRkYXRhIGJvb3Rp bmZvOwogCkBAIC03OTYsNiArNzk3LDggQEAgdm9pZCBfX2luaXQgc3RhcnRfeGVuKHVuc2lnbmVk IGxvbmcgYm9vdF9waHlzX29mZnNldCwKIAogICAgIHRhc2tsZXRfc3Vic3lzX2luaXQoKTsKIAor ICAgIC8qIFBhcnNlIHRoZSBBQ1BJIGlvcnQgZGF0YSAqLworICAgIGFjcGlfaW9ydF9pbml0KCk7 CiAKICAgICB4c21fZHRfaW5pdCgpOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9hY3BpL01h a2VmaWxlIGIveGVuL2RyaXZlcnMvYWNwaS9NYWtlZmlsZQppbmRleCA0NDRiMTFkLi5lN2ZmZDgy IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9hY3BpL01ha2VmaWxlCisrKyBiL3hlbi9kcml2ZXJz L2FjcGkvTWFrZWZpbGUKQEAgLTEsNSArMSw2IEBACiBzdWJkaXIteSArPSB0YWJsZXMKIHN1YmRp ci15ICs9IHV0aWxpdGllcworc3ViZGlyLSQoQ09ORklHX0FSTSkgKz0gYXJtCiBzdWJkaXItJChD T05GSUdfWDg2KSArPSBhcGVpCiAKIG9iai1iaW4teSArPSB0YWJsZXMuaW5pdC5vCmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9hY3BpL2FybS9NYWtlZmlsZSBiL3hlbi9kcml2ZXJzL2FjcGkvYXJt L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMDM5YmIKLS0t IC9kZXYvbnVsbAorKysgYi94ZW4vZHJpdmVycy9hY3BpL2FybS9NYWtlZmlsZQpAQCAtMCwwICsx IEBACitvYmoteSArPSBpb3J0Lm8KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL2FjcGkvYXJtL2lv cnQuYyBiL3hlbi9kcml2ZXJzL2FjcGkvYXJtL2lvcnQuYwppbmRleCAyZTM2OGE2Li43ZjU0MDYy IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9hY3BpL2FybS9pb3J0LmMKKysrIGIveGVuL2RyaXZl cnMvYWNwaS9hcm0vaW9ydC5jCkBAIC0xNCwxNyArMTQsNDcgQEAKICAqIFRoaXMgZmlsZSBpbXBs ZW1lbnRzIGVhcmx5IGRldGVjdGlvbi9wYXJzaW5nIG9mIEkvTyBtYXBwaW5nCiAgKiByZXBvcnRl ZCB0byBPUyB0aHJvdWdoIGZpcm13YXJlIHZpYSBJL08gUmVtYXBwaW5nIFRhYmxlIChJT1JUKQog ICogSU9SVCBkb2N1bWVudCBudW1iZXI6IEFSTSBERU4gMDA0OUEKKyAqCisgKiBCYXNlZCBvbiBM aW51eCBkcml2ZXJzL2FjcGkvYXJtNjQvaW9ydC5jCisgKiA9PiBjb21taXQgY2E3OGQzMTczY2Zm MzUwM2JjZDE1NzIzYjA0OTc1N2Y3NTc2MmQxNQorICoKKyAqIFhlbiBtb2RpZmljYXRpb246Cisg KiBTYW1lZXIgR29lbCA8c2dvZWxAY29kZWF1cm9yYS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw MTcsIFRoZSBMaW51eCBGb3VuZGF0aW9uLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKICAqLwog Ci0jZGVmaW5lIHByX2ZtdChmbXQpCSJBQ1BJOiBJT1JUOiAiIGZtdAotCi0jaW5jbHVkZSA8bGlu dXgvYWNwaV9pb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW9tbXUuaD4KLSNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGNp Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgv c2xhYi5oPgorI2luY2x1ZGUgPHhlbi9hY3BpLmg+CisjaW5jbHVkZSA8YWNwaS9hY3BpX2lvcnQu aD4KKyNpbmNsdWRlIDx4ZW4vZndub2RlLmg+CisjaW5jbHVkZSA8eGVuL2lvbW11Lmg+CisjaW5j bHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi9saXN0Lmg+CisjaW5jbHVkZSA8eGVuL3Bj aS5oPgorCisjaW5jbHVkZSA8YXNtL2RldmljZS5oPgorCisvKiBYZW46IERlZmluZSBjb21wYXRp YmlsaXR5IGZ1bmN0aW9ucyAqLworI2RlZmluZSBGV19CVUcJCSJbRmlybXdhcmUgQnVnXTogIgor I2RlZmluZSBwcl9lcnIoZm10LCAuLi4pIHByaW50ayhYRU5MT0dfRVJSIGZtdCwgIyMgX19WQV9B UkdTX18pCisjZGVmaW5lIHByX3dhcm4oZm10LCAuLi4pIHByaW50ayhYRU5MT0dfV0FSTklORyBm bXQsICMjIF9fVkFfQVJHU19fKQorCisvKiBBbGlhcyB0byBYZW4gYWxsb2NhdGlvbiBoZWxwZXJz ICovCisjZGVmaW5lIGtmcmVlIHhmcmVlCisjZGVmaW5lIGttYWxsb2Moc2l6ZSwgZmxhZ3MpICAg ICAgICAgICAgX3htYWxsb2Moc2l6ZSwgc2l6ZW9mKHZvaWQgKikpCisjZGVmaW5lIGt6YWxsb2Mo c2l6ZSwgZmxhZ3MpICAgICAgICAgICAgX3h6YWxsb2Moc2l6ZSwgc2l6ZW9mKHZvaWQgKikpCisK Ky8qIFJlZGVmaW5lIFdBUk4gbWFjcm9zICovCisjdW5kZWYgV0FSTgorI3VuZGVmIFdBUk5fT04K KyNkZWZpbmUgV0FSTihjb25kaXRpb24sIGZvcm1hdC4uLikgKHsJCQkJCVwKKwlpbnQgX19yZXRf d2Fybl9vbiA9ICEhKGNvbmRpdGlvbik7CQkJCVwKKwlpZiAodW5saWtlbHkoX19yZXRfd2Fybl9v bikpCQkJCQlcCisJCXByaW50ayhmb3JtYXQpOwkJCQkJCVwKKwl1bmxpa2VseShfX3JldF93YXJu X29uKTsJCQkJCVwKK30pCisjZGVmaW5lIFdBUk5fVEFJTlQoY29uZCwgdGFpbnQsIGZvcm1hdC4u LikgV0FSTihjb25kLCBmb3JtYXQpCisjZGVmaW5lIFdBUk5fT04oY29uZCkgICAgICAgICAgICAg ICAgICAgICAgKCEhY29uZCkKIAogI2RlZmluZSBJT1JUX1RZUEVfTUFTSyh0eXBlKQkoMSA8PCAo dHlwZSkpCiAjZGVmaW5lIElPUlRfTVNJX1RZUEUJCSgxIDw8IEFDUElfSU9SVF9OT0RFX0lUU19H Uk9VUCkKQEAgLTI1Niw2ICsyODYsMTMgQEAgc3RhdGljIGFjcGlfc3RhdHVzIGlvcnRfbWF0Y2hf bm9kZV9jYWxsYmFjayhzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUsCiAJYWNwaV9zdGF0dXMg c3RhdHVzOwogCiAJaWYgKG5vZGUtPnR5cGUgPT0gQUNQSV9JT1JUX05PREVfTkFNRURfQ09NUE9O RU5UKSB7CisJCXN0YXR1cyA9IEFFX05PVF9JTVBMRU1FTlRFRDsKKy8qCisgKiBXZSBuZWVkIHRo ZSBuYW1lc3BhY2Ugb2JqZWN0IG5hbWUgZnJvbSBkc2R0IHRvIG1hdGNoIHRoZSBpb3J0IG5vZGUs IHRoaXMKKyAqIHdpbGwgbmVlZCBhZGRpdGlvbnMgdG8gdGhlIGtlcm5lbCB4ZW4gYnVzIG5vdGlm aWVycy4KKyAqIFNvLCBkaXNhYmxpbmcgdGhlIG5hbWVkIG5vZGUgY29kZSB0aWxsIGEgcHJvcG9z YWwgaXMgYXBwcm92ZWQuCisgKi8KKyNpZiAwCiAJCXN0cnVjdCBhY3BpX2J1ZmZlciBidWYgPSB7 IEFDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMIH07CiAJCXN0cnVjdCBhY3BpX2RldmljZSAqYWRl diA9IHRvX2FjcGlfZGV2aWNlX25vZGUoZGV2LT5md25vZGUpOwogCQlzdHJ1Y3QgYWNwaV9pb3J0 X25hbWVkX2NvbXBvbmVudCAqbmNvbXA7CkBAIC0yNzUsMTEgKzMxMiwxMiBAQCBzdGF0aWMgYWNw aV9zdGF0dXMgaW9ydF9tYXRjaF9ub2RlX2NhbGxiYWNrKHN0cnVjdCBhY3BpX2lvcnRfbm9kZSAq bm9kZSwKIAkJc3RhdHVzID0gIXN0cmNtcChuY29tcC0+ZGV2aWNlX25hbWUsIGJ1Zi5wb2ludGVy KSA/CiAJCQkJCQkJQUVfT0sgOiBBRV9OT1RfRk9VTkQ7CiAJCWFjcGlfb3NfZnJlZShidWYucG9p bnRlcik7CisjZW5kaWYKIAl9IGVsc2UgaWYgKG5vZGUtPnR5cGUgPT0gQUNQSV9JT1JUX05PREVf UENJX1JPT1RfQ09NUExFWCkgewogCQlzdHJ1Y3QgYWNwaV9pb3J0X3Jvb3RfY29tcGxleCAqcGNp X3JjOwotCQlzdHJ1Y3QgcGNpX2J1cyAqYnVzOworCQlzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldjsK IAotCQlidXMgPSB0b19wY2lfYnVzKGRldik7CisJCXBjaV9kZXYgPSB0b19wY2lfZGV2KGRldik7 CiAJCXBjaV9yYyA9IChzdHJ1Y3QgYWNwaV9pb3J0X3Jvb3RfY29tcGxleCAqKW5vZGUtPm5vZGVf ZGF0YTsKIAogCQkvKgpAQCAtMjg3LDEyICszMjUsMTEgQEAgc3RhdGljIGFjcGlfc3RhdHVzIGlv cnRfbWF0Y2hfbm9kZV9jYWxsYmFjayhzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUsCiAJCSAq IHdpdGggcm9vdCBjb21wbGV4ZXMuIEVhY2ggc2VnbWVudCBudW1iZXIgY2FuIHJlcHJlc2VudCBv bmx5CiAJCSAqIG9uZSByb290IGNvbXBsZXguCiAJCSAqLwotCQlzdGF0dXMgPSBwY2lfcmMtPnBj aV9zZWdtZW50X251bWJlciA9PSBwY2lfZG9tYWluX25yKGJ1cykgPworCQlzdGF0dXMgPSBwY2lf cmMtPnBjaV9zZWdtZW50X251bWJlciA9PSBwY2lfZG9tYWluX25yKHBjaV9kZXYpID8KIAkJCQkJ CQlBRV9PSyA6IEFFX05PVF9GT1VORDsKIAl9IGVsc2UgewogCQlzdGF0dXMgPSBBRV9OT1RfRk9V TkQ7CiAJfQotb3V0OgogCXJldHVybiBzdGF0dXM7CiB9CiAKQEAgLTMyMCw2ICszNTcsMTEgQEAg c3RhdGljIGludCBpb3J0X2lkX21hcChzdHJ1Y3QgYWNwaV9pb3J0X2lkX21hcHBpbmcgKm1hcCwg dTggdHlwZSwgdTMyIHJpZF9pbiwKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIE5hbWVkIGNvbXBv bmVudHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IHNvIHdlIGRvIG5vdCBuZWVkIHRoZQorICogaW9y dF9ub2RlX2dldF9pZCBmdW5jdGlvbgorICovCisjaWYgMAogc3RhdGljCiBzdHJ1Y3QgYWNwaV9p b3J0X25vZGUgKmlvcnRfbm9kZV9nZXRfaWQoc3RydWN0IGFjcGlfaW9ydF9ub2RlICpub2RlLAog CQkJCQl1MzIgKmlkX291dCwgdTggdHlwZV9tYXNrLApAQCAtMzU4LDYgKzQwMCw3IEBAIHN0cnVj dCBhY3BpX2lvcnRfbm9kZSAqaW9ydF9ub2RlX2dldF9pZChzdHJ1Y3QgYWNwaV9pb3J0X25vZGUg Km5vZGUsCiAKIAlyZXR1cm4gTlVMTDsKIH0KKyNlbmRpZgogCiBzdGF0aWMgc3RydWN0IGFjcGlf aW9ydF9ub2RlICppb3J0X25vZGVfbWFwX3JpZChzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUs CiAJCQkJCQl1MzIgcmlkX2luLCB1MzIgKnJpZF9vdXQsCkBAIC00MTAsNiArNDUzLDEwIEBAIGZh aWxfbWFwOgogCXJldHVybiBOVUxMOwogfQogCisvKiBYZW46IENvbW1lbnQgb3V0IHRoZSBOYW1l ZENvbXBvbmVudCBhbmQgSVRTIG1hcHBpbmcgY29kZSB0aWxsIHRoZSBzdXBwb3J0CisgKiBpcyBh dmFpbGFibGUuCisgKi8KKyNpZiAwCiBzdGF0aWMgc3RydWN0IGFjcGlfaW9ydF9ub2RlICppb3J0 X2ZpbmRfZGV2X25vZGUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBwY2lfYnVzICpw YnVzOwpAQCAtNDgxLDcgKzUyOCw3IEBAIHN0YXRpYyBpbnQgaW9ydF9kZXZfZmluZF9pdHNfaWQo c3RydWN0IGRldmljZSAqZGV2LCB1MzIgcmVxX2lkLAogCXJldHVybiAwOwogfQogCi0vKioKKy8q CiAgKiBpb3J0X2dldF9kZXZpY2VfZG9tYWluKCkgLSBGaW5kIE1TSSBkb21haW4gcmVsYXRlZCB0 byBhIGRldmljZQogICogQGRldjogVGhlIGRldmljZS4KICAqIEByZXFfaWQ6IFJlcXVlc3RlciBJ RCBmb3IgdGhlIGRldmljZS4KQEAgLTUxMCw3ICs1NTcsNyBAQCBzdGF0aWMgaW50IF9fZ2V0X3Bj aV9yaWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHUxNiBhbGlhcywgdm9pZCAqZGF0YSkKIAkqcmlk ID0gYWxpYXM7CiAJcmV0dXJuIDA7CiB9Ci0KKyNlbmRpZgogc3RhdGljIGludCBhcm1fc21tdV9p b3J0X3hsYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHN0cmVhbWlkLAogCQkJICAgICAgIHN0 cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGlvbW11 X29wcyAqb3BzKQpAQCAtNTQ2LDYgKzU5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW9tbXVf b3BzICppb3J0X2lvbW11X3hsYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlyZXR1cm4gcmV0ID8g TlVMTCA6IG9wczsKIH0KIAorI2lmIDAgLyogWGVuOiBXZSBkbyBub3QgbmVlZCB0aGlzIGZ1bmN0 aW9uIGZvciBYZW4gKi8KIC8qKgogICogaW9ydF9zZXRfZG1hX21hc2sgLSBTZXQtdXAgZG1hIG1h c2sgZm9yIGEgZGV2aWNlLgogICoKQEAgLTU2Nyw3ICs2MTUsNyBAQCB2b2lkIGlvcnRfc2V0X2Rt YV9tYXNrKHN0cnVjdCBkZXZpY2UgKmRldikKIAlpZiAoIWRldi0+ZG1hX21hc2spCiAJCWRldi0+ ZG1hX21hc2sgPSAmZGV2LT5jb2hlcmVudF9kbWFfbWFzazsKIH0KLQorI2VuZGlmCiAvKioKICAq IGlvcnRfaW9tbXVfY29uZmlndXJlIC0gU2V0LXVwIElPTU1VIGNvbmZpZ3VyYXRpb24gZm9yIGEg ZGV2aWNlLgogICoKQEAgLTU4MywxNCArNjMxLDEzIEBAIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMg KmlvcnRfaW9tbXVfY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldikKIAl1MzIgc3RyZWFtaWQg PSAwOwogCiAJaWYgKGRldl9pc19wY2koZGV2KSkgewotCQlzdHJ1Y3QgcGNpX2J1cyAqYnVzID0g dG9fcGNpX2RldihkZXYpLT5idXM7CisJCXN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2aWNlID0gdG9f cGNpX2RldihkZXYpOwogCQl1MzIgcmlkOwogCi0JCXBjaV9mb3JfZWFjaF9kbWFfYWxpYXModG9f cGNpX2RldihkZXYpLCBfX2dldF9wY2lfcmlkLAotCQkJCSAgICAgICAmcmlkKTsKKwkJcmlkID0g UENJX0JERjIocGNpX2RldmljZS0+YnVzLCBwY2lfZGV2aWNlLT5kZXZmbik7CiAKIAkJbm9kZSA9 IGlvcnRfc2Nhbl9ub2RlKEFDUElfSU9SVF9OT0RFX1BDSV9ST09UX0NPTVBMRVgsCi0JCQkJICAg ICAgaW9ydF9tYXRjaF9ub2RlX2NhbGxiYWNrLCAmYnVzLT5kZXYpOworCQkJCSAgICAgIGlvcnRf bWF0Y2hfbm9kZV9jYWxsYmFjaywgZGV2KTsKIAkJaWYgKCFub2RlKQogCQkJcmV0dXJuIE5VTEw7 CiAKQEAgLTYwMCw2ICs2NDcsMTMgQEAgY29uc3Qgc3RydWN0IGlvbW11X29wcyAqaW9ydF9pb21t dV9jb25maWd1cmUoc3RydWN0IGRldmljZSAqZGV2KQogCQlvcHMgPSBpb3J0X2lvbW11X3hsYXRl KGRldiwgcGFyZW50LCBzdHJlYW1pZCk7CiAKIAl9IGVsc2UgeworCQlyZXR1cm4gTlVMTDsKKy8q CisgKiBXZSBuZWVkIHRoZSBuYW1lc3BhY2Ugb2JqZWN0IG5hbWUgZnJvbSBkc2R0IHRvIG1hdGNo IHRoZSBpb3J0IG5vZGUsIHRoaXMKKyAqIHdpbGwgbmVlZCBhZGRpdGlvbnMgdG8gdGhlIGtlcm5l bCB4ZW4gYnVzIG5vdGlmaWVycy4KKyAqIFNvLCBkaXNhYmxpbmcgdGhlIG5hbWVkIG5vZGUgY29k ZSB0aWxsIGEgcHJvcG9zYWwgaXMgYXBwcm92ZWQuCisgKi8KKyNpZiAwCiAJCWludCBpID0gMDsK IAogCQlub2RlID0gaW9ydF9zY2FuX25vZGUoQUNQSV9JT1JUX05PREVfTkFNRURfQ09NUE9ORU5U LApAQCAtNjE2LDExICs2NzAsMTcgQEAgY29uc3Qgc3RydWN0IGlvbW11X29wcyAqaW9ydF9pb21t dV9jb25maWd1cmUoc3RydWN0IGRldmljZSAqZGV2KQogCQkJcGFyZW50ID0gaW9ydF9ub2RlX2dl dF9pZChub2RlLCAmc3RyZWFtaWQsCiAJCQkJCQkgIElPUlRfSU9NTVVfVFlQRSwgaSsrKTsKIAkJ fQorI2VuZGlmCiAJfQogCiAJcmV0dXJuIG9wczsKIH0KIAorLyoKKyAqIFhlbjogTm90IHVzaW5n IHRoZSBwYXJzaW5nIG9wcyBmb3Igbm93LiBOZWVkIHRvIGNoZWNrIGFuZCBzZWUgaWYgaXQgd2ls bAorICogYmUgdXNlZnVsIHRvIHVzZSB0aGVzZSBpbiBzb21lIGZvcm0sIG9yIGxldCB0aGUgZHJp dmVyIHBhcnNlIElPUlQgbm9kZS4KKyAqLworI2lmIDAKIHN0YXRpYyB2b2lkIF9faW5pdCBhY3Bp X2lvcnRfcmVnaXN0ZXJfaXJxKGludCBod2lycSwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkJICBp bnQgdHJpZ2dlciwKIAkJCQkJICBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKQEAgLTgwNyw3ICs4Njcs NyBAQCBjb25zdCBzdHJ1Y3QgaW9ydF9pb21tdV9jb25maWcgKmlvcnRfZ2V0X2lvbW11X2NmZyhz dHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUpCiAJCXJldHVybiBOVUxMOwogCX0KIH0KLQorI2Vu ZGlmCiAvKioKICAqIGlvcnRfYWRkX3NtbXVfcGxhdGZvcm1fZGV2aWNlKCkgLSBBbGxvY2F0ZSBh IHBsYXRmb3JtIGRldmljZSBmb3IgU01NVQogICogQG5vZGU6IFBvaW50ZXIgdG8gU01NVSBBQ1BJ IElPUlQgbm9kZQpAQCAtODE3LDc4ICs4NzcsNDIgQEAgY29uc3Qgc3RydWN0IGlvcnRfaW9tbXVf Y29uZmlnICppb3J0X2dldF9pb21tdV9jZmcoc3RydWN0IGFjcGlfaW9ydF9ub2RlICpub2RlKQog c3RhdGljIGludCBfX2luaXQgaW9ydF9hZGRfc21tdV9wbGF0Zm9ybV9kZXZpY2Uoc3RydWN0IGFj cGlfaW9ydF9ub2RlICpub2RlKQogewogCXN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGU7Ci0J c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnI7Ci0JZW51 bSBkZXZfZG1hX2F0dHIgYXR0cjsKLQlpbnQgcmV0LCBjb3VudDsKLQljb25zdCBzdHJ1Y3QgaW9y dF9pb21tdV9jb25maWcgKm9wcyA9IGlvcnRfZ2V0X2lvbW11X2NmZyhub2RlKTsKLQotCWlmICgh b3BzKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCXBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2Mo b3BzLT5uYW1lLCBQTEFURk9STV9ERVZJRF9BVVRPKTsKLQlpZiAoIXBkZXYpCi0JCXJldHVybiAt RU5PTUVNOwotCi0JY291bnQgPSBvcHMtPmlvbW11X2NvdW50X3Jlc291cmNlcyhub2RlKTsKLQot CXIgPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKnIpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXIpIHsK LQkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBkZXZfcHV0OwotCX0KLQotCW9wcy0+aW9tbXVfaW5p dF9yZXNvdXJjZXMociwgbm9kZSk7CisJc3RydWN0IGRldmljZSAqZGV2OworCWludCByZXQ7CiAK LQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByLCBjb3VudCk7CiAJ LyoKLQkgKiBSZXNvdXJjZXMgYXJlIGR1cGxpY2F0ZWQgaW4gcGxhdGZvcm1fZGV2aWNlX2FkZF9y ZXNvdXJjZXMsCi0JICogZnJlZSB0aGVpciBhbGxvY2F0ZWQgbWVtb3J5CisJICogTm90IGVuYWJs aW5nIHRoZSBwYXJzaW5nIG9wcyBmb3Igbm93LiBUaGUgY29ycmVzcG9uZGluZyBkcml2ZXIKKwkg KiBjYW4gcGFyc2UgdGhpcyBpbmZvcm1hdGlvbiBhcyBuZWVkZWQsIHNvIGRlbGV0aW5nIHJlbGV2 YW50IGNvZGUgYXMKKwkgKiBjb21wYXJlZCB0byBiYXNlIHJldmlzaW9uLgogCSAqLwotCWtmcmVl KHIpOwogCi0JaWYgKHJldCkKLQkJZ290byBkZXZfcHV0OworCWRldiA9IGt6YWxsb2Moc2l6ZW9m KHN0cnVjdCBkZXZpY2UpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRldikKKwkJcmV0dXJuIC1FTk9N RU07CiAKIAkvKgogCSAqIEFkZCBhIGNvcHkgb2YgSU9SVCBub2RlIHBvaW50ZXIgdG8gcGxhdGZv cm1fZGF0YSB0bwogCSAqIGJlIHVzZWQgdG8gcmV0cmlldmUgSU9SVCBkYXRhIGluZm9ybWF0aW9u LgogCSAqLwotCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShwZGV2LCAmbm9kZSwgc2l6 ZW9mKG5vZGUpKTsKLQlpZiAocmV0KQotCQlnb3RvIGRldl9wdXQ7Ci0KLQkvKgotCSAqIFdlIGV4 cGVjdCB0aGUgZG1hIG1hc2tzIHRvIGJlIGVxdWl2YWxlbnQgZm9yCi0JICogYWxsIFNNTVVzIHNl dC11cHMKLQkgKi8KLQlwZGV2LT5kZXYuZG1hX21hc2sgPSAmcGRldi0+ZGV2LmNvaGVyZW50X2Rt YV9tYXNrOworCWRldi0+dHlwZSA9IERFVl9BQ1BJOworCWRldi0+YWNwaV9ub2RlID0gbm9kZTsK IAogCWZ3bm9kZSA9IGlvcnRfZ2V0X2Z3bm9kZShub2RlKTsKIAogCWlmICghZndub2RlKSB7CiAJ CXJldCA9IC1FTk9ERVY7Ci0JCWdvdG8gZGV2X3B1dDsKKwkJZ290byBlcnJvcjsKIAl9CiAKLQlw ZGV2LT5kZXYuZndub2RlID0gZndub2RlOwotCi0JYXR0ciA9IG9wcy0+aW9tbXVfaXNfY29oZXJl bnQobm9kZSkgPwotCQkJICAgICBERVZfRE1BX0NPSEVSRU5UIDogREVWX0RNQV9OT05fQ09IRVJF TlQ7Ci0KLQkvKiBDb25maWd1cmUgRE1BIGZvciB0aGUgcGFnZSB0YWJsZSB3YWxrZXIgKi8KLQlh Y3BpX2RtYV9jb25maWd1cmUoJnBkZXYtPmRldiwgYXR0cik7CisJZGV2LT5md25vZGUgPSBmd25v ZGU7CiAKLQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpOwotCWlmIChyZXQpCi0JCWdv dG8gZG1hX2RlY29uZmlndXJlOworCS8qIENhbGwgdGhlIGFjcGkgaW5pdCBmdW5jdGlvbnMgZm9y IElPTU1VIGRldmljZXMgKi8KKwlyZXQgPSBhY3BpX2RldmljZV9pbml0KERFVklDRV9JT01NVSwg KHZvaWQgKilkZXYsIG5vZGUtPnR5cGUpOwogCiAJcmV0dXJuIDA7CiAKLWRtYV9kZWNvbmZpZ3Vy ZToKLQlhY3BpX2RtYV9kZWNvbmZpZ3VyZSgmcGRldi0+ZGV2KTsKLWRldl9wdXQ6Ci0JcGxhdGZv cm1fZGV2aWNlX3B1dChwZGV2KTsKK2Vycm9yOgorCWtmcmVlKGRldik7CiAKIAlyZXR1cm4gcmV0 OwogfQpAQCAtOTU3LDUgKzk4MSw2IEBAIHZvaWQgX19pbml0IGFjcGlfaW9ydF9pbml0KHZvaWQp CiAKIAlpb3J0X2luaXRfcGxhdGZvcm1fZGV2aWNlcygpOwogCi0JYWNwaV9wcm9iZV9kZXZpY2Vf dGFibGUoaW9ydCk7CisJLyogWGVuOyBEbyBub3QgbmVlZCBhIGRldmljZSB0YWJsZSBwcm9iZSAq LworCS8qIGFjcGlfcHJvYmVfZGV2aWNlX3RhYmxlKGlvcnQpOyovCiB9CmRpZmYgLS1naXQgYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYXJtL3NtbXUuYwppbmRleCAzNjJkNTc4Li5hZDk1NmQ1IDEwMDY0NAotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FybS9zbW11LmMKQEAgLTE4MSw2ICsxODEsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICpkZXZt X2lvcmVtYXBfcmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2LAogICogWGVuOiBQQ0kgZnVuY3Rp b25zCiAgKiBUT0RPOiBJdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgd2hlbiBQQ0kgd2lsbCBiZSBz dXBwb3J0ZWQKICAqLworI3VuZGVmIHRvX3BjaV9kZXYKICNkZWZpbmUgdG9fcGNpX2RldihkZXYp CShOVUxMKQogc3RhdGljIGlubGluZSBpbnQgcGNpX2Zvcl9lYWNoX2RtYV9hbGlhcyhzdHJ1Y3Qg cGNpX2RldiAqcGRldiwKIAkJCQkJIGludCAoKmZuKSAoc3RydWN0IHBjaV9kZXYgKnBkZXYsCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hY3BpL2FjcGlfaW9ydC5oIGIveGVuL2luY2x1ZGUvYWNw aS9hY3BpX2lvcnQuaAppbmRleCA3N2UwODA5Li5kNDMxNWE0IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hY3BpL2FjcGlfaW9ydC5oCisrKyBiL3hlbi9pbmNsdWRlL2FjcGkvYWNwaV9pb3J0LmgK QEAgLTE5LDI3ICsxOSwzMiBAQAogI2lmbmRlZiBfX0FDUElfSU9SVF9IX18KICNkZWZpbmUgX19B Q1BJX0lPUlRfSF9fCiAKLSNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Ci0jaW5jbHVkZSA8bGludXgv Zndub2RlLmg+Ci0jaW5jbHVkZSA8bGludXgvaXJxZG9tYWluLmg+CisjaW5jbHVkZSA8eGVuL2Fj cGkuaD4KKyNpbmNsdWRlIDxhc20vZGV2aWNlLmg+CiAKKy8qIFhlbjogTm90IHVzaW5nIElPUlQg SVJRIGJpbmRpbmdzICovCisjaWYgMAogI2RlZmluZSBJT1JUX0lSUV9NQVNLKGlycSkJCShpcnEg JiAweGZmZmZmZmZmVUxMKQogI2RlZmluZSBJT1JUX0lSUV9UUklHR0VSX01BU0soaXJxKQkoKGly cSA+PiAzMikgJiAweGZmZmZmZmZmVUxMKQogCiBpbnQgaW9ydF9yZWdpc3Rlcl9kb21haW5fdG9r ZW4oaW50IHRyYW5zX2lkLCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndfbm9kZSk7CiB2b2lkIGlv cnRfZGVyZWdpc3Rlcl9kb21haW5fdG9rZW4oaW50IHRyYW5zX2lkKTsKIHN0cnVjdCBmd25vZGVf aGFuZGxlICppb3J0X2ZpbmRfZG9tYWluX3Rva2VuKGludCB0cmFuc19pZCk7Ci0jaWZkZWYgQ09O RklHX0FDUElfSU9SVAorI2VuZGlmCisjaWZkZWYgQ09ORklHX0FSTV82NAogdm9pZCBhY3BpX2lv cnRfaW5pdCh2b2lkKTsKIGJvb2wgaW9ydF9ub2RlX21hdGNoKHU4IHR5cGUpOworI2lmIDAKIHUz MiBpb3J0X21zaV9tYXBfcmlkKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHJlcV9pZCk7CiBzdHJ1 Y3QgaXJxX2RvbWFpbiAqaW9ydF9nZXRfZGV2aWNlX2RvbWFpbihzdHJ1Y3QgZGV2aWNlICpkZXYs IHUzMiByZXFfaWQpOwogLyogSU9NTVUgaW50ZXJmYWNlICovCiB2b2lkIGlvcnRfc2V0X2RtYV9t YXNrKHN0cnVjdCBkZXZpY2UgKmRldik7CisjZW5kaWYKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMg KmlvcnRfaW9tbXVfY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldik7CiAjZWxzZQogc3RhdGlj IGlubGluZSB2b2lkIGFjcGlfaW9ydF9pbml0KHZvaWQpIHsgfQogc3RhdGljIGlubGluZSBib29s IGlvcnRfbm9kZV9tYXRjaCh1OCB0eXBlKSB7IHJldHVybiBmYWxzZTsgfQorI2lmIDAKIHN0YXRp YyBpbmxpbmUgdTMyIGlvcnRfbXNpX21hcF9yaWQoc3RydWN0IGRldmljZSAqZGV2LCB1MzIgcmVx X2lkKQogeyByZXR1cm4gcmVxX2lkOyB9CiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpcnFfZG9tYWlu ICppb3J0X2dldF9kZXZpY2VfZG9tYWluKHN0cnVjdCBkZXZpY2UgKmRldiwKQEAgLTQ3LDEyICs1 MiwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBpcnFfZG9tYWluICppb3J0X2dldF9kZXZpY2Vf ZG9tYWluKHN0cnVjdCBkZXZpY2UgKmRldiwKIHsgcmV0dXJuIE5VTEw7IH0KIC8qIElPTU1VIGlu dGVyZmFjZSAqLwogc3RhdGljIGlubGluZSB2b2lkIGlvcnRfc2V0X2RtYV9tYXNrKHN0cnVjdCBk ZXZpY2UgKmRldikgeyB9CisjZW5kaWYKIHN0YXRpYyBpbmxpbmUKIGNvbnN0IHN0cnVjdCBpb21t dV9vcHMgKmlvcnRfaW9tbXVfY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsgcmV0dXJu IE5VTEw7IH0KICNlbmRpZgogCi0jZGVmaW5lIElPUlRfQUNQSV9ERUNMQVJFKG5hbWUsIHRhYmxl X2lkLCBmbikJCVwKLQlBQ1BJX0RFQ0xBUkVfUFJPQkVfRU5UUlkoaW9ydCwgbmFtZSwgdGFibGVf aWQsIDAsIE5VTEwsIDAsIGZuKQotCiAjZW5kaWYgLyogX19BQ1BJX0lPUlRfSF9fICovCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RldmljZS5oIGIveGVuL2luY2x1ZGUvYXNtLWFy bS9kZXZpY2UuaAppbmRleCA1MDI3Yzg3Li40ZWVmOWNlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20tYXJtL2RldmljZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZGV2aWNlLmgKQEAg LTcsNiArNyw3IEBACiBlbnVtIGRldmljZV90eXBlCiB7CiAgICAgREVWX0RULAorICAgIERFVl9B Q1BJLAogfTsKIAogc3RydWN0IGRldl9hcmNoZGF0YSB7CkBAIC0yMCw2ICsyMSw3IEBAIHN0cnVj dCBkZXZpY2UKICNpZmRlZiBDT05GSUdfSEFTX0RFVklDRV9UUkVFCiAgICAgc3RydWN0IGR0X2Rl dmljZV9ub2RlICpvZl9ub2RlOyAvKiBVc2VkIGJ5IGRyaXZlcnMgaW1wb3J0ZWQgZnJvbSBMaW51 eCAqLwogI2VuZGlmCisgICAgdm9pZCAqYWNwaV9ub2RlOyAvKkN1cnJlbnQgdXNlIGNhc2UgaXMg YWNwaV9pb3J0X25vZGUgKi8KICAgICBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlOyAvKmZ3 IGRldmljZSBub2RlIGlkZW50aWZpZXIgKi8KICAgICBzdHJ1Y3QgaW9tbXVfZndzcGVjICppb21t dV9md3NwZWM7CiAgICAgc3RydWN0IGRldl9hcmNoZGF0YSBhcmNoZGF0YTsKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3hlbi9hY3BpLmggYi94ZW4vaW5jbHVkZS94ZW4vYWNwaS5oCmluZGV4IDk0 MDkzNTAuLjJmNmFhZTEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9hY3BpLmgKKysrIGIv eGVuL2luY2x1ZGUveGVuL2FjcGkuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSA8YWNw aS9hY3BpLmg+CiAjaW5jbHVkZSA8YXNtL2FjcGkuaD4KKyNpbmNsdWRlIDx4ZW4vZndub2RlLmg+ CiAKICNkZWZpbmUgQUNQSV9NQURUX0dFVF8oZmxkLCB4KSAoKCh4KSAmIEFDUElfTUFEVF8jI2Zs ZCMjX01BU0spIC8gXAogCShBQ1BJX01BRFRfIyNmbGQjI19NQVNLICYgLUFDUElfTUFEVF8jI2Zs ZCMjX01BU0spKQpAQCAtNDksNiArNTAsMjYgQEAKICAgICAgICAgICAgICAgICAoIShlbnRyeSkp IHx8ICh1bnNpZ25lZCBsb25nKShlbnRyeSkgKyBzaXplb2YoKihlbnRyeSkpID4gKGVuZCkgfHwg IFwKICAgICAgICAgICAgICAgICAoZW50cnkpLT5oZWFkZXIubGVuZ3RoIDwgc2l6ZW9mKCooZW50 cnkpKSkKIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqYWNwaV9hbGxvY19m d25vZGVfc3RhdGljKHZvaWQpCit7CisJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZTsKKwor CWZ3bm9kZSA9IHh6YWxsb2Moc3RydWN0IGZ3bm9kZV9oYW5kbGUpOworCWlmICghZndub2RlKQor CQlyZXR1cm4gTlVMTDsKKworCWZ3bm9kZS0+dHlwZSA9IEZXTk9ERV9BQ1BJX1NUQVRJQzsKKwor CXJldHVybiBmd25vZGU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhY3BpX2ZyZWVfZndub2Rl X3N0YXRpYyhzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQoreworCWlmICghZndub2RlIHx8 IGZ3bm9kZS0+dHlwZSAhPSBGV05PREVfQUNQSV9TVEFUSUMpCisJCXJldHVybjsKKworCXhmcmVl KGZ3bm9kZSk7Cit9CiAjaWZkZWYgQ09ORklHX0FDUEkKIAogZW51bSBhY3BpX2ludGVycnVwdF9p ZCB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmggYi94ZW4vaW5jbHVkZS94ZW4v cGNpLmgKaW5kZXggNDNmMjEyNS4uMTgyYjFhNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu L3BjaS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaApAQCAtOTIsOCArOTIsMTYgQEAgc3Ry dWN0IHBjaV9kZXYgewogI2RlZmluZSBQVF9GQVVMVF9USFJFU0hPTEQgMTAKICAgICB9IGZhdWx0 OwogICAgIHU2NCB2Zl9ybGVuWzZdOworI2lmZGVmIENPTkZJR19BUk0KKyAgICBzdHJ1Y3QgZGV2 aWNlIGRldjsKKyNlbmRpZgogfTsKIAorI2lmZGVmIENPTkZJR19BUk0KKyNkZWZpbmUgdG9fcGNp X2RldihwKSBjb250YWluZXJfb2YocCwgc3RydWN0IHBjaV9kZXYsZGV2KQorI2RlZmluZSBwY2lf ZG9tYWluX25yKGRldikgZGV2LT5zZWcKKyNlbmRpZgorCiAjZGVmaW5lIGZvcl9lYWNoX3BkZXYo ZG9tYWluLCBwZGV2KSBcCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShwZGV2LCAmKGRvbWFpbi0+ YXJjaC5wZGV2X2xpc3QpLCBkb21haW5fbGlzdCkKIAotLSAKUXVhbGNvbW0gRGF0YWNlbnRlciBU ZWNobm9sb2dpZXMgYXMgYW4gYWZmaWxpYXRlIG9mIFF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5j LiBRdWFsY29tbSBUZWNobm9sb2dpZXMsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVy b3JhIEZvcnVtLCBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0LgoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=