From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 4/4] drm/i915: Introduce concept of a sub-platform Date: Tue, 26 Mar 2019 07:40:57 +0000 Message-ID: <20190326074057.27833-5-tvrtko.ursulin@linux.intel.com> References: <20190326074057.27833-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD0F66E79F for ; Tue, 26 Mar 2019 07:41:09 +0000 (UTC) In-Reply-To: <20190326074057.27833-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni , Jani Nikula , Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkNvbmNlcHQg b2YgYSBzdWItcGxhdGZvcm0gYWxyZWFkeSBleGlzdCBpbiBvdXIgY29kZSAobGlrZSBVTFggYW5k IFVMVApwbGF0Zm9ybSB2YXJpYW50cyBhbmQgc2ltaWxhciksaW1wbGVtZW50ZWQgdmlhIHRoZSBt YWNyb3Mgd2hpY2ggY2hlY2sgYQpsaXN0IG9mIGRldmljZSBpZHMgdG8gZGV0ZXJtaW5lIGEgbWF0 Y2guCgpXaXRoIHRoaXMgcGF0Y2ggd2UgY29uc29saWRhdGUgZGV2aWNlIGlkcyBjaGVja2luZyBp bnRvIGEgc2luZ2xlIGZ1bmN0aW9uCmNhbGxlZCBkdXJpbmcgZWFybHkgZHJpdmVyIGxvYWQuCgpB IGZldyBsb3cgYml0cyBpbiB0aGUgcGxhdGZvcm0gbWFzayBhcmUgcmVzZXJ2ZWQgZm9yIHN1Yi1w bGF0Zm9ybQppZGVudGlmaWNhdGlvbiBhbmQgZGVmaW5lZCBhcyBhIHBlci1wbGF0Zm9ybSBuYW1l c3BhY2UuCgpBdCB0aGUgc2FtZSB0aW1lIGl0IGZ1dHVyZSBwcm9vZnMgdGhlIHBsYXRmb3JtX21h c2sgaGFuZGxpbmcgYnkgcHJlcGFyaW5nCnRoZSBjb2RlIGZvciBlYXN5IGV4dGVuZGluZywgYW5k IHRpZGllcyB0aGUgdmVyeSB2ZXJib3NlIFdBUk4gc3RyaW5ncwpnZW5lcmF0ZWQgd2hlbiBJU19Q TEFURk9STSBtYWNyb3MgYXJlIGVtYmVkZGVkIGludG8gYSBXQVJOIHR5cGUKc3RhdGVtZW50cy4K CnYyOiBGaXhlZCBJU19TVUJQTEFURk9STS4gVXBkYXRlZCBjb21taXQgbXNnLgp2MzogQ2hyaXMg d2FzIHJpZ2h0LCB0aGVyZSBpcyBhbiBvcmRlcmluZyBwcm9ibGVtLgoKdjQ6CiAqIENhdGNoLXVw IHdpdGggbmV3IHN1Yi1wbGF0Zm9ybXMuCiAqIFJlYmFzZSBmb3IgUlVOVElNRV9JTkZPLgogKiBE cm9wIHN1YnBsYXRmb3JtIG1hc2sgdW5pb24gdHJpY2tzIGFuZCBjb252ZXJ0IHBsYXRmb3JtX21h c2sgdG8gYW4KICAgYXJyYXkgZm9yIGV4dGVuc2liaWxpdHkuCgp2NToKICogRml4IHN1YnBsYXRm b3JtIGNoZWNrLgogKiBQcm90ZWN0IGFnYWluc3QgZm9yZ2V0dGluZyB0byBleHBhbmQgc3VicGxh dGZvcm0gYml0cy4KICogUmVtb3ZlIHBsYXRmb3JtIGVudW0gdGFsbHlpbmcuCiAqIEFkZCBzdWJw bGF0Zm9ybSB0byBlcnJvciBzdGF0ZS4gKENocmlzKQogKiBEcm9wIG1hY3JvcyBhbmQganVzdCB1 c2Ugc3RhdGljIGlubGluZXMuCiAqIFJlbW92ZSByZWR1bmRhbnQgSVJPTkxBS0VfTS4gKFZpbGxl KQoKdjY6CiAqIFNwbGl0IG91dCBJcm9ubGFrZSBjaGFuZ2UuCiAqIE9wdGltaXplIHN1YnBsYXRm b3JtIGNoZWNrLgogKiBVc2UgX19hbHdheXNfaW5saW5lLiAoTHVjYXMpCiAqIEFkZCBwbGF0Zm9y bV9tYXNrIGNvbW1lbnQuIChQYXVsbykKICogUGFzcyBzdG9yZWQgcnVudGltZSBpbmZvIGluIGVy cm9yIGNhcHR1cmUuIChDaHJpcykKCnY3OgogKiBSZWJhc2VkIGZvciBuZXcgQU1MIFVMWCBkZXZp Y2UgaWQuCiAqIEJ1bXAgcGxhdGZvcm0gbWFzayBhcnJheSBzaXplIGZvciBFSEwuCiAqIFN0b3Ag bWVudGlvbmluZyBkZXZpY2UgaWRzIGluIGludGVsX2RldmljZV9zdWJwbGF0Zm9ybV9pbml0IGJ5 IHVzaW5nCiAgIHRoZSB0cmljayBvZiBzcGxpdHRpbmcgbWFjcm9zIGk5MTVfcGNpaWRzLmguIChK YW5pKQogKiBBTUwgc2VlbXMgdG8gYmUgZWl0aGVyIGEgc3VicGxhdGZvcm0gb2YgS0JMIG9yIENG TCBzbyBleHByZXNzIGl0IGxpa2UKICAgdGhhdC4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClN1Z2dlc3RlZC1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+CkNj OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KQ2M6IEpvc2UgU291 emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50 ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+ICMgdjYKLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgIHwg ICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgMTI0ICsr KysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMg ICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyAgICAgICAgICB8ICAg MiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyB8IDE0NSArKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2lu Zm8uaCB8ICAyNyArKysrLQogNiBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygrKSwgNDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggNTQ2NWI5OWI0MzkyLi43 NDI1NTM3NGNjNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtODY4LDYgKzg2OCw4IEBA IHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJaWYgKGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpKQogCQlyZXR1cm4g LUVOT0RFVjsKIAorCWludGVsX2RldmljZV9pbmZvX3N1YnBsYXRmb3JtX2luaXQoZGV2X3ByaXYp OworCiAJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5pcnFfbG9jayk7CiAJc3Bpbl9sb2NrX2lu aXQoJmRldl9wcml2LT5ncHVfZXJyb3IubG9jayk7CiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmJh Y2tsaWdodF9sb2NrKTsKQEAgLTE3MTgsMTAgKzE3MjAsMTIgQEAgc3RhdGljIHZvaWQgaTkxNV93 ZWxjb21lX21lc3NhZ2VzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAo ZHJtX2RlYnVnICYgRFJNX1VUX0RSSVZFUikgewogCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRy bV9kZWJ1Z19wcmludGVyKCJpOTE1IGRldmljZSBpbmZvOiIpOwogCi0JCWRybV9wcmludGYoJnAs ICJwY2lpZD0weCUwNHggcmV2PTB4JTAyeCBwbGF0Zm9ybT0lcyBnZW49JWlcbiIsCisJCWRybV9w cmludGYoJnAsICJwY2lpZD0weCUwNHggcmV2PTB4JTAyeCBwbGF0Zm9ybT0lcyAoc3VicGxhdGZv cm09MHgleCkgZ2VuPSVpXG4iLAogCQkJICAgSU5URUxfREVWSUQoZGV2X3ByaXYpLAogCQkJICAg SU5URUxfUkVWSUQoZGV2X3ByaXYpLAogCQkJICAgaW50ZWxfcGxhdGZvcm1fbmFtZShJTlRFTF9J TkZPKGRldl9wcml2KS0+cGxhdGZvcm0pLAorCQkJICAgaW50ZWxfc3VicGxhdGZvcm0oUlVOVElN RV9JTkZPKGRldl9wcml2KSwKKwkJCQkJICAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+cGxhdGZv cm0pLAogCQkJICAgSU5URUxfR0VOKGRldl9wcml2KSk7CiAKIAkJaW50ZWxfZGV2aWNlX2luZm9f ZHVtcF9mbGFncyhJTlRFTF9JTkZPKGRldl9wcml2KSwgJnApOwpAQCAtMTc2NCw4ICsxNzY4LDYg QEAgaTkxNV9kcml2ZXJfY3JlYXRlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3Qg cGNpX2RldmljZV9pZCAqZW50KQogCW1lbWNweShkZXZpY2VfaW5mbywgbWF0Y2hfaW5mbywgc2l6 ZW9mKCpkZXZpY2VfaW5mbykpOwogCVJVTlRJTUVfSU5GTyhpOTE1KS0+ZGV2aWNlX2lkID0gcGRl di0+ZGV2aWNlOwogCi0JQlVJTERfQlVHX09OKElOVEVMX01BWF9QTEFURk9STVMgPgotCQkgICAg IEJJVFNfUEVSX1RZUEUoZGV2aWNlX2luZm8tPnBsYXRmb3JtX21hc2spKTsKIAlCVUdfT04oZGV2 aWNlX2luZm8tPmdlbiA+IEJJVFNfUEVSX1RZUEUoZGV2aWNlX2luZm8tPmdlbl9tYXNrKSk7CiAK IAlyZXR1cm4gaTkxNTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDQ4YzNiMTM5ZjM2Zi4u YzI5ZWJmZDk0MDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIyOTgsNyArMjI5OCw2 OCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpOTE1X3NnX3NlZ21lbnRfc2l6ZSh2b2lk KQogI2RlZmluZSBJU19SRVZJRChwLCBzaW5jZSwgdW50aWwpIFwKIAkoSU5URUxfUkVWSUQocCkg Pj0gKHNpbmNlKSAmJiBJTlRFTF9SRVZJRChwKSA8PSAodW50aWwpKQogCi0jZGVmaW5lIElTX1BM QVRGT1JNKGRldl9wcml2LCBwKSAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtX21hc2sg JiBCSVQocCkpCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludAorX19wbGF0Zm9y bV9tYXNrX2luZGV4KGNvbnN0IHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gKmluZm8sCisJCSAg ICAgIGVudW0gaW50ZWxfcGxhdGZvcm0gcCkKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgcGJpdHMg PQorCQlCSVRTX1BFUl9UWVBFKGluZm8tPnBsYXRmb3JtX21hc2tbMF0pIC0gSU5URUxfU1VCUExB VEZPUk1fQklUUzsKKworCS8qIEV4cGFuZCB0aGUgcGxhdGZvcm1fbWFzayBhcnJheSBpZiB0aGlz IGZhaWxzLiAqLworCUJVSUxEX0JVR19PTihJTlRFTF9NQVhfUExBVEZPUk1TID4KKwkJICAgICBw Yml0cyAqIEFSUkFZX1NJWkUoaW5mby0+cGxhdGZvcm1fbWFzaykpOworCisJcmV0dXJuIHAgLyBw Yml0czsKK30KKworc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBpbnQKK19fcGxhdGZv cm1fbWFza19iaXQoY29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbywKKwkJICAg IGVudW0gaW50ZWxfcGxhdGZvcm0gcCkKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgcGJpdHMgPQor CQlCSVRTX1BFUl9UWVBFKGluZm8tPnBsYXRmb3JtX21hc2tbMF0pIC0gSU5URUxfU1VCUExBVEZP Uk1fQklUUzsKKworCXJldHVybiBwICUgcGJpdHMgKyBJTlRFTF9TVUJQTEFURk9STV9CSVRTOwor fQorCitzdGF0aWMgaW5saW5lIHUzMgoraW50ZWxfc3VicGxhdGZvcm0oY29uc3Qgc3RydWN0IGlu dGVsX3J1bnRpbWVfaW5mbyAqaW5mbywKKwkJICAgICAgZW51bSBpbnRlbF9wbGF0Zm9ybSBwKQor eworCWNvbnN0IHVuc2lnbmVkIGludCBwaSA9IF9fcGxhdGZvcm1fbWFza19pbmRleChpbmZvLCBw KTsKKworCXJldHVybiBpbmZvLT5wbGF0Zm9ybV9tYXNrW3BpXSAmIElOVEVMX1NVQlBMQVRGT1JN X0JJVFM7Cit9CisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbAorSVNfUExBVEZPUk0oY29u c3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGVudW0gaW50ZWxfcGxhdGZvcm0gcCkK K3sKKwljb25zdCBzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvICppbmZvID0gUlVOVElNRV9JTkZP KGk5MTUpOworCWNvbnN0IHVuc2lnbmVkIGludCBwaSA9IF9fcGxhdGZvcm1fbWFza19pbmRleChp bmZvLCBwKTsKKwljb25zdCB1bnNpZ25lZCBpbnQgcGIgPSBfX3BsYXRmb3JtX21hc2tfYml0KGlu Zm8sIHApOworCisJQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChwKSk7CisKKwly ZXR1cm4gaW5mby0+cGxhdGZvcm1fbWFza1twaV0gJiBCSVQocGIpOworfQorCitzdGF0aWMgX19h bHdheXNfaW5saW5lIGJvb2wKK0lTX1NVQlBMQVRGT1JNKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LAorCSAgICAgICBlbnVtIGludGVsX3BsYXRmb3JtIHAsIHVuc2lnbmVkIGlu dCBzKQoreworCWNvbnN0IHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gKmluZm8gPSBSVU5USU1F X0lORk8oaTkxNSk7CisJY29uc3QgdW5zaWduZWQgaW50IHBpID0gX19wbGF0Zm9ybV9tYXNrX2lu ZGV4KGluZm8sIHApOworCWNvbnN0IHVuc2lnbmVkIGludCBwYiA9IF9fcGxhdGZvcm1fbWFza19i aXQoaW5mbywgcCk7CisJY29uc3QgdW5zaWduZWQgaW50IG1zYiA9IEJJVFNfUEVSX1RZUEUoaW5m by0+cGxhdGZvcm1fbWFza1swXSkgLSAxOworCWNvbnN0IHUzMiBtYXNrID0gaW5mby0+cGxhdGZv cm1fbWFza1twaV07CisKKwlCVUlMRF9CVUdfT04oIV9fYnVpbHRpbl9jb25zdGFudF9wKHApKTsK KwlCVUlMRF9CVUdfT04oIV9fYnVpbHRpbl9jb25zdGFudF9wKHMpKTsKKwlCVUlMRF9CVUdfT04o KHMpID49IElOVEVMX1NVQlBMQVRGT1JNX0JJVFMpOworCisJLyogU2hpZnQgYW5kIHRlc3Qgb24g dGhlIE1TQiBwb3NpdGlvbiBzbyBzaWduIGZsYWcgY2FuIGJlIHVzZWQuICovCisJcmV0dXJuICgo bWFzayA8PCAobXNiIC0gcGIpKSAmIChtYXNrIDw8IChtc2IgLSBzKSkpICYgQklUKG1zYik7Cit9 CiAKICNkZWZpbmUgSVNfTU9CSUxFKGRldl9wcml2KQkoSU5URUxfSU5GTyhkZXZfcHJpdiktPmlz X21vYmlsZSkKIApAQCAtMjMzNyw0MyArMjM5OCwzMiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVk IGludCBpOTE1X3NnX3NlZ21lbnRfc2l6ZSh2b2lkKQogI2RlZmluZSBJU19FTEtIQVJUTEFLRShk ZXZfcHJpdikJSVNfUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0VMS0hBUlRMQUtFKQogI2RlZmlu ZSBJU19IU1dfRUFSTFlfU0RWKGRldl9wcml2KSAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgXAog CQkJCSAgICAoSU5URUxfREVWSUQoZGV2X3ByaXYpICYgMHhGRjAwKSA9PSAweDBDMDApCi0jZGVm aW5lIElTX0JEV19VTFQoZGV2X3ByaXYpCShJU19CUk9BRFdFTEwoZGV2X3ByaXYpICYmIFwKLQkJ CQkgKChJTlRFTF9ERVZJRChkZXZfcHJpdikgJiAweGYpID09IDB4NiB8fAlcCi0JCQkJIChJTlRF TF9ERVZJRChkZXZfcHJpdikgJiAweGYpID09IDB4YiB8fAlcCi0JCQkJIChJTlRFTF9ERVZJRChk ZXZfcHJpdikgJiAweGYpID09IDB4ZSkpCi0vKiBVTFggbWFjaGluZXMgYXJlIGFsc28gY29uc2lk ZXJlZCBVTFQuICovCi0jZGVmaW5lIElTX0JEV19VTFgoZGV2X3ByaXYpCShJU19CUk9BRFdFTEwo ZGV2X3ByaXYpICYmIFwKLQkJCQkgKElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4ZikgPT0gMHhl KQorI2RlZmluZSBJU19CRFdfVUxUKGRldl9wcml2KSBcCisJSVNfU1VCUExBVEZPUk0oZGV2X3By aXYsIElOVEVMX0JST0FEV0VMTCwgSU5URUxfU1VCUExBVEZPUk1fVUxUKQorI2RlZmluZSBJU19C RFdfVUxYKGRldl9wcml2KSBcCisJSVNfU1VCUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0JST0FE V0VMTCwgSU5URUxfU1VCUExBVEZPUk1fVUxYKQogI2RlZmluZSBJU19CRFdfR1QzKGRldl9wcml2 KQkoSVNfQlJPQURXRUxMKGRldl9wcml2KSAmJiBcCiAJCQkJIElOVEVMX0lORk8oZGV2X3ByaXYp LT5ndCA9PSAzKQotI2RlZmluZSBJU19IU1dfVUxUKGRldl9wcml2KQkoSVNfSEFTV0VMTChkZXZf cHJpdikgJiYgXAotCQkJCSAoSU5URUxfREVWSUQoZGV2X3ByaXYpICYgMHhGRjAwKSA9PSAweDBB MDApCisjZGVmaW5lIElTX0hTV19VTFQoZGV2X3ByaXYpIFwKKwlJU19TVUJQTEFURk9STShkZXZf cHJpdiwgSU5URUxfSEFTV0VMTCwgSU5URUxfU1VCUExBVEZPUk1fVUxUKQogI2RlZmluZSBJU19I U1dfR1QzKGRldl9wcml2KQkoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgXAogCQkJCSBJTlRFTF9J TkZPKGRldl9wcml2KS0+Z3QgPT0gMykKICNkZWZpbmUgSVNfSFNXX0dUMShkZXZfcHJpdikJKElT X0hBU1dFTEwoZGV2X3ByaXYpICYmIFwKIAkJCQkgSU5URUxfSU5GTyhkZXZfcHJpdiktPmd0ID09 IDEpCiAvKiBVTFggbWFjaGluZXMgYXJlIGFsc28gY29uc2lkZXJlZCBVTFQuICovCi0jZGVmaW5l IElTX0hTV19VTFgoZGV2X3ByaXYpCShJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgwQTBFIHx8 IFwKLQkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MEExRSkKLSNkZWZpbmUgSVNfU0tM X1VMVChkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MDYgfHwgXAotCQkJ CSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgxOTEzIHx8IFwKLQkJCQkgSU5URUxfREVWSUQo ZGV2X3ByaXYpID09IDB4MTkxNiB8fCBcCi0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAw eDE5MjEgfHwgXAotCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgxOTI2KQotI2RlZmlu ZSBJU19TS0xfVUxYKGRldl9wcml2KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MTkwRSB8 fCBcCi0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MTUgfHwgXAotCQkJCSBJTlRF TF9ERVZJRChkZXZfcHJpdikgPT0gMHgxOTFFKQotI2RlZmluZSBJU19LQkxfVUxUKGRldl9wcml2 KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4NTkwNiB8fCBcCi0JCQkJIElOVEVMX0RFVklE KGRldl9wcml2KSA9PSAweDU5MTMgfHwgXAotCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0g MHg1OTE2IHx8IFwKLQkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4NTkyMSB8fCBcCi0J CQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5MjYpCi0jZGVmaW5lIElTX0tCTF9VTFgo ZGV2X3ByaXYpCShJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHg1OTBFIHx8IFwKLQkJCQkgSU5U RUxfREVWSUQoZGV2X3ByaXYpID09IDB4NTkxNSB8fCBcCi0JCQkJIElOVEVMX0RFVklEKGRldl9w cml2KSA9PSAweDU5MUUpCi0jZGVmaW5lIElTX0FNTF9VTFgoZGV2X3ByaXYpCShJTlRFTF9ERVZJ RChkZXZfcHJpdikgPT0gMHg1OTFDIHx8IFwKLQkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYpID09 IDB4ODdDMCB8fCBcCi0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDg3Q0EpCisjZGVm aW5lIElTX0hTV19VTFgoZGV2X3ByaXYpIFwKKwlJU19TVUJQTEFURk9STShkZXZfcHJpdiwgSU5U RUxfSEFTV0VMTCwgSU5URUxfU1VCUExBVEZPUk1fVUxYKQorI2RlZmluZSBJU19TS0xfVUxUKGRl dl9wcml2KSBcCisJSVNfU1VCUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX1NLWUxBS0UsIElOVEVM X1NVQlBMQVRGT1JNX1VMVCkKKyNkZWZpbmUgSVNfU0tMX1VMWChkZXZfcHJpdikgXAorCUlTX1NV QlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9TS1lMQUtFLCBJTlRFTF9TVUJQTEFURk9STV9VTFgp CisjZGVmaW5lIElTX0tCTF9VTFQoZGV2X3ByaXYpIFwKKwlJU19TVUJQTEFURk9STShkZXZfcHJp diwgSU5URUxfS0FCWUxBS0UsIElOVEVMX1NVQlBMQVRGT1JNX1VMVCkKKyNkZWZpbmUgSVNfS0JM X1VMWChkZXZfcHJpdikgXAorCUlTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9LQUJZTEFL RSwgSU5URUxfU1VCUExBVEZPUk1fVUxYKQorI2RlZmluZSBJU19BTUxfVUxYKGRldl9wcml2KSBc CisJKElTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9LQUJZTEFLRSwgSU5URUxfU1VCUExB VEZPUk1fQU1MKSB8fCBcCisJIElTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9DT0ZGRUVM QUtFLCBJTlRFTF9TVUJQTEFURk9STV9BTUwpKQogI2RlZmluZSBJU19TS0xfR1QyKGRldl9wcml2 KQkoSVNfU0tZTEFLRShkZXZfcHJpdikgJiYgXAogCQkJCSBJTlRFTF9JTkZPKGRldl9wcml2KS0+ Z3QgPT0gMikKICNkZWZpbmUgSVNfU0tMX0dUMyhkZXZfcHJpdikJKElTX1NLWUxBS0UoZGV2X3By aXYpICYmIFwKQEAgLTIzODQsMTYgKzI0MzQsMTYgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBp bnQgaTkxNV9zZ19zZWdtZW50X3NpemUodm9pZCkKIAkJCQkgSU5URUxfSU5GTyhkZXZfcHJpdikt Pmd0ID09IDIpCiAjZGVmaW5lIElTX0tCTF9HVDMoZGV2X3ByaXYpCShJU19LQUJZTEFLRShkZXZf cHJpdikgJiYgXAogCQkJCSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z3QgPT0gMykKLSNkZWZpbmUg SVNfQ0ZMX1VMVChkZXZfcHJpdikJKElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpICYmIFwKLQkJCQkg KElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4MDBGMCkgPT0gMHgwMEEwKQorI2RlZmluZSBJU19D RkxfVUxUKGRldl9wcml2KSBcCisJSVNfU1VCUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0NPRkZF RUxBS0UsIElOVEVMX1NVQlBMQVRGT1JNX1VMVCkKICNkZWZpbmUgSVNfQ0ZMX0dUMihkZXZfcHJp dikJKElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpICYmIFwKIAkJCQkgSU5URUxfSU5GTyhkZXZfcHJp diktPmd0ID09IDIpCiAjZGVmaW5lIElTX0NGTF9HVDMoZGV2X3ByaXYpCShJU19DT0ZGRUVMQUtF KGRldl9wcml2KSAmJiBcCiAJCQkJIElOVEVMX0lORk8oZGV2X3ByaXYpLT5ndCA9PSAzKQotI2Rl ZmluZSBJU19DTkxfV0lUSF9QT1JUX0YoZGV2X3ByaXYpICAgKElTX0NBTk5PTkxBS0UoZGV2X3By aXYpICYmIFwKLQkJCQkJKElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4MDAwNCkgPT0gMHgwMDA0 KQotI2RlZmluZSBJU19JQ0xfV0lUSF9QT1JUX0YoZGV2X3ByaXYpICAgKElTX0lDRUxBS0UoZGV2 X3ByaXYpICYmIFwKLQkJCQkJSU5URUxfREVWSUQoZGV2X3ByaXYpICE9IDB4OEE1MSkKKyNkZWZp bmUgSVNfQ05MX1dJVEhfUE9SVF9GKGRldl9wcml2KSBcCisJSVNfU1VCUExBVEZPUk0oZGV2X3By aXYsIElOVEVMX0NBTk5PTkxBS0UsIElOVEVMX1NVQlBMQVRGT1JNX1BPUlRGKQorI2RlZmluZSBJ U19JQ0xfV0lUSF9QT1JUX0YoZGV2X3ByaXYpIFwKKwlJU19TVUJQTEFURk9STShkZXZfcHJpdiwg SU5URUxfSUNFTEFLRSwgSU5URUxfU1VCUExBVEZPUk1fUE9SVEYpCiAKICNkZWZpbmUgSVNfQUxQ SEFfU1VQUE9SVChpbnRlbF9pbmZvKSAoKGludGVsX2luZm8pLT5pc19hbHBoYV9zdXBwb3J0KQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCBhOTU1N2Y5Mjc1NmYuLjBj OTgwYjg5OTA1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC02Nzcs NiArNjc3LDkgQEAgc3RhdGljIHZvaWQgX19lcnJfcHJpbnRfdG9fc2dsKHN0cnVjdCBkcm1faTkx NV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJZXJyX3ByaW50ZihtLCAiUmVzZXQgY291bnQ6ICV1XG4i LCBlcnJvci0+cmVzZXRfY291bnQpOwogCWVycl9wcmludGYobSwgIlN1c3BlbmQgY291bnQ6ICV1 XG4iLCBlcnJvci0+c3VzcGVuZF9jb3VudCk7CiAJZXJyX3ByaW50ZihtLCAiUGxhdGZvcm06ICVz XG4iLCBpbnRlbF9wbGF0Zm9ybV9uYW1lKGVycm9yLT5kZXZpY2VfaW5mby5wbGF0Zm9ybSkpOwor CWVycl9wcmludGYobSwgIlN1YnBsYXRmb3JtOiAweCV4XG4iLAorCQkgICBpbnRlbF9zdWJwbGF0 Zm9ybSgmZXJyb3ItPnJ1bnRpbWVfaW5mbywKKwkJCQkgICAgIGVycm9yLT5kZXZpY2VfaW5mby5w bGF0Zm9ybSkpOwogCWVycl9wcmludF9wY2lpZChtLCBtLT5pOTE1KTsKIAogCWVycl9wcmludGYo bSwgIklPTU1VIGVuYWJsZWQ/OiAlZFxuIiwgZXJyb3ItPmlvbW11KTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BjaS5jCmluZGV4IDcxNmYyZjk1YzU3ZC4uMzkyNTE1ODYzNDlhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGNpLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKICNp bmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCiAKLSNkZWZpbmUgUExBVEZPUk0oeCkgLnBsYXRmb3Jt ID0gKHgpLCAucGxhdGZvcm1fbWFzayA9IEJJVCh4KQorI2RlZmluZSBQTEFURk9STSh4KSAucGxh dGZvcm0gPSAoeCkKICNkZWZpbmUgR0VOKHgpIC5nZW4gPSAoeCksIC5nZW5fbWFzayA9IEJJVCgo eCkgLSAxKQogCiAjZGVmaW5lIEk4NDVfUElQRV9PRkZTRVRTIFwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZXZpY2VfaW5mby5jCmluZGV4IGUwYWM5MDhiYjRlOS4uODVkYTg3ZTE0YzAyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKQEAgLTcxNCw2ICs3MTQs MTUxIEBAIHN0YXRpYyB1MzIgcmVhZF90aW1lc3RhbXBfZnJlcXVlbmN5KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIH0KIAorI3VuZGVmIElOVEVMX1ZHQV9E RVZJQ0UKKyNkZWZpbmUgSU5URUxfVkdBX0RFVklDRShpZCwgaW5mbykgKGlkKQorCitzdGF0aWMg Y29uc3QgdTE2IGhzd191bHRfaWRzW10gPSB7CisJSU5URUxfSFNXX1VMVF9HVDFfSURTKDApLAor CUlOVEVMX0hTV19VTFRfR1QyX0lEUygwKSwKKwlJTlRFTF9IU1dfVUxUX0dUM19JRFMoMCkKK307 CisKK3N0YXRpYyBjb25zdCB1MTYgaHN3X3VseF9pZHNbXSA9IHsKKwlJTlRFTF9IU1dfVUxYX0dU MV9JRFMoMCksCisJSU5URUxfSFNXX1VMWF9HVDJfSURTKDApCit9OworCitzdGF0aWMgY29uc3Qg dTE2IGJkd191bHRfaWRzW10gPSB7CisJSU5URUxfQkRXX1VMVF9HVDFfSURTKDApLAorCUlOVEVM X0JEV19VTFRfR1QyX0lEUygwKSwKKwlJTlRFTF9CRFdfVUxUX0dUM19JRFMoMCksCisJSU5URUxf QkRXX1VMVF9SU1ZEX0lEUygwKQorfTsKKworc3RhdGljIGNvbnN0IHUxNiBiZHdfdWx4X2lkc1td ID0geworCUlOVEVMX0JEV19VTFhfR1QxX0lEUygwKSwKKwlJTlRFTF9CRFdfVUxYX0dUMl9JRFMo MCksCisJSU5URUxfQkRXX1VMWF9HVDNfSURTKDApLAorCUlOVEVMX0JEV19VTFhfUlNWRF9JRFMo MCkKK307CisKK3N0YXRpYyBjb25zdCB1MTYgc2tsX3VsdF9pZHNbXSA9IHsKKwlJTlRFTF9TS0xf VUxUX0dUMV9JRFMoMCksCisJSU5URUxfU0tMX1VMVF9HVDJfSURTKDApLAorCUlOVEVMX1NLTF9V TFRfR1QzX0lEUygwKQorfTsKKworc3RhdGljIGNvbnN0IHUxNiBza2xfdWx4X2lkc1tdID0gewor CUlOVEVMX1NLTF9VTFhfR1QxX0lEUygwKSwKKwlJTlRFTF9TS0xfVUxYX0dUMl9JRFMoMCkKK307 CisKK3N0YXRpYyBjb25zdCB1MTYga2JsX3VsdF9pZHNbXSA9IHsKKwlJTlRFTF9LQkxfVUxUX0dU MV9JRFMoMCksCisJSU5URUxfS0JMX1VMVF9HVDJfSURTKDApLAorCUlOVEVMX0tCTF9VTFRfR1Qz X0lEUygwKQorfTsKKworc3RhdGljIGNvbnN0IHUxNiBrYmxfdWx4X2lkc1tdID0geworCUlOVEVM X0tCTF9VTFhfR1QxX0lEUygwKSwKKwlJTlRFTF9LQkxfVUxYX0dUMl9JRFMoMCkKK307CisKK3N0 YXRpYyBjb25zdCB1MTYga2JsX2FtbF9pZHNbXSA9IHsKKwlJTlRFTF9BTUxfS0JMX0dUMl9JRFMo MCkKK307CisKK3N0YXRpYyBjb25zdCB1MTYgY2ZsX3VsdF9pZHNbXSA9IHsKKwlJTlRFTF9DRkxf VV9HVDJfSURTKDApLAorCUlOVEVMX0NGTF9VX0dUM19JRFMoMCksCisJSU5URUxfV0hMX1VfR1Qx X0lEUygwKSwKKwlJTlRFTF9XSExfVV9HVDJfSURTKDApLAorCUlOVEVMX1dITF9VX0dUM19JRFMo MCkKK307CisKK3N0YXRpYyBjb25zdCB1MTYgY2ZsX2FtbF9pZHNbXSA9IHsKKwlJTlRFTF9BTUxf Q0ZMX0dUMl9JRFMoMCkKK307CisKK3N0YXRpYyBjb25zdCB1MTYgY25sX3BvcnRmX2lkc1tdID0g eworCUlOVEVMX0NOTF9QT1JUX0ZfSURTKDApCit9OworCitzdGF0aWMgY29uc3QgdTE2IGljbF9w b3J0Zl9pZHNbXSA9IHsKKwlJTlRFTF9JQ0xfUE9SVF9GX0lEUygwKQorfTsKKworc3RhdGljIGJv b2wgZmluZF9kZXZpZCh1MTYgaWQsIGNvbnN0IHUxNiAqcCwgdW5zaWduZWQgaW50IG51bSkKK3sK Kwlmb3IgKDsgbnVtOyBudW0tLSwgcCsrKSB7CisJCWlmICgqcCA9PSBpZCkKKwkJCXJldHVybiB0 cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKwordm9pZCBpbnRlbF9kZXZpY2VfaW5mb19z dWJwbGF0Zm9ybV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWNvbnN0 IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbyA9IElOVEVMX0lORk8oaTkxNSk7CisJY29u c3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqcmluZm8gPSBSVU5USU1FX0lORk8oaTkxNSk7 CisJY29uc3QgdW5zaWduZWQgaW50IHBpID0gX19wbGF0Zm9ybV9tYXNrX2luZGV4KHJpbmZvLCBp bmZvLT5wbGF0Zm9ybSk7CisJY29uc3QgdW5zaWduZWQgaW50IHBiID0gX19wbGF0Zm9ybV9tYXNr X2JpdChyaW5mbywgaW5mby0+cGxhdGZvcm0pOworCXUxNiBkZXZpZCA9IElOVEVMX0RFVklEKGk5 MTUpOworCXUzMiBtYXNrID0gMDsKKworCVJVTlRJTUVfSU5GTyhpOTE1KS0+cGxhdGZvcm1fbWFz a1twaV0gPSBCSVQocGIpOworCisJaWYgKElTX0hBU1dFTEwoaTkxNSkpIHsKKwkJaWYgKGZpbmRf ZGV2aWQoZGV2aWQsIGhzd191bHRfaWRzLCBBUlJBWV9TSVpFKGhzd191bHRfaWRzKSkpCisJCQlt YXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMVCk7CisJCWVsc2UgaWYgKGZpbmRfZGV2aWQo ZGV2aWQsIGhzd191bHhfaWRzLAorCQkJCSAgICBBUlJBWV9TSVpFKGhzd191bHhfaWRzKSkpCisJ CQkvKiBVTFggbWFjaGluZXMgYXJlIGFsc28gY29uc2lkZXJlZCBVTFQuICovCisJCQltYXNrID0g QklUKElOVEVMX1NVQlBMQVRGT1JNX1VMVCkgfAorCQkJICAgICAgIEJJVChJTlRFTF9TVUJQTEFU Rk9STV9VTFgpOworCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGk5MTUpKSB7CisJCWlmIChmaW5k X2RldmlkKGRldmlkLCBiZHdfdWx0X2lkcywgQVJSQVlfU0laRShiZHdfdWx0X2lkcykpKQorCQkJ bWFzayA9IEJJVChJTlRFTF9TVUJQTEFURk9STV9VTFQpOworCQllbHNlIGlmIChmaW5kX2Rldmlk KGRldmlkLCBiZHdfdWx4X2lkcywKKwkJCQkgICAgQVJSQVlfU0laRShiZHdfdWx4X2lkcykpKQor CQkJLyogVUxYIG1hY2hpbmVzIGFyZSBhbHNvIGNvbnNpZGVyZWQgVUxULiAqLworCQkJbWFzayA9 IEJJVChJTlRFTF9TVUJQTEFURk9STV9VTFQpIHwKKwkJCSAgICAgICBCSVQoSU5URUxfU1VCUExB VEZPUk1fVUxYKTsKKwl9IGVsc2UgaWYgKElTX1NLWUxBS0UoaTkxNSkpIHsKKwkJaWYgKGZpbmRf ZGV2aWQoZGV2aWQsIHNrbF91bHRfaWRzLCBBUlJBWV9TSVpFKHNrbF91bHRfaWRzKSkpCisJCQlt YXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMVCk7CisJCWVsc2UgaWYgKGZpbmRfZGV2aWQo ZGV2aWQsIHNrbF91bHhfaWRzLAorCQkJCSAgICBBUlJBWV9TSVpFKHNrbF91bHhfaWRzKSkpCisJ CQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMWCk7CisJfSBlbHNlIGlmIChJU19LQUJZ TEFLRShpOTE1KSkgeworCQlpZiAoZmluZF9kZXZpZChkZXZpZCwga2JsX3VsdF9pZHMsIEFSUkFZ X1NJWkUoa2JsX3VsdF9pZHMpKSkKKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fVUxU KTsKKwkJZWxzZSBpZiAoZmluZF9kZXZpZChkZXZpZCwga2JsX3VseF9pZHMsCisJCQkJICAgIEFS UkFZX1NJWkUoa2JsX3VseF9pZHMpKSkKKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1f VUxYKTsKKwkJZWxzZSBpZiAoZmluZF9kZXZpZChkZXZpZCwga2JsX2FtbF9pZHMsCisJCQkJICAg IEFSUkFZX1NJWkUoa2JsX2FtbF9pZHMpKSkKKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZP Uk1fQU1MKTsKKwl9IGVsc2UgaWYgKElTX0NPRkZFRUxBS0UoaTkxNSkpIHsKKwkJaWYgKGZpbmRf ZGV2aWQoZGV2aWQsIGNmbF91bHRfaWRzLCBBUlJBWV9TSVpFKGNmbF91bHRfaWRzKSkpCisJCQlt YXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMVCk7CisJCWVsc2UgaWYgKGZpbmRfZGV2aWQo ZGV2aWQsIGNmbF9hbWxfaWRzLAorCQkJCSAgICBBUlJBWV9TSVpFKGNmbF9hbWxfaWRzKSkpCisJ CQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX0FNTCk7CisJfSBlbHNlIGlmIChJU19DQU5O T05MQUtFKGk5MTUpKSB7CisJCWlmIChmaW5kX2RldmlkKGRldmlkLCBjbmxfcG9ydGZfaWRzLCBB UlJBWV9TSVpFKGNubF9wb3J0Zl9pZHMpKSkKKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZP Uk1fUE9SVEYpOworCX0gZWxzZSBpZiAoSVNfSUNFTEFLRShpOTE1KSkgeworCQlpZiAoZmluZF9k ZXZpZChkZXZpZCwgaWNsX3BvcnRmX2lkcywgQVJSQVlfU0laRShpY2xfcG9ydGZfaWRzKSkpCisJ CQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1BPUlRGKTsKKwl9CisKKwlHRU1fQlVHX09O KG1hc2sgJiB+SU5URUxfU1VCUExBVEZPUk1fQklUUyk7CisKKwlSVU5USU1FX0lORk8oaTkxNSkt PnBsYXRmb3JtX21hc2tbcGldIHw9IG1hc2s7Cit9CisKIC8qKgogICogaW50ZWxfZGV2aWNlX2lu Zm9fcnVudGltZV9pbml0IC0gaW5pdGlhbGl6ZSBydW50aW1lIGluZm8KICAqIEBkZXZfcHJpdjog dGhlIGk5MTUgZGV2aWNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaApp bmRleCA5OGFjZWZhYWNlYzkuLmRhMTE1MmVlZjQ2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZXZpY2VfaW5mby5oCkBAIC03Nyw2ICs3NywyMSBAQCBlbnVtIGludGVsX3BsYXRmb3Jt IHsKIAlJTlRFTF9NQVhfUExBVEZPUk1TCiB9OwogCisvKgorICogU3VicGxhdGZvcm0gYml0cyBz aGFyZSB0aGUgc2FtZSBuYW1lc3BhY2UgcGVyIHBhcmVudCBwbGF0Zm9ybS4gSW4gb3RoZXIgd29y ZHMKKyAqIGl0IGlzIGZpbmUgZm9yIHRoZSBzYW1lIGJpdCB0byBiZSB1c2VkIG9uIG11bHRpcGxl IHBhcmVudCBwbGF0Zm9ybXMuCisgKi8KKworI2RlZmluZSBJTlRFTF9TVUJQTEFURk9STV9CSVRT ICgzKQorCisvKiBIU1cvQkRXL1NLTC9LQkwvQ0ZMICovCisjZGVmaW5lIElOVEVMX1NVQlBMQVRG T1JNX1VMVAkoMCkKKyNkZWZpbmUgSU5URUxfU1VCUExBVEZPUk1fVUxYCSgxKQorI2RlZmluZSBJ TlRFTF9TVUJQTEFURk9STV9BTUwJKDIpCisKKy8qIENOTC9JQ0wgKi8KKyNkZWZpbmUgSU5URUxf U1VCUExBVEZPUk1fUE9SVEYJKDApCisKIGVudW0gaW50ZWxfcHBndHRfdHlwZSB7CiAJSU5URUxf UFBHVFRfTk9ORSA9IEk5MTVfR0VNX1BQR1RUX05PTkUsCiAJSU5URUxfUFBHVFRfQUxJQVNJTkcg PSBJOTE1X0dFTV9QUEdUVF9BTElBU0lORywKQEAgLTE2MCw3ICsxNzUsNiBAQCBzdHJ1Y3QgaW50 ZWxfZGV2aWNlX2luZm8gewogCWludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2s7IC8qIEVu Z2luZXMgc3VwcG9ydGVkIGJ5IHRoZSBIVyAqLwogCiAJZW51bSBpbnRlbF9wbGF0Zm9ybSBwbGF0 Zm9ybTsKLQl1MzIgcGxhdGZvcm1fbWFzazsKIAogCWVudW0gaW50ZWxfcHBndHRfdHlwZSBwcGd0 dF90eXBlOwogCXVuc2lnbmVkIGludCBwcGd0dF9zaXplOyAvKiBsb2cyLCBlLmcuIDMxLzMyLzQ4 IGJpdHMgKi8KQEAgLTE5Nyw2ICsyMTEsMTYgQEAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsK IH07CiAKIHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8geworCS8qCisJICogUGxhdGZvcm0gbWFz ayBpcyB1c2VkIGZvciBvcHRpbWl6aW5nIG9yLWVkIElTX1BMQVRGT1JNIGNhbGxzIGludG8KKwkg KiBpbnRvIHNpbmdsZSBydW50aW1lIGNvbmRpdGlvbmFscywgYW5kIGFsc28gdG8gcHJvdmlkZSBn cm91bmR3b3JrCisJICogZm9yIGZ1dHVyZSBwZXIgcGxhdGZvcm0sIG9yIHBlciBTS1UgYnVpbGQg b3B0aW1pemF0aW9ucy4KKwkgKgorCSAqIEFycmF5IGNhbiBiZSBleHRlbmRlZCB3aGVuIG5lY2Vz c2FyeSBpZiB0aGUgY29ycmVzcG9uZGluZworCSAqIEJVSUxEX0JVR19PTiBpcyBoaXQuCisJICov CisJdTMyIHBsYXRmb3JtX21hc2tbMl07CisKIAl1MTYgZGV2aWNlX2lkOwogCiAJdTggbnVtX3Nw cml0ZXNbSTkxNV9NQVhfUElQRVNdOwpAQCAtMjcxLDYgKzI5NSw3IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBzc2V1X3NldF9ldXMoc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsCiAKIGNvbnN0IGNo YXIgKmludGVsX3BsYXRmb3JtX25hbWUoZW51bSBpbnRlbF9wbGF0Zm9ybSBwbGF0Zm9ybSk7CiAK K3ZvaWQgaW50ZWxfZGV2aWNlX2luZm9fc3VicGxhdGZvcm1faW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZGV2aWNlX2lu Zm9fZHVtcF9mbGFncyhjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCiAJCQkJ ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOwotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=