From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 4/4] drm/i915: Introduce concept of a sub-platform Date: Tue, 26 Mar 2019 10:39:03 +0200 Message-ID: <8736na58t4.fsf@intel.com> References: <20190326074057.27833-1-tvrtko.ursulin@linux.intel.com> <20190326074057.27833-5-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0FE9A6E7AA for ; Tue, 26 Mar 2019 08:36:23 +0000 (UTC) In-Reply-To: <20190326074057.27833-5-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: Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org Cc: Lucas De Marchi , Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyNiBNYXIgMjAxOSwgVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KPgo+IENvbmNlcHQgb2YgYSBzdWItcGxhdGZvcm0gYWxyZWFkeSBleGlzdCBp biBvdXIgY29kZSAobGlrZSBVTFggYW5kIFVMVAo+IHBsYXRmb3JtIHZhcmlhbnRzIGFuZCBzaW1p bGFyKSxpbXBsZW1lbnRlZCB2aWEgdGhlIG1hY3JvcyB3aGljaCBjaGVjayBhCj4gbGlzdCBvZiBk ZXZpY2UgaWRzIHRvIGRldGVybWluZSBhIG1hdGNoLgo+Cj4gV2l0aCB0aGlzIHBhdGNoIHdlIGNv bnNvbGlkYXRlIGRldmljZSBpZHMgY2hlY2tpbmcgaW50byBhIHNpbmdsZSBmdW5jdGlvbgo+IGNh bGxlZCBkdXJpbmcgZWFybHkgZHJpdmVyIGxvYWQuCj4KPiBBIGZldyBsb3cgYml0cyBpbiB0aGUg cGxhdGZvcm0gbWFzayBhcmUgcmVzZXJ2ZWQgZm9yIHN1Yi1wbGF0Zm9ybQo+IGlkZW50aWZpY2F0 aW9uIGFuZCBkZWZpbmVkIGFzIGEgcGVyLXBsYXRmb3JtIG5hbWVzcGFjZS4KPgo+IEF0IHRoZSBz YW1lIHRpbWUgaXQgZnV0dXJlIHByb29mcyB0aGUgcGxhdGZvcm1fbWFzayBoYW5kbGluZyBieSBw cmVwYXJpbmcKPiB0aGUgY29kZSBmb3IgZWFzeSBleHRlbmRpbmcsIGFuZCB0aWRpZXMgdGhlIHZl cnkgdmVyYm9zZSBXQVJOIHN0cmluZ3MKPiBnZW5lcmF0ZWQgd2hlbiBJU19QTEFURk9STSBtYWNy b3MgYXJlIGVtYmVkZGVkIGludG8gYSBXQVJOIHR5cGUKPiBzdGF0ZW1lbnRzLgo+Cj4gdjI6IEZp eGVkIElTX1NVQlBMQVRGT1JNLiBVcGRhdGVkIGNvbW1pdCBtc2cuCj4gdjM6IENocmlzIHdhcyBy aWdodCwgdGhlcmUgaXMgYW4gb3JkZXJpbmcgcHJvYmxlbS4KPgo+IHY0Ogo+ICAqIENhdGNoLXVw IHdpdGggbmV3IHN1Yi1wbGF0Zm9ybXMuCj4gICogUmViYXNlIGZvciBSVU5USU1FX0lORk8uCj4g ICogRHJvcCBzdWJwbGF0Zm9ybSBtYXNrIHVuaW9uIHRyaWNrcyBhbmQgY29udmVydCBwbGF0Zm9y bV9tYXNrIHRvIGFuCj4gICAgYXJyYXkgZm9yIGV4dGVuc2liaWxpdHkuCj4KPiB2NToKPiAgKiBG aXggc3VicGxhdGZvcm0gY2hlY2suCj4gICogUHJvdGVjdCBhZ2FpbnN0IGZvcmdldHRpbmcgdG8g ZXhwYW5kIHN1YnBsYXRmb3JtIGJpdHMuCj4gICogUmVtb3ZlIHBsYXRmb3JtIGVudW0gdGFsbHlp bmcuCj4gICogQWRkIHN1YnBsYXRmb3JtIHRvIGVycm9yIHN0YXRlLiAoQ2hyaXMpCj4gICogRHJv cCBtYWNyb3MgYW5kIGp1c3QgdXNlIHN0YXRpYyBpbmxpbmVzLgo+ICAqIFJlbW92ZSByZWR1bmRh bnQgSVJPTkxBS0VfTS4gKFZpbGxlKQo+Cj4gdjY6Cj4gICogU3BsaXQgb3V0IElyb25sYWtlIGNo YW5nZS4KPiAgKiBPcHRpbWl6ZSBzdWJwbGF0Zm9ybSBjaGVjay4KPiAgKiBVc2UgX19hbHdheXNf aW5saW5lLiAoTHVjYXMpCj4gICogQWRkIHBsYXRmb3JtX21hc2sgY29tbWVudC4gKFBhdWxvKQo+ ICAqIFBhc3Mgc3RvcmVkIHJ1bnRpbWUgaW5mbyBpbiBlcnJvciBjYXB0dXJlLiAoQ2hyaXMpCj4K PiB2NzoKPiAgKiBSZWJhc2VkIGZvciBuZXcgQU1MIFVMWCBkZXZpY2UgaWQuCj4gICogQnVtcCBw bGF0Zm9ybSBtYXNrIGFycmF5IHNpemUgZm9yIEVITC4KPiAgKiBTdG9wIG1lbnRpb25pbmcgZGV2 aWNlIGlkcyBpbiBpbnRlbF9kZXZpY2Vfc3VicGxhdGZvcm1faW5pdCBieSB1c2luZwo+ICAgIHRo ZSB0cmljayBvZiBzcGxpdHRpbmcgbWFjcm9zIGk5MTVfcGNpaWRzLmguIChKYW5pKQo+ICAqIEFN TCBzZWVtcyB0byBiZSBlaXRoZXIgYSBzdWJwbGF0Zm9ybSBvZiBLQkwgb3IgQ0ZMIHNvIGV4cHJl c3MgaXQgbGlrZQo+ICAgIHRoYXQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IFN1Z2dlc3RlZC1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ IENjOiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiBDYzogSm9z ZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56 YW5vbmlAaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4gIyB2Ngo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jICAgICAgICAgIHwgICA4ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgfCAxMjQgKysrKysrKysrKysrKy0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jICAgIHwgICAzICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wY2kuYyAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5jIHwgMTQ1ICsrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggfCAgMjcgKysrKy0KPiAgNiBmaWxlcyBjaGFu Z2VkLCAyNjcgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKPiBpbmRleCA1NDY1Yjk5YjQzOTIuLjc0MjU1Mzc0Y2M2YiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYwo+IEBAIC04NjgsNiArODY4LDggQEAgc3RhdGljIGludCBpOTE1X2Ry aXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWlm IChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAgCj4g KwlpbnRlbF9kZXZpY2VfaW5mb19zdWJwbGF0Zm9ybV9pbml0KGRldl9wcml2KTsKPiArCj4gIAlz cGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAgCXNwaW5fbG9ja19pbml0KCZk ZXZfcHJpdi0+Z3B1X2Vycm9yLmxvY2spOwo+ICAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmJhY2ts aWdodF9sb2NrKTsKPiBAQCAtMTcxOCwxMCArMTcyMCwxMiBAQCBzdGF0aWMgdm9pZCBpOTE1X3dl bGNvbWVfbWVzc2FnZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaWYg KGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIpIHsKPiAgCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9 IGRybV9kZWJ1Z19wcmludGVyKCJpOTE1IGRldmljZSBpbmZvOiIpOwo+ICAKPiAtCQlkcm1fcHJp bnRmKCZwLCAicGNpaWQ9MHglMDR4IHJldj0weCUwMnggcGxhdGZvcm09JXMgZ2VuPSVpXG4iLAo+ ICsJCWRybV9wcmludGYoJnAsICJwY2lpZD0weCUwNHggcmV2PTB4JTAyeCBwbGF0Zm9ybT0lcyAo c3VicGxhdGZvcm09MHgleCkgZ2VuPSVpXG4iLAo+ICAJCQkgICBJTlRFTF9ERVZJRChkZXZfcHJp diksCj4gIAkJCSAgIElOVEVMX1JFVklEKGRldl9wcml2KSwKPiAgCQkJICAgaW50ZWxfcGxhdGZv cm1fbmFtZShJTlRFTF9JTkZPKGRldl9wcml2KS0+cGxhdGZvcm0pLAo+ICsJCQkgICBpbnRlbF9z dWJwbGF0Zm9ybShSVU5USU1FX0lORk8oZGV2X3ByaXYpLAo+ICsJCQkJCSAgICAgSU5URUxfSU5G TyhkZXZfcHJpdiktPnBsYXRmb3JtKSwKPiAgCQkJICAgSU5URUxfR0VOKGRldl9wcml2KSk7Cj4g IAo+ICAJCWludGVsX2RldmljZV9pbmZvX2R1bXBfZmxhZ3MoSU5URUxfSU5GTyhkZXZfcHJpdiks ICZwKTsKPiBAQCAtMTc2NCw4ICsxNzY4LDYgQEAgaTkxNV9kcml2ZXJfY3JlYXRlKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQo+ICAJbWVtY3B5 KGRldmljZV9pbmZvLCBtYXRjaF9pbmZvLCBzaXplb2YoKmRldmljZV9pbmZvKSk7Cj4gIAlSVU5U SU1FX0lORk8oaTkxNSktPmRldmljZV9pZCA9IHBkZXYtPmRldmljZTsKPiAgCj4gLQlCVUlMRF9C VUdfT04oSU5URUxfTUFYX1BMQVRGT1JNUyA+Cj4gLQkJICAgICBCSVRTX1BFUl9UWVBFKGRldmlj ZV9pbmZvLT5wbGF0Zm9ybV9tYXNrKSk7Cj4gIAlCVUdfT04oZGV2aWNlX2luZm8tPmdlbiA+IEJJ VFNfUEVSX1RZUEUoZGV2aWNlX2luZm8tPmdlbl9tYXNrKSk7Cj4gIAo+ICAJcmV0dXJuIGk5MTU7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNDhjM2IxMzlmMzZmLi5jMjllYmZkOTQw NjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjI5OCw3ICsyMjk4LDY4IEBA IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk5MTVfc2dfc2VnbWVudF9zaXplKHZvaWQpCj4g ICNkZWZpbmUgSVNfUkVWSUQocCwgc2luY2UsIHVudGlsKSBcCj4gIAkoSU5URUxfUkVWSUQocCkg Pj0gKHNpbmNlKSAmJiBJTlRFTF9SRVZJRChwKSA8PSAodW50aWwpKQo+ICAKPiAtI2RlZmluZSBJ U19QTEFURk9STShkZXZfcHJpdiwgcCkgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5wbGF0Zm9ybV9t YXNrICYgQklUKHApKQo+ICtzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludAo+ICtf X3BsYXRmb3JtX21hc2tfaW5kZXgoY29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5m bywKPiArCQkgICAgICBlbnVtIGludGVsX3BsYXRmb3JtIHApCj4gK3sKPiArCWNvbnN0IHVuc2ln bmVkIGludCBwYml0cyA9Cj4gKwkJQklUU19QRVJfVFlQRShpbmZvLT5wbGF0Zm9ybV9tYXNrWzBd KSAtIElOVEVMX1NVQlBMQVRGT1JNX0JJVFM7Cj4gKwo+ICsJLyogRXhwYW5kIHRoZSBwbGF0Zm9y bV9tYXNrIGFycmF5IGlmIHRoaXMgZmFpbHMuICovCj4gKwlCVUlMRF9CVUdfT04oSU5URUxfTUFY X1BMQVRGT1JNUyA+Cj4gKwkJICAgICBwYml0cyAqIEFSUkFZX1NJWkUoaW5mby0+cGxhdGZvcm1f bWFzaykpOwo+ICsKPiArCXJldHVybiBwIC8gcGJpdHM7Cj4gK30KPiArCj4gK3N0YXRpYyBfX2Fs d2F5c19pbmxpbmUgdW5zaWduZWQgaW50Cj4gK19fcGxhdGZvcm1fbWFza19iaXQoY29uc3Qgc3Ry dWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbywKPiArCQkgICAgZW51bSBpbnRlbF9wbGF0Zm9y bSBwKQo+ICt7Cj4gKwljb25zdCB1bnNpZ25lZCBpbnQgcGJpdHMgPQo+ICsJCUJJVFNfUEVSX1RZ UEUoaW5mby0+cGxhdGZvcm1fbWFza1swXSkgLSBJTlRFTF9TVUJQTEFURk9STV9CSVRTOwo+ICsK PiArCXJldHVybiBwICUgcGJpdHMgKyBJTlRFTF9TVUJQTEFURk9STV9CSVRTOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW5saW5lIHUzMgo+ICtpbnRlbF9zdWJwbGF0Zm9ybShjb25zdCBzdHJ1Y3QgaW50 ZWxfcnVudGltZV9pbmZvICppbmZvLAo+ICsJCSAgICAgIGVudW0gaW50ZWxfcGxhdGZvcm0gcCkK PiArewo+ICsJY29uc3QgdW5zaWduZWQgaW50IHBpID0gX19wbGF0Zm9ybV9tYXNrX2luZGV4KGlu Zm8sIHApOwo+ICsKPiArCXJldHVybiBpbmZvLT5wbGF0Zm9ybV9tYXNrW3BpXSAmIElOVEVMX1NV QlBMQVRGT1JNX0JJVFM7Cj4gK30KPiArCj4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbAo+ ICtJU19QTEFURk9STShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZW51bSBp bnRlbF9wbGF0Zm9ybSBwKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZv ICppbmZvID0gUlVOVElNRV9JTkZPKGk5MTUpOwo+ICsJY29uc3QgdW5zaWduZWQgaW50IHBpID0g X19wbGF0Zm9ybV9tYXNrX2luZGV4KGluZm8sIHApOwo+ICsJY29uc3QgdW5zaWduZWQgaW50IHBi ID0gX19wbGF0Zm9ybV9tYXNrX2JpdChpbmZvLCBwKTsKPiArCj4gKwlCVUlMRF9CVUdfT04oIV9f YnVpbHRpbl9jb25zdGFudF9wKHApKTsKPiArCj4gKwlyZXR1cm4gaW5mby0+cGxhdGZvcm1fbWFz a1twaV0gJiBCSVQocGIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgX19hbHdheXNfaW5saW5lIGJvb2wK PiArSVNfU1VCUExBVEZPUk0oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4g KwkgICAgICAgZW51bSBpbnRlbF9wbGF0Zm9ybSBwLCB1bnNpZ25lZCBpbnQgcykKPiArewo+ICsJ Y29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbyA9IFJVTlRJTUVfSU5GTyhpOTE1 KTsKPiArCWNvbnN0IHVuc2lnbmVkIGludCBwaSA9IF9fcGxhdGZvcm1fbWFza19pbmRleChpbmZv LCBwKTsKPiArCWNvbnN0IHVuc2lnbmVkIGludCBwYiA9IF9fcGxhdGZvcm1fbWFza19iaXQoaW5m bywgcCk7Cj4gKwljb25zdCB1bnNpZ25lZCBpbnQgbXNiID0gQklUU19QRVJfVFlQRShpbmZvLT5w bGF0Zm9ybV9tYXNrWzBdKSAtIDE7Cj4gKwljb25zdCB1MzIgbWFzayA9IGluZm8tPnBsYXRmb3Jt X21hc2tbcGldOwo+ICsKPiArCUJVSUxEX0JVR19PTighX19idWlsdGluX2NvbnN0YW50X3AocCkp Owo+ICsJQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChzKSk7Cj4gKwlCVUlMRF9C VUdfT04oKHMpID49IElOVEVMX1NVQlBMQVRGT1JNX0JJVFMpOwo+ICsKPiArCS8qIFNoaWZ0IGFu ZCB0ZXN0IG9uIHRoZSBNU0IgcG9zaXRpb24gc28gc2lnbiBmbGFnIGNhbiBiZSB1c2VkLiAqLwo+ ICsJcmV0dXJuICgobWFzayA8PCAobXNiIC0gcGIpKSAmIChtYXNrIDw8IChtc2IgLSBzKSkpICYg QklUKG1zYik7Cj4gK30KPiAgCj4gICNkZWZpbmUgSVNfTU9CSUxFKGRldl9wcml2KQkoSU5URUxf SU5GTyhkZXZfcHJpdiktPmlzX21vYmlsZSkKPiAgCj4gQEAgLTIzMzcsNDMgKzIzOTgsMzIgQEAg c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaTkxNV9zZ19zZWdtZW50X3NpemUodm9pZCkKPiAg I2RlZmluZSBJU19FTEtIQVJUTEFLRShkZXZfcHJpdikJSVNfUExBVEZPUk0oZGV2X3ByaXYsIElO VEVMX0VMS0hBUlRMQUtFKQo+ICAjZGVmaW5lIElTX0hTV19FQVJMWV9TRFYoZGV2X3ByaXYpIChJ U19IQVNXRUxMKGRldl9wcml2KSAmJiBcCj4gIAkJCQkgICAgKElOVEVMX0RFVklEKGRldl9wcml2 KSAmIDB4RkYwMCkgPT0gMHgwQzAwKQo+IC0jZGVmaW5lIElTX0JEV19VTFQoZGV2X3ByaXYpCShJ U19CUk9BRFdFTEwoZGV2X3ByaXYpICYmIFwKPiAtCQkJCSAoKElOVEVMX0RFVklEKGRldl9wcml2 KSAmIDB4ZikgPT0gMHg2IHx8CVwKPiAtCQkJCSAoSU5URUxfREVWSUQoZGV2X3ByaXYpICYgMHhm KSA9PSAweGIgfHwJXAo+IC0JCQkJIChJTlRFTF9ERVZJRChkZXZfcHJpdikgJiAweGYpID09IDB4 ZSkpCj4gLS8qIFVMWCBtYWNoaW5lcyBhcmUgYWxzbyBjb25zaWRlcmVkIFVMVC4gKi8KPiAtI2Rl ZmluZSBJU19CRFdfVUxYKGRldl9wcml2KQkoSVNfQlJPQURXRUxMKGRldl9wcml2KSAmJiBcCj4g LQkJCQkgKElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4ZikgPT0gMHhlKQo+ICsjZGVmaW5lIElT X0JEV19VTFQoZGV2X3ByaXYpIFwKPiArCUlTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9C Uk9BRFdFTEwsIElOVEVMX1NVQlBMQVRGT1JNX1VMVCkKPiArI2RlZmluZSBJU19CRFdfVUxYKGRl dl9wcml2KSBcCj4gKwlJU19TVUJQTEFURk9STShkZXZfcHJpdiwgSU5URUxfQlJPQURXRUxMLCBJ TlRFTF9TVUJQTEFURk9STV9VTFgpCj4gICNkZWZpbmUgSVNfQkRXX0dUMyhkZXZfcHJpdikJKElT X0JST0FEV0VMTChkZXZfcHJpdikgJiYgXAo+ICAJCQkJIElOVEVMX0lORk8oZGV2X3ByaXYpLT5n dCA9PSAzKQo+IC0jZGVmaW5lIElTX0hTV19VTFQoZGV2X3ByaXYpCShJU19IQVNXRUxMKGRldl9w cml2KSAmJiBcCj4gLQkJCQkgKElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4RkYwMCkgPT0gMHgw QTAwKQo+ICsjZGVmaW5lIElTX0hTV19VTFQoZGV2X3ByaXYpIFwKPiArCUlTX1NVQlBMQVRGT1JN KGRldl9wcml2LCBJTlRFTF9IQVNXRUxMLCBJTlRFTF9TVUJQTEFURk9STV9VTFQpCj4gICNkZWZp bmUgSVNfSFNXX0dUMyhkZXZfcHJpdikJKElTX0hBU1dFTEwoZGV2X3ByaXYpICYmIFwKPiAgCQkJ CSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z3QgPT0gMykKPiAgI2RlZmluZSBJU19IU1dfR1QxKGRl dl9wcml2KQkoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYgXAo+ICAJCQkJIElOVEVMX0lORk8oZGV2 X3ByaXYpLT5ndCA9PSAxKQo+ICAvKiBVTFggbWFjaGluZXMgYXJlIGFsc28gY29uc2lkZXJlZCBV TFQuICovCj4gLSNkZWZpbmUgSVNfSFNXX1VMWChkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9w cml2KSA9PSAweDBBMEUgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDBB MUUpCj4gLSNkZWZpbmUgSVNfU0tMX1VMVChkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9wcml2 KSA9PSAweDE5MDYgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MTMg fHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MTYgfHwgXAo+IC0JCQkJ IElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MjEgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklE KGRldl9wcml2KSA9PSAweDE5MjYpCj4gLSNkZWZpbmUgSVNfU0tMX1VMWChkZXZfcHJpdikJKElO VEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MEUgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRl dl9wcml2KSA9PSAweDE5MTUgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAw eDE5MUUpCj4gLSNkZWZpbmUgSVNfS0JMX1VMVChkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9w cml2KSA9PSAweDU5MDYgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5 MTMgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5MTYgfHwgXAo+IC0J CQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5MjEgfHwgXAo+IC0JCQkJIElOVEVMX0RF VklEKGRldl9wcml2KSA9PSAweDU5MjYpCj4gLSNkZWZpbmUgSVNfS0JMX1VMWChkZXZfcHJpdikJ KElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5MEUgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklE KGRldl9wcml2KSA9PSAweDU5MTUgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9 PSAweDU5MUUpCj4gLSNkZWZpbmUgSVNfQU1MX1VMWChkZXZfcHJpdikJKElOVEVMX0RFVklEKGRl dl9wcml2KSA9PSAweDU5MUMgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAw eDg3QzAgfHwgXAo+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDg3Q0EpCj4gKyNk ZWZpbmUgSVNfSFNXX1VMWChkZXZfcHJpdikgXAo+ICsJSVNfU1VCUExBVEZPUk0oZGV2X3ByaXYs IElOVEVMX0hBU1dFTEwsIElOVEVMX1NVQlBMQVRGT1JNX1VMWCkKPiArI2RlZmluZSBJU19TS0xf VUxUKGRldl9wcml2KSBcCj4gKwlJU19TVUJQTEFURk9STShkZXZfcHJpdiwgSU5URUxfU0tZTEFL RSwgSU5URUxfU1VCUExBVEZPUk1fVUxUKQo+ICsjZGVmaW5lIElTX1NLTF9VTFgoZGV2X3ByaXYp IFwKPiArCUlTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9TS1lMQUtFLCBJTlRFTF9TVUJQ TEFURk9STV9VTFgpCj4gKyNkZWZpbmUgSVNfS0JMX1VMVChkZXZfcHJpdikgXAo+ICsJSVNfU1VC UExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0tBQllMQUtFLCBJTlRFTF9TVUJQTEFURk9STV9VTFQp Cj4gKyNkZWZpbmUgSVNfS0JMX1VMWChkZXZfcHJpdikgXAo+ICsJSVNfU1VCUExBVEZPUk0oZGV2 X3ByaXYsIElOVEVMX0tBQllMQUtFLCBJTlRFTF9TVUJQTEFURk9STV9VTFgpCj4gKyNkZWZpbmUg SVNfQU1MX1VMWChkZXZfcHJpdikgXAo+ICsJKElTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRF TF9LQUJZTEFLRSwgSU5URUxfU1VCUExBVEZPUk1fQU1MKSB8fCBcCj4gKwkgSVNfU1VCUExBVEZP Uk0oZGV2X3ByaXYsIElOVEVMX0NPRkZFRUxBS0UsIElOVEVMX1NVQlBMQVRGT1JNX0FNTCkpCj4g ICNkZWZpbmUgSVNfU0tMX0dUMihkZXZfcHJpdikJKElTX1NLWUxBS0UoZGV2X3ByaXYpICYmIFwK PiAgCQkJCSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z3QgPT0gMikKPiAgI2RlZmluZSBJU19TS0xf R1QzKGRldl9wcml2KQkoSVNfU0tZTEFLRShkZXZfcHJpdikgJiYgXAo+IEBAIC0yMzg0LDE2ICsy NDM0LDE2IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk5MTVfc2dfc2VnbWVudF9zaXpl KHZvaWQpCj4gIAkJCQkgSU5URUxfSU5GTyhkZXZfcHJpdiktPmd0ID09IDIpCj4gICNkZWZpbmUg SVNfS0JMX0dUMyhkZXZfcHJpdikJKElTX0tBQllMQUtFKGRldl9wcml2KSAmJiBcCj4gIAkJCQkg SU5URUxfSU5GTyhkZXZfcHJpdiktPmd0ID09IDMpCj4gLSNkZWZpbmUgSVNfQ0ZMX1VMVChkZXZf cHJpdikJKElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpICYmIFwKPiAtCQkJCSAoSU5URUxfREVWSUQo ZGV2X3ByaXYpICYgMHgwMEYwKSA9PSAweDAwQTApCj4gKyNkZWZpbmUgSVNfQ0ZMX1VMVChkZXZf cHJpdikgXAo+ICsJSVNfU1VCUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0NPRkZFRUxBS0UsIElO VEVMX1NVQlBMQVRGT1JNX1VMVCkKPiAgI2RlZmluZSBJU19DRkxfR1QyKGRldl9wcml2KQkoSVNf Q09GRkVFTEFLRShkZXZfcHJpdikgJiYgXAo+ICAJCQkJIElOVEVMX0lORk8oZGV2X3ByaXYpLT5n dCA9PSAyKQo+ICAjZGVmaW5lIElTX0NGTF9HVDMoZGV2X3ByaXYpCShJU19DT0ZGRUVMQUtFKGRl dl9wcml2KSAmJiBcCj4gIAkJCQkgSU5URUxfSU5GTyhkZXZfcHJpdiktPmd0ID09IDMpCj4gLSNk ZWZpbmUgSVNfQ05MX1dJVEhfUE9SVF9GKGRldl9wcml2KSAgIChJU19DQU5OT05MQUtFKGRldl9w cml2KSAmJiBcCj4gLQkJCQkJKElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4MDAwNCkgPT0gMHgw MDA0KQo+IC0jZGVmaW5lIElTX0lDTF9XSVRIX1BPUlRfRihkZXZfcHJpdikgICAoSVNfSUNFTEFL RShkZXZfcHJpdikgJiYgXAo+IC0JCQkJCUlOVEVMX0RFVklEKGRldl9wcml2KSAhPSAweDhBNTEp Cj4gKyNkZWZpbmUgSVNfQ05MX1dJVEhfUE9SVF9GKGRldl9wcml2KSBcCj4gKwlJU19TVUJQTEFU Rk9STShkZXZfcHJpdiwgSU5URUxfQ0FOTk9OTEFLRSwgSU5URUxfU1VCUExBVEZPUk1fUE9SVEYp Cj4gKyNkZWZpbmUgSVNfSUNMX1dJVEhfUE9SVF9GKGRldl9wcml2KSBcCj4gKwlJU19TVUJQTEFU Rk9STShkZXZfcHJpdiwgSU5URUxfSUNFTEFLRSwgSU5URUxfU1VCUExBVEZPUk1fUE9SVEYpCj4g IAo+ICAjZGVmaW5lIElTX0FMUEhBX1NVUFBPUlQoaW50ZWxfaW5mbykgKChpbnRlbF9pbmZvKS0+ aXNfYWxwaGFfc3VwcG9ydCkKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j Cj4gaW5kZXggYTk1NTdmOTI3NTZmLi4wYzk4MGI4OTkwNTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBAQCAtNjc3LDYgKzY3Nyw5IEBAIHN0YXRpYyB2b2lkIF9f ZXJyX3ByaW50X3RvX3NnbChzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAo+ICAJ ZXJyX3ByaW50ZihtLCAiUmVzZXQgY291bnQ6ICV1XG4iLCBlcnJvci0+cmVzZXRfY291bnQpOwo+ ICAJZXJyX3ByaW50ZihtLCAiU3VzcGVuZCBjb3VudDogJXVcbiIsIGVycm9yLT5zdXNwZW5kX2Nv dW50KTsKPiAgCWVycl9wcmludGYobSwgIlBsYXRmb3JtOiAlc1xuIiwgaW50ZWxfcGxhdGZvcm1f bmFtZShlcnJvci0+ZGV2aWNlX2luZm8ucGxhdGZvcm0pKTsKPiArCWVycl9wcmludGYobSwgIlN1 YnBsYXRmb3JtOiAweCV4XG4iLAo+ICsJCSAgIGludGVsX3N1YnBsYXRmb3JtKCZlcnJvci0+cnVu dGltZV9pbmZvLAo+ICsJCQkJICAgICBlcnJvci0+ZGV2aWNlX2luZm8ucGxhdGZvcm0pKTsKPiAg CWVycl9wcmludF9wY2lpZChtLCBtLT5pOTE1KTsKPiAgCj4gIAllcnJfcHJpbnRmKG0sICJJT01N VSBlbmFibGVkPzogJWRcbiIsIGVycm9yLT5pb21tdSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5j Cj4gaW5kZXggNzE2ZjJmOTVjNTdkLi4zOTI1MTU4NjM0OWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGNpLmMKPiBAQCAtMzIsNyArMzIsNyBAQAo+ICAjaW5jbHVkZSAiaTkxNV9nbG9iYWxzLmgi Cj4gICNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCj4gIAo+IC0jZGVmaW5lIFBMQVRGT1JNKHgp IC5wbGF0Zm9ybSA9ICh4KSwgLnBsYXRmb3JtX21hc2sgPSBCSVQoeCkKPiArI2RlZmluZSBQTEFU Rk9STSh4KSAucGxhdGZvcm0gPSAoeCkKPiAgI2RlZmluZSBHRU4oeCkgLmdlbiA9ICh4KSwgLmdl bl9tYXNrID0gQklUKCh4KSAtIDEpCj4gIAo+ICAjZGVmaW5lIEk4NDVfUElQRV9PRkZTRVRTIFwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiBpbmRleCBlMGFjOTA4 YmI0ZTkuLjg1ZGE4N2UxNGMwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZXZpY2VfaW5mby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uYwo+IEBAIC03MTQsNiArNzE0LDE1MSBAQCBzdGF0aWMgdTMyIHJlYWRfdGltZXN0 YW1wX2ZyZXF1ZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlyZXR1 cm4gMDsKPiAgfQo+ICAKPiArI3VuZGVmIElOVEVMX1ZHQV9ERVZJQ0UKPiArI2RlZmluZSBJTlRF TF9WR0FfREVWSUNFKGlkLCBpbmZvKSAoaWQpCj4gKwo+ICtzdGF0aWMgY29uc3QgdTE2IGhzd191 bHRfaWRzW10gPSB7Cj4gKwlJTlRFTF9IU1dfVUxUX0dUMV9JRFMoMCksCj4gKwlJTlRFTF9IU1df VUxUX0dUMl9JRFMoMCksCj4gKwlJTlRFTF9IU1dfVUxUX0dUM19JRFMoMCkKPiArfTsKPiArCj4g K3N0YXRpYyBjb25zdCB1MTYgaHN3X3VseF9pZHNbXSA9IHsKPiArCUlOVEVMX0hTV19VTFhfR1Qx X0lEUygwKSwKPiArCUlOVEVMX0hTV19VTFhfR1QyX0lEUygwKQo+ICt9Owo+ICsKPiArc3RhdGlj IGNvbnN0IHUxNiBiZHdfdWx0X2lkc1tdID0gewo+ICsJSU5URUxfQkRXX1VMVF9HVDFfSURTKDAp LAo+ICsJSU5URUxfQkRXX1VMVF9HVDJfSURTKDApLAo+ICsJSU5URUxfQkRXX1VMVF9HVDNfSURT KDApLAo+ICsJSU5URUxfQkRXX1VMVF9SU1ZEX0lEUygwKQo+ICt9Owo+ICsKPiArc3RhdGljIGNv bnN0IHUxNiBiZHdfdWx4X2lkc1tdID0gewo+ICsJSU5URUxfQkRXX1VMWF9HVDFfSURTKDApLAo+ ICsJSU5URUxfQkRXX1VMWF9HVDJfSURTKDApLAo+ICsJSU5URUxfQkRXX1VMWF9HVDNfSURTKDAp LAo+ICsJSU5URUxfQkRXX1VMWF9SU1ZEX0lEUygwKQo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0 IHUxNiBza2xfdWx0X2lkc1tdID0gewo+ICsJSU5URUxfU0tMX1VMVF9HVDFfSURTKDApLAo+ICsJ SU5URUxfU0tMX1VMVF9HVDJfSURTKDApLAo+ICsJSU5URUxfU0tMX1VMVF9HVDNfSURTKDApCj4g K307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdTE2IHNrbF91bHhfaWRzW10gPSB7Cj4gKwlJTlRFTF9T S0xfVUxYX0dUMV9JRFMoMCksCj4gKwlJTlRFTF9TS0xfVUxYX0dUMl9JRFMoMCkKPiArfTsKPiAr Cj4gK3N0YXRpYyBjb25zdCB1MTYga2JsX3VsdF9pZHNbXSA9IHsKPiArCUlOVEVMX0tCTF9VTFRf R1QxX0lEUygwKSwKPiArCUlOVEVMX0tCTF9VTFRfR1QyX0lEUygwKSwKPiArCUlOVEVMX0tCTF9V TFRfR1QzX0lEUygwKQo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHUxNiBrYmxfdWx4X2lkc1td ID0gewo+ICsJSU5URUxfS0JMX1VMWF9HVDFfSURTKDApLAo+ICsJSU5URUxfS0JMX1VMWF9HVDJf SURTKDApCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdTE2IGtibF9hbWxfaWRzW10gPSB7Cj4g KwlJTlRFTF9BTUxfS0JMX0dUMl9JRFMoMCkKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1MTYg Y2ZsX3VsdF9pZHNbXSA9IHsKPiArCUlOVEVMX0NGTF9VX0dUMl9JRFMoMCksCj4gKwlJTlRFTF9D RkxfVV9HVDNfSURTKDApLAo+ICsJSU5URUxfV0hMX1VfR1QxX0lEUygwKSwKPiArCUlOVEVMX1dI TF9VX0dUMl9JRFMoMCksCj4gKwlJTlRFTF9XSExfVV9HVDNfSURTKDApCj4gK307Cj4gKwo+ICtz dGF0aWMgY29uc3QgdTE2IGNmbF9hbWxfaWRzW10gPSB7Cj4gKwlJTlRFTF9BTUxfQ0ZMX0dUMl9J RFMoMCkKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1MTYgY25sX3BvcnRmX2lkc1tdID0gewo+ ICsJSU5URUxfQ05MX1BPUlRfRl9JRFMoMCkKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1MTYg aWNsX3BvcnRmX2lkc1tdID0gewo+ICsJSU5URUxfSUNMX1BPUlRfRl9JRFMoMCkKPiArfTsKCldo YXQncyB0aGUgYmVuZWZpdCBvZiBoYXZpbmcgcGxhdGZvcm0gc3BsaXQgaW4gdGhlIGFycmF5cyBh bmQgYW4gaWYKbGFkZGVyIGluIHRoZSBmdW5jdGlvbiBiZWxvdz8KCkkgdGhpbmsgSSdkIGdvIHdp dGgganVzdCB0aGUgZmVhdHVyZSBhcnJheXMuCgpCUiwKSmFuaS4KCj4gKwo+ICtzdGF0aWMgYm9v bCBmaW5kX2RldmlkKHUxNiBpZCwgY29uc3QgdTE2ICpwLCB1bnNpZ25lZCBpbnQgbnVtKQo+ICt7 Cj4gKwlmb3IgKDsgbnVtOyBudW0tLSwgcCsrKSB7Cj4gKwkJaWYgKCpwID09IGlkKQo+ICsJCQly ZXR1cm4gdHJ1ZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gZmFsc2U7Cj4gK30KPiArCj4gK3ZvaWQg aW50ZWxfZGV2aWNlX2luZm9fc3VicGxhdGZvcm1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKPiArewo+ICsJY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvICppbmZvID0g SU5URUxfSU5GTyhpOTE1KTsKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gKnJp bmZvID0gUlVOVElNRV9JTkZPKGk5MTUpOwo+ICsJY29uc3QgdW5zaWduZWQgaW50IHBpID0gX19w bGF0Zm9ybV9tYXNrX2luZGV4KHJpbmZvLCBpbmZvLT5wbGF0Zm9ybSk7Cj4gKwljb25zdCB1bnNp Z25lZCBpbnQgcGIgPSBfX3BsYXRmb3JtX21hc2tfYml0KHJpbmZvLCBpbmZvLT5wbGF0Zm9ybSk7 Cj4gKwl1MTYgZGV2aWQgPSBJTlRFTF9ERVZJRChpOTE1KTsKPiArCXUzMiBtYXNrID0gMDsKPiAr Cj4gKwlSVU5USU1FX0lORk8oaTkxNSktPnBsYXRmb3JtX21hc2tbcGldID0gQklUKHBiKTsKPiAr Cj4gKwlpZiAoSVNfSEFTV0VMTChpOTE1KSkgewo+ICsJCWlmIChmaW5kX2RldmlkKGRldmlkLCBo c3dfdWx0X2lkcywgQVJSQVlfU0laRShoc3dfdWx0X2lkcykpKQo+ICsJCQltYXNrID0gQklUKElO VEVMX1NVQlBMQVRGT1JNX1VMVCk7Cj4gKwkJZWxzZSBpZiAoZmluZF9kZXZpZChkZXZpZCwgaHN3 X3VseF9pZHMsCj4gKwkJCQkgICAgQVJSQVlfU0laRShoc3dfdWx4X2lkcykpKQo+ICsJCQkvKiBV TFggbWFjaGluZXMgYXJlIGFsc28gY29uc2lkZXJlZCBVTFQuICovCj4gKwkJCW1hc2sgPSBCSVQo SU5URUxfU1VCUExBVEZPUk1fVUxUKSB8Cj4gKwkJCSAgICAgICBCSVQoSU5URUxfU1VCUExBVEZP Uk1fVUxYKTsKPiArCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGk5MTUpKSB7Cj4gKwkJaWYgKGZp bmRfZGV2aWQoZGV2aWQsIGJkd191bHRfaWRzLCBBUlJBWV9TSVpFKGJkd191bHRfaWRzKSkpCj4g KwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fVUxUKTsKPiArCQllbHNlIGlmIChmaW5k X2RldmlkKGRldmlkLCBiZHdfdWx4X2lkcywKPiArCQkJCSAgICBBUlJBWV9TSVpFKGJkd191bHhf aWRzKSkpCj4gKwkJCS8qIFVMWCBtYWNoaW5lcyBhcmUgYWxzbyBjb25zaWRlcmVkIFVMVC4gKi8K PiArCQkJbWFzayA9IEJJVChJTlRFTF9TVUJQTEFURk9STV9VTFQpIHwKPiArCQkJICAgICAgIEJJ VChJTlRFTF9TVUJQTEFURk9STV9VTFgpOwo+ICsJfSBlbHNlIGlmIChJU19TS1lMQUtFKGk5MTUp KSB7Cj4gKwkJaWYgKGZpbmRfZGV2aWQoZGV2aWQsIHNrbF91bHRfaWRzLCBBUlJBWV9TSVpFKHNr bF91bHRfaWRzKSkpCj4gKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fVUxUKTsKPiAr CQllbHNlIGlmIChmaW5kX2RldmlkKGRldmlkLCBza2xfdWx4X2lkcywKPiArCQkJCSAgICBBUlJB WV9TSVpFKHNrbF91bHhfaWRzKSkpCj4gKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1f VUxYKTsKPiArCX0gZWxzZSBpZiAoSVNfS0FCWUxBS0UoaTkxNSkpIHsKPiArCQlpZiAoZmluZF9k ZXZpZChkZXZpZCwga2JsX3VsdF9pZHMsIEFSUkFZX1NJWkUoa2JsX3VsdF9pZHMpKSkKPiArCQkJ bWFzayA9IEJJVChJTlRFTF9TVUJQTEFURk9STV9VTFQpOwo+ICsJCWVsc2UgaWYgKGZpbmRfZGV2 aWQoZGV2aWQsIGtibF91bHhfaWRzLAo+ICsJCQkJICAgIEFSUkFZX1NJWkUoa2JsX3VseF9pZHMp KSkKPiArCQkJbWFzayA9IEJJVChJTlRFTF9TVUJQTEFURk9STV9VTFgpOwo+ICsJCWVsc2UgaWYg KGZpbmRfZGV2aWQoZGV2aWQsIGtibF9hbWxfaWRzLAo+ICsJCQkJICAgIEFSUkFZX1NJWkUoa2Js X2FtbF9pZHMpKSkKPiArCQkJbWFzayA9IEJJVChJTlRFTF9TVUJQTEFURk9STV9BTUwpOwo+ICsJ fSBlbHNlIGlmIChJU19DT0ZGRUVMQUtFKGk5MTUpKSB7Cj4gKwkJaWYgKGZpbmRfZGV2aWQoZGV2 aWQsIGNmbF91bHRfaWRzLCBBUlJBWV9TSVpFKGNmbF91bHRfaWRzKSkpCj4gKwkJCW1hc2sgPSBC SVQoSU5URUxfU1VCUExBVEZPUk1fVUxUKTsKPiArCQllbHNlIGlmIChmaW5kX2RldmlkKGRldmlk LCBjZmxfYW1sX2lkcywKPiArCQkJCSAgICBBUlJBWV9TSVpFKGNmbF9hbWxfaWRzKSkpCj4gKwkJ CW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fQU1MKTsKPiArCX0gZWxzZSBpZiAoSVNfQ0FO Tk9OTEFLRShpOTE1KSkgewo+ICsJCWlmIChmaW5kX2RldmlkKGRldmlkLCBjbmxfcG9ydGZfaWRz LCBBUlJBWV9TSVpFKGNubF9wb3J0Zl9pZHMpKSkKPiArCQkJbWFzayA9IEJJVChJTlRFTF9TVUJQ TEFURk9STV9QT1JURik7Cj4gKwl9IGVsc2UgaWYgKElTX0lDRUxBS0UoaTkxNSkpIHsKPiArCQlp ZiAoZmluZF9kZXZpZChkZXZpZCwgaWNsX3BvcnRmX2lkcywgQVJSQVlfU0laRShpY2xfcG9ydGZf aWRzKSkpCj4gKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fUE9SVEYpOwo+ICsJfQo+ ICsKPiArCUdFTV9CVUdfT04obWFzayAmIH5JTlRFTF9TVUJQTEFURk9STV9CSVRTKTsKPiArCj4g KwlSVU5USU1FX0lORk8oaTkxNSktPnBsYXRmb3JtX21hc2tbcGldIHw9IG1hc2s7Cj4gK30KPiAr Cj4gIC8qKgo+ICAgKiBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQgLSBpbml0aWFsaXpl IHJ1bnRpbWUgaW5mbwo+ICAgKiBAZGV2X3ByaXY6IHRoZSBpOTE1IGRldmljZQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+IGluZGV4IDk4YWNlZmFhY2VjOS4uZGEx MTUyZWVmNDZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rldmlj ZV9pbmZvLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5o Cj4gQEAgLTc3LDYgKzc3LDIxIEBAIGVudW0gaW50ZWxfcGxhdGZvcm0gewo+ICAJSU5URUxfTUFY X1BMQVRGT1JNUwo+ICB9Owo+ICAKPiArLyoKPiArICogU3VicGxhdGZvcm0gYml0cyBzaGFyZSB0 aGUgc2FtZSBuYW1lc3BhY2UgcGVyIHBhcmVudCBwbGF0Zm9ybS4gSW4gb3RoZXIgd29yZHMKPiAr ICogaXQgaXMgZmluZSBmb3IgdGhlIHNhbWUgYml0IHRvIGJlIHVzZWQgb24gbXVsdGlwbGUgcGFy ZW50IHBsYXRmb3Jtcy4KPiArICovCj4gKwo+ICsjZGVmaW5lIElOVEVMX1NVQlBMQVRGT1JNX0JJ VFMgKDMpCj4gKwo+ICsvKiBIU1cvQkRXL1NLTC9LQkwvQ0ZMICovCj4gKyNkZWZpbmUgSU5URUxf U1VCUExBVEZPUk1fVUxUCSgwKQo+ICsjZGVmaW5lIElOVEVMX1NVQlBMQVRGT1JNX1VMWAkoMSkK PiArI2RlZmluZSBJTlRFTF9TVUJQTEFURk9STV9BTUwJKDIpCj4gKwo+ICsvKiBDTkwvSUNMICov Cj4gKyNkZWZpbmUgSU5URUxfU1VCUExBVEZPUk1fUE9SVEYJKDApCj4gKwo+ICBlbnVtIGludGVs X3BwZ3R0X3R5cGUgewo+ICAJSU5URUxfUFBHVFRfTk9ORSA9IEk5MTVfR0VNX1BQR1RUX05PTkUs Cj4gIAlJTlRFTF9QUEdUVF9BTElBU0lORyA9IEk5MTVfR0VNX1BQR1RUX0FMSUFTSU5HLAo+IEBA IC0xNjAsNyArMTc1LDYgQEAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsKPiAgCWludGVsX2Vu Z2luZV9tYXNrX3QgZW5naW5lX21hc2s7IC8qIEVuZ2luZXMgc3VwcG9ydGVkIGJ5IHRoZSBIVyAq Lwo+ICAKPiAgCWVudW0gaW50ZWxfcGxhdGZvcm0gcGxhdGZvcm07Cj4gLQl1MzIgcGxhdGZvcm1f bWFzazsKPiAgCj4gIAllbnVtIGludGVsX3BwZ3R0X3R5cGUgcHBndHRfdHlwZTsKPiAgCXVuc2ln bmVkIGludCBwcGd0dF9zaXplOyAvKiBsb2cyLCBlLmcuIDMxLzMyLzQ4IGJpdHMgKi8KPiBAQCAt MTk3LDYgKzIxMSwxNiBAQCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gewo+ICB9Owo+ICAKPiAg c3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyB7Cj4gKwkvKgo+ICsJICogUGxhdGZvcm0gbWFzayBp cyB1c2VkIGZvciBvcHRpbWl6aW5nIG9yLWVkIElTX1BMQVRGT1JNIGNhbGxzIGludG8KPiArCSAq IGludG8gc2luZ2xlIHJ1bnRpbWUgY29uZGl0aW9uYWxzLCBhbmQgYWxzbyB0byBwcm92aWRlIGdy b3VuZHdvcmsKPiArCSAqIGZvciBmdXR1cmUgcGVyIHBsYXRmb3JtLCBvciBwZXIgU0tVIGJ1aWxk IG9wdGltaXphdGlvbnMuCj4gKwkgKgo+ICsJICogQXJyYXkgY2FuIGJlIGV4dGVuZGVkIHdoZW4g bmVjZXNzYXJ5IGlmIHRoZSBjb3JyZXNwb25kaW5nCj4gKwkgKiBCVUlMRF9CVUdfT04gaXMgaGl0 Lgo+ICsJICovCj4gKwl1MzIgcGxhdGZvcm1fbWFza1syXTsKPiArCj4gIAl1MTYgZGV2aWNlX2lk Owo+ICAKPiAgCXU4IG51bV9zcHJpdGVzW0k5MTVfTUFYX1BJUEVTXTsKPiBAQCAtMjcxLDYgKzI5 NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzc2V1X3NldF9ldXMoc3RydWN0IHNzZXVfZGV2X2lu Zm8gKnNzZXUsCj4gIAo+ICBjb25zdCBjaGFyICppbnRlbF9wbGF0Zm9ybV9uYW1lKGVudW0gaW50 ZWxfcGxhdGZvcm0gcGxhdGZvcm0pOwo+ICAKPiArdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19zdWJw bGF0Zm9ybV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQg aW50ZWxfZGV2aWNlX2luZm9fcnVudGltZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fZHVtcF9mbGFncyhjb25zdCBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCj4gIAkJCQkgIHN0cnVjdCBkcm1fcHJpbnRlciAq cCk7CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=