From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [RFC v2 5/7] acpi:arm64: Add support for parsing IORT table Date: Thu, 12 Oct 2017 15:06:15 +0100 Message-ID: <040fde45-10f8-fa40-29e3-d1312faf311f@linaro.org> References: <1505954230-18892-1-git-send-email-sgoel@codeaurora.org> <1505954230-18892-6-git-send-email-sgoel@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2e7x-0007Zt-DC for xen-devel@lists.xenproject.org; Thu, 12 Oct 2017 14:06:21 +0000 Received: by mail-qt0-f175.google.com with SMTP id q4so13802927qtq.8 for ; Thu, 12 Oct 2017 07:06:19 -0700 (PDT) In-Reply-To: <1505954230-18892-6-git-send-email-sgoel@codeaurora.org> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Sameer Goel , 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, Ian.Jackson@citrix.com, nd@arm.com, robin.murphy@arm.com, shankerd@codeaurora.org List-Id: xen-devel@lists.xenproject.org SGkgU2FtZWVyLAoKT24gMjEvMDkvMTcgMDE6MzcsIFNhbWVlciBHb2VsIHdyb3RlOgo+IEFkZCBz dXBwb3J0IGZvciBwYXJzaW5nIElPUlQgdGFibGUgdG8gaW5pdGlhbGl6ZSBTTU1VIGRldmljZXMu Cj4gKiBUaGUgY29kZSBmb3IgY3JlYXRpbmcgYW4gU01NVSBkZXZpY2UgaGFzIGJlZW4gbW9kaWZp ZWQsIHNvIHRoYXQgdGhlIFNNTVUKPiBkZXZpY2UgY2FuIGJlIGluaXRpYWxpemVkLgo+ICogVGhl IE5BTUVEIE5PREUgY29kZSBoYXMgYmVlbiBjb21tZW50ZWQgb3V0IGFzIHRoaXMgd2lsbCBuZWVk IERPTTAga2VybmVsCj4gc3VwcG9ydC4KPiAqIElUUyBjb2RlIGhhcyBiZWVuIGluY2x1ZGVkIGJ1 dCBpdCBoYXMgbm90IGJlZW4gdGVzdGVkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNhbWVlciBHb2Vs IDxzZ29lbEBjb2RlYXVyb3JhLm9yZz4KPiAtLS0KPiAgIHhlbi9hcmNoL2FybS9zZXR1cC5jICAg ICAgICAgICAgICAgfCAgIDMgKwo+ICAgeGVuL2RyaXZlcnMvYWNwaS9NYWtlZmlsZSAgICAgICAg ICB8ICAgMSArCj4gICB4ZW4vZHJpdmVycy9hY3BpL2FybS9NYWtlZmlsZSAgICAgIHwgICAxICsK PiAgIHhlbi9kcml2ZXJzL2FjcGkvYXJtL2lvcnQuYyAgICAgICAgfCAxNzMgKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ICAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJt L3NtbXUuYyB8ICAgMSArCj4gICB4ZW4vaW5jbHVkZS9hY3BpL2FjcGlfaW9ydC5oICAgICAgIHwg IDE3ICsrLS0KPiAgIHhlbi9pbmNsdWRlL2FzbS1hcm0vZGV2aWNlLmggICAgICAgfCAgIDIgKwo+ ICAgeGVuL2luY2x1ZGUveGVuL2FjcGkuaCAgICAgICAgICAgICB8ICAyMSArKysrKwo+ICAgeGVu L2luY2x1ZGUveGVuL3BjaS5oICAgICAgICAgICAgICB8ICAgOCArKwo+ICAgOSBmaWxlcyBjaGFu Z2VkLCAxNDYgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9kZSAx MDA2NDQgeGVuL2RyaXZlcnMvYWNwaS9hcm0vTWFrZWZpbGUKPiAKPiBkaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwo+IGluZGV4IDkyZjE3M2Iu LjRiYTA5YjIgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3NldHVwLmMKPiArKysgYi94ZW4v YXJjaC9hcm0vc2V0dXAuYwo+IEBAIC00OSw2ICs0OSw3IEBACj4gICAjaW5jbHVkZSA8YXNtL3Nl dHVwLmg+Cj4gICAjaW5jbHVkZSA8eHNtL3hzbS5oPgo+ICAgI2luY2x1ZGUgPGFzbS9hY3BpLmg+ Cj4gKyNpbmNsdWRlIDxhY3BpL2FjcGlfaW9ydC5oPgo+ICAgCj4gICBzdHJ1Y3QgYm9vdGluZm8g X19pbml0ZGF0YSBib290aW5mbzsKPiAgIAo+IEBAIC03OTYsNiArNzk3LDggQEAgdm9pZCBfX2lu aXQgc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgYm9vdF9waHlzX29mZnNldCwKPiAgIAo+ICAgICAg IHRhc2tsZXRfc3Vic3lzX2luaXQoKTsKPiAgIAo+ICsgICAgLyogUGFyc2UgdGhlIEFDUEkgaW9y dCBkYXRhICovCj4gKyAgICBhY3BpX2lvcnRfaW5pdCgpOwo+ICAgCj4gICAgICAgeHNtX2R0X2lu aXQoKTsKPiAgIAo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9hY3BpL01ha2VmaWxlIGIveGVu L2RyaXZlcnMvYWNwaS9NYWtlZmlsZQo+IGluZGV4IDQ0NGIxMWQuLmU3ZmZkODIgMTAwNjQ0Cj4g LS0tIGEveGVuL2RyaXZlcnMvYWNwaS9NYWtlZmlsZQo+ICsrKyBiL3hlbi9kcml2ZXJzL2FjcGkv TWFrZWZpbGUKPiBAQCAtMSw1ICsxLDYgQEAKPiAgIHN1YmRpci15ICs9IHRhYmxlcwo+ICAgc3Vi ZGlyLXkgKz0gdXRpbGl0aWVzCj4gK3N1YmRpci0kKENPTkZJR19BUk0pICs9IGFybQo+ICAgc3Vi ZGlyLSQoQ09ORklHX1g4NikgKz0gYXBlaQo+ICAgCj4gICBvYmotYmluLXkgKz0gdGFibGVzLmlu aXQubwo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9hY3BpL2FybS9NYWtlZmlsZSBiL3hlbi9k cml2ZXJzL2FjcGkvYXJtL01ha2VmaWxlCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwLi43YzAzOWJiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3hlbi9kcml2ZXJzL2FjcGkv YXJtL01ha2VmaWxlCj4gQEAgLTAsMCArMSBAQAo+ICtvYmoteSArPSBpb3J0Lm8KPiBkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvYWNwaS9hcm0vaW9ydC5jIGIveGVuL2RyaXZlcnMvYWNwaS9hcm0v aW9ydC5jCj4gaW5kZXggMmUzNjhhNi4uN2Y1NDA2MiAxMDA2NDQKPiAtLS0gYS94ZW4vZHJpdmVy cy9hY3BpL2FybS9pb3J0LmMKPiArKysgYi94ZW4vZHJpdmVycy9hY3BpL2FybS9pb3J0LmMKPiBA QCAtMTQsMTcgKzE0LDQ3IEBACj4gICAgKiBUaGlzIGZpbGUgaW1wbGVtZW50cyBlYXJseSBkZXRl Y3Rpb24vcGFyc2luZyBvZiBJL08gbWFwcGluZwo+ICAgICogcmVwb3J0ZWQgdG8gT1MgdGhyb3Vn aCBmaXJtd2FyZSB2aWEgSS9PIFJlbWFwcGluZyBUYWJsZSAoSU9SVCkKPiAgICAqIElPUlQgZG9j dW1lbnQgbnVtYmVyOiBBUk0gREVOIDAwNDlBCj4gKyAqCj4gKyAqIEJhc2VkIG9uIExpbnV4IGRy aXZlcnMvYWNwaS9hcm02NC9pb3J0LmMKPiArICogPT4gY29tbWl0IGNhNzhkMzE3M2NmZjM1MDNi Y2QxNTcyM2IwNDk3NTdmNzU3NjJkMTUKPiArICoKPiArICogWGVuIG1vZGlmaWNhdGlvbjoKPiAr ICogU2FtZWVyIEdvZWwgPHNnb2VsQGNvZGVhdXJvcmEub3JnPgo+ICsgKiBDb3B5cmlnaHQgKEMp IDIwMTcsIFRoZSBMaW51eCBGb3VuZGF0aW9uLCBBbGwgcmlnaHRzIHJlc2VydmVkLgo+ICsgKgo+ ICAgICovCj4gICAKPiAtI2RlZmluZSBwcl9mbXQoZm10KQkiQUNQSTogSU9SVDogIiBmbXQKPiAt Cj4gLSNpbmNsdWRlIDxsaW51eC9hY3BpX2lvcnQuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L2lvbW11 Lmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L2xpc3Qu aD4KPiAtI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgo+IC0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1f ZGV2aWNlLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gKyNpbmNsdWRlIDx4ZW4vYWNw aS5oPgo+ICsjaW5jbHVkZSA8YWNwaS9hY3BpX2lvcnQuaD4KCldoeSBkbyB5b3UgbmVlZCB0byBp bmNsdWRlIHRoZXJlPyBDYW4ndCB0aGlzIGJlIGRvbmUgYWZ0ZXIgYWxsIHRoZSA8eGVuLz4gPwoK PiArI2luY2x1ZGUgPHhlbi9md25vZGUuaD4KPiArI2luY2x1ZGUgPHhlbi9pb21tdS5oPgo+ICsj aW5jbHVkZSA8eGVuL2xpYi5oPgo+ICsjaW5jbHVkZSA8eGVuL2xpc3QuaD4KPiArI2luY2x1ZGUg PHhlbi9wY2kuaD4KPiArCj4gKyNpbmNsdWRlIDxhc20vZGV2aWNlLmg+Cj4gKwo+ICsvKiBYZW46 IERlZmluZSBjb21wYXRpYmlsaXR5IGZ1bmN0aW9ucyAqLwo+ICsjZGVmaW5lIEZXX0JVRwkJIltG aXJtd2FyZSBCdWddOiAiCj4gKyNkZWZpbmUgcHJfZXJyKGZtdCwgLi4uKSBwcmludGsoWEVOTE9H X0VSUiBmbXQsICMjIF9fVkFfQVJHU19fKQo+ICsjZGVmaW5lIHByX3dhcm4oZm10LCAuLi4pIHBy aW50ayhYRU5MT0dfV0FSTklORyBmbXQsICMjIF9fVkFfQVJHU19fKQo+ICsKPiArLyogQWxpYXMg dG8gWGVuIGFsbG9jYXRpb24gaGVscGVycyAqLwo+ICsjZGVmaW5lIGtmcmVlIHhmcmVlCj4gKyNk ZWZpbmUga21hbGxvYyhzaXplLCBmbGFncykgICAgICAgICAgICBfeG1hbGxvYyhzaXplLCBzaXpl b2Yodm9pZCAqKSkKPiArI2RlZmluZSBremFsbG9jKHNpemUsIGZsYWdzKSAgICAgICAgICAgIF94 emFsbG9jKHNpemUsIHNpemVvZih2b2lkICopKQoKTGlrZWx5IHlvdSB3b3VsZCBuZWVkIHRoZSBz YW1lIG1hY3JvcyBpbiB0aGUgU01NVXYzIGRyaXZlci4gQ291bGQgd2UgCnRoaW5rIG9mIGEgY29t bW9uIGhlYWRlcnMgaW1wbGVtZW50aW5nIHRoZSBMaW51eCBjb21wYXQgbGF5ZXI/Cgo+ICsKPiAr LyogUmVkZWZpbmUgV0FSTiBtYWNyb3MgKi8KPiArI3VuZGVmIFdBUk4KPiArI3VuZGVmIFdBUk5f T04KPiArI2RlZmluZSBXQVJOKGNvbmRpdGlvbiwgZm9ybWF0Li4uKSAoewkJCQkJXAo+ICsJaW50 IF9fcmV0X3dhcm5fb24gPSAhIShjb25kaXRpb24pOwkJCQlcCj4gKwlpZiAodW5saWtlbHkoX19y ZXRfd2Fybl9vbikpCQkJCQlcCj4gKwkJcHJpbnRrKGZvcm1hdCk7CQkJCQkJXAo+ICsJdW5saWtl bHkoX19yZXRfd2Fybl9vbik7CQkJCQlcCj4gK30pCgpBZ2FpbiwgeW91IHNob3VsZCBhdCBsZWFz dCB0cnkgdG8gbW9kaWZ5IHRoZSBjb21tb24gY29kZSB2ZXJzaW9uIGJlZm9yZSAKZGVjaWRpbmcg dG8gcmVkZWZpbmUgaXQgaGVyZS4KCj4gKyNkZWZpbmUgV0FSTl9UQUlOVChjb25kLCB0YWludCwg Zm9ybWF0Li4uKSBXQVJOKGNvbmQsIGZvcm1hdCkKPiArI2RlZmluZSBXQVJOX09OKGNvbmQpICAg ICAgICAgICAgICAgICAgICAgICghIWNvbmQpCj4gICAKPiAgICNkZWZpbmUgSU9SVF9UWVBFX01B U0sodHlwZSkJKDEgPDwgKHR5cGUpKQo+ICAgI2RlZmluZSBJT1JUX01TSV9UWVBFCQkoMSA8PCBB Q1BJX0lPUlRfTk9ERV9JVFNfR1JPVVApCj4gQEAgLTI1Niw2ICsyODYsMTMgQEAgc3RhdGljIGFj cGlfc3RhdHVzIGlvcnRfbWF0Y2hfbm9kZV9jYWxsYmFjayhzdHJ1Y3QgYWNwaV9pb3J0X25vZGUg Km5vZGUsCj4gICAJYWNwaV9zdGF0dXMgc3RhdHVzOwo+ICAgCj4gICAJaWYgKG5vZGUtPnR5cGUg PT0gQUNQSV9JT1JUX05PREVfTkFNRURfQ09NUE9ORU5UKSB7Cj4gKwkJc3RhdHVzID0gQUVfTk9U X0lNUExFTUVOVEVEOwo+ICsvKgo+ICsgKiBXZSBuZWVkIHRoZSBuYW1lc3BhY2Ugb2JqZWN0IG5h bWUgZnJvbSBkc2R0IHRvIG1hdGNoIHRoZSBpb3J0IG5vZGUsIHRoaXMKClBsZWFzZSBhZGQgYSAi WGVuOiBUT0RPOiIgaW4gZnJvbnQuCgo+ICsgKiB3aWxsIG5lZWQgYWRkaXRpb25zIHRvIHRoZSBr ZXJuZWwgeGVuIGJ1cyBub3RpZmllcnMuCj4gKyAqIFNvLCBkaXNhYmxpbmcgdGhlIG5hbWVkIG5v ZGUgY29kZSB0aWxsIGEgcHJvcG9zYWwgaXMgYXBwcm92ZWQuCj4gKyAqLwo+ICsjaWYgMAo+ICAg CQlzdHJ1Y3QgYWNwaV9idWZmZXIgYnVmID0geyBBQ1BJX0FMTE9DQVRFX0JVRkZFUiwgTlVMTCB9 Owo+ICAgCQlzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYgPSB0b19hY3BpX2RldmljZV9ub2RlKGRl di0+Zndub2RlKTsKPiAgIAkJc3RydWN0IGFjcGlfaW9ydF9uYW1lZF9jb21wb25lbnQgKm5jb21w Owo+IEBAIC0yNzUsMTEgKzMxMiwxMiBAQCBzdGF0aWMgYWNwaV9zdGF0dXMgaW9ydF9tYXRjaF9u b2RlX2NhbGxiYWNrKHN0cnVjdCBhY3BpX2lvcnRfbm9kZSAqbm9kZSwKPiAgIAkJc3RhdHVzID0g IXN0cmNtcChuY29tcC0+ZGV2aWNlX25hbWUsIGJ1Zi5wb2ludGVyKSA/Cj4gICAJCQkJCQkJQUVf T0sgOiBBRV9OT1RfRk9VTkQ7Cj4gICAJCWFjcGlfb3NfZnJlZShidWYucG9pbnRlcik7Cj4gKyNl bmRpZgo+ICAgCX0gZWxzZSBpZiAobm9kZS0+dHlwZSA9PSBBQ1BJX0lPUlRfTk9ERV9QQ0lfUk9P VF9DT01QTEVYKSB7Cj4gICAJCXN0cnVjdCBhY3BpX2lvcnRfcm9vdF9jb21wbGV4ICpwY2lfcmM7 Cj4gLQkJc3RydWN0IHBjaV9idXMgKmJ1czsKPiArCQlzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldjsK CkRvIHlvdSByZWFsbHkgbmVlZCB0byBtb2RpZnkgdGhlIGNvZGU/IFdvdWxkbid0IGl0IGJlIHBv c3NpYmxlIHRvIGRvCgojZGVmaW5lIHBjaV9idXMgcGNpX2RldgoKV2l0aCBhbiBleHBsYW5hdGlv biB3aHkgeW91IGRvIHRoYXQgb24gdG9wLgoKPiAgIAo+IC0JCWJ1cyA9IHRvX3BjaV9idXMoZGV2 KTsKPiArCQlwY2lfZGV2ID0gdG9fcGNpX2RldihkZXYpOwoKU2FtZSBoZXJlPwoKPiAgIAkJcGNp X3JjID0gKHN0cnVjdCBhY3BpX2lvcnRfcm9vdF9jb21wbGV4ICopbm9kZS0+bm9kZV9kYXRhOwo+ ICAgCj4gICAJCS8qCj4gQEAgLTI4NywxMiArMzI1LDExIEBAIHN0YXRpYyBhY3BpX3N0YXR1cyBp b3J0X21hdGNoX25vZGVfY2FsbGJhY2soc3RydWN0IGFjcGlfaW9ydF9ub2RlICpub2RlLAo+ICAg CQkgKiB3aXRoIHJvb3QgY29tcGxleGVzLiBFYWNoIHNlZ21lbnQgbnVtYmVyIGNhbiByZXByZXNl bnQgb25seQo+ICAgCQkgKiBvbmUgcm9vdCBjb21wbGV4Lgo+ICAgCQkgKi8KPiAtCQlzdGF0dXMg PSBwY2lfcmMtPnBjaV9zZWdtZW50X251bWJlciA9PSBwY2lfZG9tYWluX25yKGJ1cykgPwo+ICsJ CXN0YXR1cyA9IHBjaV9yYy0+cGNpX3NlZ21lbnRfbnVtYmVyID09IHBjaV9kb21haW5fbnIocGNp X2RldikgPwo+ICAgCQkJCQkJCUFFX09LIDogQUVfTk9UX0ZPVU5EOwo+ICAgCX0gZWxzZSB7Cj4g ICAJCXN0YXR1cyA9IEFFX05PVF9GT1VORDsKPiAgIAl9Cj4gLW91dDoKPiAgIAlyZXR1cm4gc3Rh dHVzOwo+ICAgfQo+ICAgCj4gQEAgLTMyMCw2ICszNTcsMTEgQEAgc3RhdGljIGludCBpb3J0X2lk X21hcChzdHJ1Y3QgYWNwaV9pb3J0X2lkX21hcHBpbmcgKm1hcCwgdTggdHlwZSwgdTMyIHJpZF9p biwKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+ICsvKgo+ICsgKiBOYW1lZCBjb21wb25lbnRz IGFyZSBub3Qgc3VwcG9ydGVkIHlldCBzbyB3ZSBkbyBub3QgbmVlZCB0aGUKPiArICogaW9ydF9u b2RlX2dldF9pZCBmdW5jdGlvbgoKTWlzc2luZyBmdWxsIHN0b3AgKyBUT0RPLgoKPiArICovCj4g KyNpZiAwCj4gICBzdGF0aWMKPiAgIHN0cnVjdCBhY3BpX2lvcnRfbm9kZSAqaW9ydF9ub2RlX2dl dF9pZChzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUsCj4gICAJCQkJCXUzMiAqaWRfb3V0LCB1 OCB0eXBlX21hc2ssCj4gQEAgLTM1OCw2ICs0MDAsNyBAQCBzdHJ1Y3QgYWNwaV9pb3J0X25vZGUg KmlvcnRfbm9kZV9nZXRfaWQoc3RydWN0IGFjcGlfaW9ydF9ub2RlICpub2RlLAo+ICAgCj4gICAJ cmV0dXJuIE5VTEw7Cj4gICB9Cj4gKyNlbmRpZgo+ICAgCj4gICBzdGF0aWMgc3RydWN0IGFjcGlf aW9ydF9ub2RlICppb3J0X25vZGVfbWFwX3JpZChzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUs Cj4gICAJCQkJCQl1MzIgcmlkX2luLCB1MzIgKnJpZF9vdXQsCj4gQEAgLTQxMCw2ICs0NTMsMTAg QEAgZmFpbF9tYXA6Cj4gICAJcmV0dXJuIE5VTEw7Cj4gICB9Cj4gICAKPiArLyogWGVuOiBDb21t ZW50IG91dCB0aGUgTmFtZWRDb21wb25lbnQgYW5kIElUUyBtYXBwaW5nIGNvZGUgdGlsbCB0aGUg c3VwcG9ydAoKKyBUT0RPIGhlcmUgcGxlYXNlLgoKPiArICogaXMgYXZhaWxhYmxlLgo+ICsgKi8K PiArI2lmIDAKPiAgIHN0YXRpYyBzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKmlvcnRfZmluZF9kZXZf bm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICB7Cj4gICAJc3RydWN0IHBjaV9idXMgKnBidXM7 Cj4gQEAgLTQ4MSw3ICs1MjgsNyBAQCBzdGF0aWMgaW50IGlvcnRfZGV2X2ZpbmRfaXRzX2lkKHN0 cnVjdCBkZXZpY2UgKmRldiwgdTMyIHJlcV9pZCwKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+ IC0vKioKPiArLyoKCldoeSB0aGlzIGNoYW5nZT8KCj4gICAgKiBpb3J0X2dldF9kZXZpY2VfZG9t YWluKCkgLSBGaW5kIE1TSSBkb21haW4gcmVsYXRlZCB0byBhIGRldmljZQo+ICAgICogQGRldjog VGhlIGRldmljZS4KPiAgICAqIEByZXFfaWQ6IFJlcXVlc3RlciBJRCBmb3IgdGhlIGRldmljZS4K PiBAQCAtNTEwLDcgKzU1Nyw3IEBAIHN0YXRpYyBpbnQgX19nZXRfcGNpX3JpZChzdHJ1Y3QgcGNp X2RldiAqcGRldiwgdTE2IGFsaWFzLCB2b2lkICpkYXRhKQo+ICAgCSpyaWQgPSBhbGlhczsKPiAg IAlyZXR1cm4gMDsKPiAgIH0KPiAtCj4gKyNlbmRpZgoKUGxlYXNlIGF2b2lkIGRyb3BwaW5nIG5l d2xpbmUuCgo+ICAgc3RhdGljIGludCBhcm1fc21tdV9pb3J0X3hsYXRlKHN0cnVjdCBkZXZpY2Ug KmRldiwgdTMyIHN0cmVhbWlkLAo+ICAgCQkJICAgICAgIHN0cnVjdCBmd25vZGVfaGFuZGxlICpm d25vZGUsCj4gICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGlvbW11X29wcyAqb3BzKQo+IEBAIC01 NDYsNiArNTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgKmlvcnRfaW9tbXVf eGxhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICAgCXJldHVybiByZXQgPyBOVUxMIDogb3BzOwo+ ICAgfQo+ICAgCj4gKyNpZiAwIC8qIFhlbjogV2UgZG8gbm90IG5lZWQgdGhpcyBmdW5jdGlvbiBm b3IgWGVuICovCj4gICAvKioKPiAgICAqIGlvcnRfc2V0X2RtYV9tYXNrIC0gU2V0LXVwIGRtYSBt YXNrIGZvciBhIGRldmljZS4KPiAgICAqCj4gQEAgLTU2Nyw3ICs2MTUsNyBAQCB2b2lkIGlvcnRf c2V0X2RtYV9tYXNrKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIAlpZiAoIWRldi0+ZG1hX21hc2sp Cj4gICAJCWRldi0+ZG1hX21hc2sgPSAmZGV2LT5jb2hlcmVudF9kbWFfbWFzazsKPiAgIH0KPiAt Cj4gKyNlbmRpZgoKU2FtZSBoZXJlLgoKPiAgIC8qKgo+ICAgICogaW9ydF9pb21tdV9jb25maWd1 cmUgLSBTZXQtdXAgSU9NTVUgY29uZmlndXJhdGlvbiBmb3IgYSBkZXZpY2UuCj4gICAgKgo+IEBA IC01ODMsMTQgKzYzMSwxMyBAQCBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICppb3J0X2lvbW11X2Nv bmZpZ3VyZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICAJdTMyIHN0cmVhbWlkID0gMDsKPiAgIAo+ ICAgCWlmIChkZXZfaXNfcGNpKGRldikpIHsKPiAtCQlzdHJ1Y3QgcGNpX2J1cyAqYnVzID0gdG9f cGNpX2RldihkZXYpLT5idXM7Cj4gKwkJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXZpY2UgPSB0b19w Y2lfZGV2KGRldik7CgpTZWUgYWJvdmUuCgo+ICAgCQl1MzIgcmlkOwo+ICAgCj4gLQkJcGNpX2Zv cl9lYWNoX2RtYV9hbGlhcyh0b19wY2lfZGV2KGRldiksIF9fZ2V0X3BjaV9yaWQsCj4gLQkJCQkg ICAgICAgJnJpZCk7Cj4gKwkJcmlkID0gUENJX0JERjIocGNpX2RldmljZS0+YnVzLCBwY2lfZGV2 aWNlLT5kZXZmbik7CgpJIGJlbGlldmUgd2UgaGFkIGEgZGlzY3Vzc2lvbiBvbiB2MSBleHBsYWlu aW5nIHdoeSB0aGlzIGlzIHdyb25nLiBTbyBJIApkb24ndCB1bmRlcnN0YW5kIHdoeQoKPiAgIAo+ ICAgCQlub2RlID0gaW9ydF9zY2FuX25vZGUoQUNQSV9JT1JUX05PREVfUENJX1JPT1RfQ09NUExF WCwKPiAtCQkJCSAgICAgIGlvcnRfbWF0Y2hfbm9kZV9jYWxsYmFjaywgJmJ1cy0+ZGV2KTsKPiAr CQkJCSAgICAgIGlvcnRfbWF0Y2hfbm9kZV9jYWxsYmFjaywgZGV2KTsKPiAgIAkJaWYgKCFub2Rl KQo+ICAgCQkJcmV0dXJuIE5VTEw7Cj4gICAKPiBAQCAtNjAwLDYgKzY0NywxMyBAQCBjb25zdCBz dHJ1Y3QgaW9tbXVfb3BzICppb3J0X2lvbW11X2NvbmZpZ3VyZShzdHJ1Y3QgZGV2aWNlICpkZXYp Cj4gICAJCW9wcyA9IGlvcnRfaW9tbXVfeGxhdGUoZGV2LCBwYXJlbnQsIHN0cmVhbWlkKTsKPiAg IAo+ICAgCX0gZWxzZSB7Cj4gKwkJcmV0dXJuIE5VTEw7Cj4gKy8qCj4gKyAqIFdlIG5lZWQgdGhl IG5hbWVzcGFjZSBvYmplY3QgbmFtZSBmcm9tIGRzZHQgdG8gbWF0Y2ggdGhlIGlvcnQgbm9kZSwg dGhpcwoKWGVuOgoKPiArICogd2lsbCBuZWVkIGFkZGl0aW9ucyB0byB0aGUga2VybmVsIHhlbiBi dXMgbm90aWZpZXJzLgo+ICsgKiBTbywgZGlzYWJsaW5nIHRoZSBuYW1lZCBub2RlIGNvZGUgdGls bCBhIHByb3Bvc2FsIGlzIGFwcHJvdmVkLgo+ICsgKi8KPiArI2lmIDAKPiAgIAkJaW50IGkgPSAw Owo+ICAgCj4gICAJCW5vZGUgPSBpb3J0X3NjYW5fbm9kZShBQ1BJX0lPUlRfTk9ERV9OQU1FRF9D T01QT05FTlQsCj4gQEAgLTYxNiwxMSArNjcwLDE3IEBAIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMg KmlvcnRfaW9tbXVfY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIAkJCXBhcmVudCA9 IGlvcnRfbm9kZV9nZXRfaWQobm9kZSwgJnN0cmVhbWlkLAo+ICAgCQkJCQkJICBJT1JUX0lPTU1V X1RZUEUsIGkrKyk7Cj4gICAJCX0KPiArI2VuZGlmCj4gICAJfQo+ICAgCj4gICAJcmV0dXJuIG9w czsKPiAgIH0KPiAgIAo+ICsvKgo+ICsgKiBYZW46IE5vdCB1c2luZyB0aGUgcGFyc2luZyBvcHMg Zm9yIG5vdy4gTmVlZCB0byBjaGVjayBhbmQgc2VlIGlmIGl0IHdpbGwKPiArICogYmUgdXNlZnVs IHRvIHVzZSB0aGVzZSBpbiBzb21lIGZvcm0sIG9yIGxldCB0aGUgZHJpdmVyIHBhcnNlIElPUlQg bm9kZS4KPiArICovCj4gKyNpZiAwCj4gICBzdGF0aWMgdm9pZCBfX2luaXQgYWNwaV9pb3J0X3Jl Z2lzdGVyX2lycShpbnQgaHdpcnEsIGNvbnN0IGNoYXIgKm5hbWUsCj4gICAJCQkJCSAgaW50IHRy aWdnZXIsCj4gICAJCQkJCSAgc3RydWN0IHJlc291cmNlICpyZXMpCj4gQEAgLTgwNyw3ICs4Njcs NyBAQCBjb25zdCBzdHJ1Y3QgaW9ydF9pb21tdV9jb25maWcgKmlvcnRfZ2V0X2lvbW11X2NmZyhz dHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUpCj4gICAJCXJldHVybiBOVUxMOwo+ICAgCX0KPiAg IH0KPiAtCj4gKyNlbmRpZgoKUGxlYXNlIGF2b2lkIGRyb3BwaW5nIG5ld2xpbmUuCgo+ICAgLyoq Cj4gICAgKiBpb3J0X2FkZF9zbW11X3BsYXRmb3JtX2RldmljZSgpIC0gQWxsb2NhdGUgYSBwbGF0 Zm9ybSBkZXZpY2UgZm9yIFNNTVUKPiAgICAqIEBub2RlOiBQb2ludGVyIHRvIFNNTVUgQUNQSSBJ T1JUIG5vZGUKPiBAQCAtODE3LDc4ICs4NzcsNDIgQEAgY29uc3Qgc3RydWN0IGlvcnRfaW9tbXVf Y29uZmlnICppb3J0X2dldF9pb21tdV9jZmcoc3RydWN0IGFjcGlfaW9ydF9ub2RlICpub2RlKQo+ ICAgc3RhdGljIGludCBfX2luaXQgaW9ydF9hZGRfc21tdV9wbGF0Zm9ybV9kZXZpY2Uoc3RydWN0 IGFjcGlfaW9ydF9ub2RlICpub2RlKQoKTG9va2luZyBhdCB0aGUgY2hhbmdlcyBpbiB0aGlzIGZ1 bmN0aW9uLiBZb3UgYmFzaWNhbGx5IHJld3JpdGUgCmV2ZXJ5dGhpbmcuIEkgd291bGQgcHJlZmVy IGlmIHlvdSBjb21tZW50IHRoZSBjdXJyZW50IG9uZSBhbmQgaW1wbGVtZW50IApmcm9tIHNjcmF0 Y2ggdGhlIFhlbiB2ZXJzaW9uLgoKPiAgIHsKPiAgIAlzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndu b2RlOwo+IC0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKPiAtCXN0cnVjdCByZXNvdXJj ZSAqcjsKPiAtCWVudW0gZGV2X2RtYV9hdHRyIGF0dHI7Cj4gLQlpbnQgcmV0LCBjb3VudDsKPiAt CWNvbnN0IHN0cnVjdCBpb3J0X2lvbW11X2NvbmZpZyAqb3BzID0gaW9ydF9nZXRfaW9tbXVfY2Zn KG5vZGUpOwo+IC0KPiAtCWlmICghb3BzKQo+IC0JCXJldHVybiAtRU5PREVWOwo+IC0KPiAtCXBk ZXYgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2Mob3BzLT5uYW1lLCBQTEFURk9STV9ERVZJRF9BVVRP KTsKPiAtCWlmICghcGRldikKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAtCj4gLQljb3VudCA9IG9w cy0+aW9tbXVfY291bnRfcmVzb3VyY2VzKG5vZGUpOwo+IC0KPiAtCXIgPSBrY2FsbG9jKGNvdW50 LCBzaXplb2YoKnIpLCBHRlBfS0VSTkVMKTsKPiAtCWlmICghcikgewo+IC0JCXJldCA9IC1FTk9N RU07Cj4gLQkJZ290byBkZXZfcHV0Owo+IC0JfQo+IC0KPiAtCW9wcy0+aW9tbXVfaW5pdF9yZXNv dXJjZXMociwgbm9kZSk7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gKwlpbnQgcmV0Owo+ICAg Cj4gLQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByLCBjb3VudCk7 Cj4gICAJLyoKPiAtCSAqIFJlc291cmNlcyBhcmUgZHVwbGljYXRlZCBpbiBwbGF0Zm9ybV9kZXZp Y2VfYWRkX3Jlc291cmNlcywKPiAtCSAqIGZyZWUgdGhlaXIgYWxsb2NhdGVkIG1lbW9yeQo+ICsJ ICogTm90IGVuYWJsaW5nIHRoZSBwYXJzaW5nIG9wcyBmb3Igbm93LiBUaGUgY29ycmVzcG9uZGlu ZyBkcml2ZXIKPiArCSAqIGNhbiBwYXJzZSB0aGlzIGluZm9ybWF0aW9uIGFzIG5lZWRlZCwgc28g ZGVsZXRpbmcgcmVsZXZhbnQgY29kZSBhcwo+ICsJICogY29tcGFyZWQgdG8gYmFzZSByZXZpc2lv bi4KPiAgIAkgKi8KPiAtCWtmcmVlKHIpOwo+ICAgCj4gLQlpZiAocmV0KQo+IC0JCWdvdG8gZGV2 X3B1dDsKPiArCWRldiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkZXZpY2UpLCBHRlBfS0VSTkVM KTsKPiArCWlmICghZGV2KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICAgCj4gICAJLyoKPiAgIAkg KiBBZGQgYSBjb3B5IG9mIElPUlQgbm9kZSBwb2ludGVyIHRvIHBsYXRmb3JtX2RhdGEgdG8KPiAg IAkgKiBiZSB1c2VkIHRvIHJldHJpZXZlIElPUlQgZGF0YSBpbmZvcm1hdGlvbi4KPiAgIAkgKi8K PiAtCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShwZGV2LCAmbm9kZSwgc2l6ZW9mKG5v ZGUpKTsKPiAtCWlmIChyZXQpCj4gLQkJZ290byBkZXZfcHV0Owo+IC0KPiAtCS8qCj4gLQkgKiBX ZSBleHBlY3QgdGhlIGRtYSBtYXNrcyB0byBiZSBlcXVpdmFsZW50IGZvcgo+IC0JICogYWxsIFNN TVVzIHNldC11cHMKPiAtCSAqLwo+IC0JcGRldi0+ZGV2LmRtYV9tYXNrID0gJnBkZXYtPmRldi5j b2hlcmVudF9kbWFfbWFzazsKPiArCWRldi0+dHlwZSA9IERFVl9BQ1BJOwo+ICsJZGV2LT5hY3Bp X25vZGUgPSBub2RlOwo+ICAgCj4gICAJZndub2RlID0gaW9ydF9nZXRfZndub2RlKG5vZGUpOwo+ ICAgCj4gICAJaWYgKCFmd25vZGUpIHsKPiAgIAkJcmV0ID0gLUVOT0RFVjsKPiAtCQlnb3RvIGRl dl9wdXQ7Cj4gKwkJZ290byBlcnJvcjsKPiAgIAl9Cj4gICAKPiAtCXBkZXYtPmRldi5md25vZGUg PSBmd25vZGU7Cj4gLQo+IC0JYXR0ciA9IG9wcy0+aW9tbXVfaXNfY29oZXJlbnQobm9kZSkgPwo+ IC0JCQkgICAgIERFVl9ETUFfQ09IRVJFTlQgOiBERVZfRE1BX05PTl9DT0hFUkVOVDsKPiAtCj4g LQkvKiBDb25maWd1cmUgRE1BIGZvciB0aGUgcGFnZSB0YWJsZSB3YWxrZXIgKi8KPiAtCWFjcGlf ZG1hX2NvbmZpZ3VyZSgmcGRldi0+ZGV2LCBhdHRyKTsKPiArCWRldi0+Zndub2RlID0gZndub2Rl Owo+ICAgCj4gLQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpOwo+IC0JaWYgKHJldCkK PiAtCQlnb3RvIGRtYV9kZWNvbmZpZ3VyZTsKPiArCS8qIENhbGwgdGhlIGFjcGkgaW5pdCBmdW5j dGlvbnMgZm9yIElPTU1VIGRldmljZXMgKi8KPiArCXJldCA9IGFjcGlfZGV2aWNlX2luaXQoREVW SUNFX0lPTU1VLCAodm9pZCAqKWRldiwgbm9kZS0+dHlwZSk7Cj4gICAKPiAgIAlyZXR1cm4gMDsK PiAgIAo+IC1kbWFfZGVjb25maWd1cmU6Cj4gLQlhY3BpX2RtYV9kZWNvbmZpZ3VyZSgmcGRldi0+ ZGV2KTsKPiAtZGV2X3B1dDoKPiAtCXBsYXRmb3JtX2RldmljZV9wdXQocGRldik7Cj4gK2Vycm9y Ogo+ICsJa2ZyZWUoZGV2KTsKPiAgIAo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4gQEAgLTk1Nyw1 ICs5ODEsNiBAQCB2b2lkIF9faW5pdCBhY3BpX2lvcnRfaW5pdCh2b2lkKQo+ICAgCj4gICAJaW9y dF9pbml0X3BsYXRmb3JtX2RldmljZXMoKTsKPiAgIAo+IC0JYWNwaV9wcm9iZV9kZXZpY2VfdGFi bGUoaW9ydCk7Cj4gKwkvKiBYZW47IERvIG5vdCBuZWVkIGEgZGV2aWNlIHRhYmxlIHByb2JlICov Cj4gKwkvKiBhY3BpX3Byb2JlX2RldmljZV90YWJsZShpb3J0KTsqLwoKUGxlYXNlIHVzZSBlaXRo ZXIKCiNpZiAwCgojZW5kaWYKCm9yIGludHJvZHVjZSBhIGR1bW15IGFjcGlfcHJvYmVfZGV2aWNl X3RhYmxlKC4uLikgYXQgdGhlIHN0YXJ0LgoKPiAgIH0KPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9z bW11LmMKPiBpbmRleCAzNjJkNTc4Li5hZDk1NmQ1IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FybS9zbW11LmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h cm0vc21tdS5jCj4gQEAgLTE4MSw2ICsxODEsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICpkZXZt X2lvcmVtYXBfcmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2LAo+ICAgICogWGVuOiBQQ0kgZnVu Y3Rpb25zCj4gICAgKiBUT0RPOiBJdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgd2hlbiBQQ0kgd2ls bCBiZSBzdXBwb3J0ZWQKPiAgICAqLwo+ICsjdW5kZWYgdG9fcGNpX2RldgoKV2h5IHRoaXMgY2hh bmdlPwoKPiAgICNkZWZpbmUgdG9fcGNpX2RldihkZXYpCShOVUxMKQo+ICAgc3RhdGljIGlubGlu ZSBpbnQgcGNpX2Zvcl9lYWNoX2RtYV9hbGlhcyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiAgIAkJ CQkJIGludCAoKmZuKSAoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4gZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FjcGkvYWNwaV9pb3J0LmggYi94ZW4vaW5jbHVkZS9hY3BpL2FjcGlfaW9ydC5oCj4g aW5kZXggNzdlMDgwOS4uZDQzMTVhNCAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hY3BpL2Fj cGlfaW9ydC5oCj4gKysrIGIveGVuL2luY2x1ZGUvYWNwaS9hY3BpX2lvcnQuaAoKWW91IHByb2Jh Ymx5IHdhbnQgdG8gcmUtc3luYyB0aGlzIGhlYWRlcnMgYXMgaXQgY2hhbmdlZCBxdWl0ZSBhIGJp dCBhbmQgCndvdWxkIGF2b2lkIHNvbWUgc3BlY2lmaWMgI2lmIDAgZm9yIFhlbi4KCj4gQEAgLTE5 LDI3ICsxOSwzMiBAQAo+ICAgI2lmbmRlZiBfX0FDUElfSU9SVF9IX18KPiAgICNkZWZpbmUgX19B Q1BJX0lPUlRfSF9fCj4gICAKPiAtI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KPiAtI2luY2x1ZGUg PGxpbnV4L2Z3bm9kZS5oPgo+IC0jaW5jbHVkZSA8bGludXgvaXJxZG9tYWluLmg+Cj4gKyNpbmNs dWRlIDx4ZW4vYWNwaS5oPgo+ICsjaW5jbHVkZSA8YXNtL2RldmljZS5oPgo+ICAgCj4gKy8qIFhl bjogTm90IHVzaW5nIElPUlQgSVJRIGJpbmRpbmdzICovCj4gKyNpZiAwCj4gICAjZGVmaW5lIElP UlRfSVJRX01BU0soaXJxKQkJKGlycSAmIDB4ZmZmZmZmZmZVTEwpCj4gICAjZGVmaW5lIElPUlRf SVJRX1RSSUdHRVJfTUFTSyhpcnEpCSgoaXJxID4+IDMyKSAmIDB4ZmZmZmZmZmZVTEwpCj4gICAK PiAgIGludCBpb3J0X3JlZ2lzdGVyX2RvbWFpbl90b2tlbihpbnQgdHJhbnNfaWQsIHN0cnVjdCBm d25vZGVfaGFuZGxlICpmd19ub2RlKTsKPiAgIHZvaWQgaW9ydF9kZXJlZ2lzdGVyX2RvbWFpbl90 b2tlbihpbnQgdHJhbnNfaWQpOwo+ICAgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmlvcnRfZmluZF9k b21haW5fdG9rZW4oaW50IHRyYW5zX2lkKTsKPiAtI2lmZGVmIENPTkZJR19BQ1BJX0lPUlQKPiAr I2VuZGlmCj4gKyNpZmRlZiBDT05GSUdfQVJNXzY0CgpBcyBzYWlkIGluIHRoZSBmaXJzdCB2ZXJz aW9uLCBJIHNlZSBubyBwb2ludCBvZiByZXBsYWNpbmcgCkNPTkZJR19BQ1BJX0lPUlQgd2l0aCBD T05GSUdfQVJNXzY0LiBZb3Ugc2hvdWxkIGluc3RlYWQgdGFrZSBhZHZhbnRhZ2UgCm9mIHRoZSBL Y29uZmlnIHRvIGFkZCBhIG5ldyBjb25maWcgQUNQSV9JT1JUIGFuZCBzZWxlY3Qgb24gQXJtNjQg d2l0aCBBQ1BJLgoKPiAgIHZvaWQgYWNwaV9pb3J0X2luaXQodm9pZCk7Cj4gICBib29sIGlvcnRf bm9kZV9tYXRjaCh1OCB0eXBlKTsKPiArI2lmIDAKPiAgIHUzMiBpb3J0X21zaV9tYXBfcmlkKHN0 cnVjdCBkZXZpY2UgKmRldiwgdTMyIHJlcV9pZCk7Cj4gICBzdHJ1Y3QgaXJxX2RvbWFpbiAqaW9y dF9nZXRfZGV2aWNlX2RvbWFpbihzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiByZXFfaWQpOwo+ICAg LyogSU9NTVUgaW50ZXJmYWNlICovCj4gICB2b2lkIGlvcnRfc2V0X2RtYV9tYXNrKHN0cnVjdCBk ZXZpY2UgKmRldik7Cj4gKyNlbmRpZgo+ICAgY29uc3Qgc3RydWN0IGlvbW11X29wcyAqaW9ydF9p b21tdV9jb25maWd1cmUoc3RydWN0IGRldmljZSAqZGV2KTsKPiAgICNlbHNlCj4gICBzdGF0aWMg aW5saW5lIHZvaWQgYWNwaV9pb3J0X2luaXQodm9pZCkgeyB9Cj4gICBzdGF0aWMgaW5saW5lIGJv b2wgaW9ydF9ub2RlX21hdGNoKHU4IHR5cGUpIHsgcmV0dXJuIGZhbHNlOyB9Cj4gKyNpZiAwCj4g ICBzdGF0aWMgaW5saW5lIHUzMiBpb3J0X21zaV9tYXBfcmlkKHN0cnVjdCBkZXZpY2UgKmRldiwg dTMyIHJlcV9pZCkKPiAgIHsgcmV0dXJuIHJlcV9pZDsgfQo+ICAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgaXJxX2RvbWFpbiAqaW9ydF9nZXRfZGV2aWNlX2RvbWFpbihzdHJ1Y3QgZGV2aWNlICpkZXYs Cj4gQEAgLTQ3LDEyICs1MiwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBpcnFfZG9tYWluICpp b3J0X2dldF9kZXZpY2VfZG9tYWluKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgIHsgcmV0dXJuIE5V TEw7IH0KPiAgIC8qIElPTU1VIGludGVyZmFjZSAqLwo+ICAgc3RhdGljIGlubGluZSB2b2lkIGlv cnRfc2V0X2RtYV9tYXNrKHN0cnVjdCBkZXZpY2UgKmRldikgeyB9Cj4gKyNlbmRpZgo+ICAgc3Rh dGljIGlubGluZQo+ICAgY29uc3Qgc3RydWN0IGlvbW11X29wcyAqaW9ydF9pb21tdV9jb25maWd1 cmUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAgeyByZXR1cm4gTlVMTDsgfQo+ICAgI2VuZGlmCj4g ICAKPiAtI2RlZmluZSBJT1JUX0FDUElfREVDTEFSRShuYW1lLCB0YWJsZV9pZCwgZm4pCQlcCj4g LQlBQ1BJX0RFQ0xBUkVfUFJPQkVfRU5UUlkoaW9ydCwgbmFtZSwgdGFibGVfaWQsIDAsIE5VTEws IDAsIGZuKQo+IC0KPiAgICNlbmRpZiAvKiBfX0FDUElfSU9SVF9IX18gKi8KPiBkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kZXZpY2UuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZGV2 aWNlLmgKPiBpbmRleCA1MDI3Yzg3Li40ZWVmOWNlIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRl L2FzbS1hcm0vZGV2aWNlLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RldmljZS5oCj4g QEAgLTcsNiArNyw3IEBACj4gICBlbnVtIGRldmljZV90eXBlCj4gICB7Cj4gICAgICAgREVWX0RU LAo+ICsgICAgREVWX0FDUEksCj4gICB9Owo+ICAgCj4gICBzdHJ1Y3QgZGV2X2FyY2hkYXRhIHsK PiBAQCAtMjAsNiArMjEsNyBAQCBzdHJ1Y3QgZGV2aWNlCj4gICAjaWZkZWYgQ09ORklHX0hBU19E RVZJQ0VfVFJFRQo+ICAgICAgIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqb2Zfbm9kZTsgLyogVXNl ZCBieSBkcml2ZXJzIGltcG9ydGVkIGZyb20gTGludXggKi8KPiAgICNlbmRpZgo+ICsgICAgdm9p ZCAqYWNwaV9ub2RlOyAvKkN1cnJlbnQgdXNlIGNhc2UgaXMgYWNwaV9pb3J0X25vZGUgKi8KCkNh biB5b3UgZXhwbGFpbiB3aHkgeW91IG5lZWQgdGhhdD8gQWZ0ZXIgdGhlIGNyZWF0aW9uIG9mIGZ3 bm9kZSwgSSB3YXMgCmV4cGVjdGluZyBvZl9ub2RlIHRvIGRpc2FwcGVhci4gU28gSSBkb24ndCBy ZWFsbHkgZmFuY3kgc2VlIGFjcGlfbm9kZSAKaGVyZSBtb3JlIGl0IGRvZXMgbm90IGV4aXN0IGlu IExpbnV4LgoKPiAgICAgICBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlOyAvKmZ3IGRldmlj ZSBub2RlIGlkZW50aWZpZXIgKi8KPiAgICAgICBzdHJ1Y3QgaW9tbXVfZndzcGVjICppb21tdV9m d3NwZWM7Cj4gICAgICAgc3RydWN0IGRldl9hcmNoZGF0YSBhcmNoZGF0YTsKPiBkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGVuL2FjcGkuaCBiL3hlbi9pbmNsdWRlL3hlbi9hY3BpLmgKPiBpbmRl eCA5NDA5MzUwLi4yZjZhYWUxIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9hY3BpLmgK PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vYWNwaS5oCj4gQEAgLTMyLDYgKzMyLDcgQEAKPiAgIAo+ ICAgI2luY2x1ZGUgPGFjcGkvYWNwaS5oPgo+ICAgI2luY2x1ZGUgPGFzbS9hY3BpLmg+Cj4gKyNp bmNsdWRlIDx4ZW4vZndub2RlLmg+CgpJIHRoaW5rIHRoaXMgYW5kIC4uLgoKPiAgIAo+ICAgI2Rl ZmluZSBBQ1BJX01BRFRfR0VUXyhmbGQsIHgpICgoKHgpICYgQUNQSV9NQURUXyMjZmxkIyNfTUFT SykgLyBcCj4gICAJKEFDUElfTUFEVF8jI2ZsZCMjX01BU0sgJiAtQUNQSV9NQURUXyMjZmxkIyNf TUFTSykpCj4gQEAgLTQ5LDYgKzUwLDI2IEBACj4gICAgICAgICAgICAgICAgICAgKCEoZW50cnkp KSB8fCAodW5zaWduZWQgbG9uZykoZW50cnkpICsgc2l6ZW9mKCooZW50cnkpKSA+IChlbmQpIHx8 ICBcCj4gICAgICAgICAgICAgICAgICAgKGVudHJ5KS0+aGVhZGVyLmxlbmd0aCA8IHNpemVvZigq KGVudHJ5KSkpCj4gICAKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqYWNw aV9hbGxvY19md25vZGVfc3RhdGljKHZvaWQpCj4gK3sKPiArCXN0cnVjdCBmd25vZGVfaGFuZGxl ICpmd25vZGU7Cj4gKwo+ICsJZndub2RlID0geHphbGxvYyhzdHJ1Y3QgZndub2RlX2hhbmRsZSk7 Cj4gKwlpZiAoIWZ3bm9kZSkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlmd25vZGUtPnR5cGUg PSBGV05PREVfQUNQSV9TVEFUSUM7Cj4gKwo+ICsJcmV0dXJuIGZ3bm9kZTsKPiArfQo+ICsKPiAr c3RhdGljIGlubGluZSB2b2lkIGFjcGlfZnJlZV9md25vZGVfc3RhdGljKHN0cnVjdCBmd25vZGVf aGFuZGxlICpmd25vZGUpCj4gK3sKPiArCWlmICghZndub2RlIHx8IGZ3bm9kZS0+dHlwZSAhPSBG V05PREVfQUNQSV9TVEFUSUMpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXhmcmVlKGZ3bm9kZSk7Cj4g K30KCi4uLiB0aG9zZSAyIGhlbHBlcnMgc2hvdWxkIGdvIGluIGFzbS9hY3BpLmguCgo+ICAgI2lm ZGVmIENPTkZJR19BQ1BJCj4gICAKPiAgIGVudW0gYWNwaV9pbnRlcnJ1cHRfaWQgewo+IGRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmggYi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgKPiBp bmRleCA0M2YyMTI1Li4xODJiMWE1IDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wY2ku aAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaAo+IEBAIC05Miw4ICs5MiwxNiBAQCBzdHJ1 Y3QgcGNpX2RldiB7Cj4gICAjZGVmaW5lIFBUX0ZBVUxUX1RIUkVTSE9MRCAxMAo+ICAgICAgIH0g ZmF1bHQ7Cj4gICAgICAgdTY0IHZmX3JsZW5bNl07Cj4gKyNpZmRlZiBDT05GSUdfQVJNCj4gKyAg ICBzdHJ1Y3QgZGV2aWNlIGRldjsKPiArI2VuZGlmCgpUaGVyZSBhcmUgYSBwYXJ0IG9mIFBDSSB0 aGF0IGlzIGFscmVhZHkgcGVyLWFyY2guIFNlZSBhcmNoX3BjaV9kZXYgaW4gCmFzbS1hcm0vcGNp LmguCgpQbGVhc2UgZGVmaW5lIHRoZSBmaWVsZCBkZXYgaW4gaXQgcmF0aGVyIHRoYW4gaGVyZS4K Cj4gICB9Owo+ICAgCj4gKyNpZmRlZiBDT05GSUdfQVJNCj4gKyNkZWZpbmUgdG9fcGNpX2Rldihw KSBjb250YWluZXJfb2YocCwgc3RydWN0IHBjaV9kZXYsZGV2KQo+ICsjZGVmaW5lIHBjaV9kb21h aW5fbnIoZGV2KSBkZXYtPnNlZwo+ICsjZW5kaWYKClNpbWlsYXJseSwgdGhpcyBzaG91bGQgYmUg bW92ZWQgaW4gYXNtLWFybS9wY2kuaC4KCj4gKwo+ICAgI2RlZmluZSBmb3JfZWFjaF9wZGV2KGRv bWFpbiwgcGRldikgXAo+ICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkocGRldiwgJihkb21haW4t PmFyY2gucGRldl9saXN0KSwgZG9tYWluX2xpc3QpCj4gICAKPiAKCkNoZWVycywKCi0tIApKdWxp ZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=