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 11:34:45 +0200 Message-ID: <87wokm3rnu.fsf@intel.com> References: <20190326074057.27833-1-tvrtko.ursulin@linux.intel.com> <20190326074057.27833-5-tvrtko.ursulin@linux.intel.com> <8736na58t4.fsf@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 0417E6E7B5 for ; Tue, 26 Mar 2019 09:32:08 +0000 (UTC) In-Reply-To: <8736na58t4.fsf@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 T24gVHVlLCAyNiBNYXIgMjAxOSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4g d3JvdGU6Cj4gT24gVHVlLCAyNiBNYXIgMjAxOSwgVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4+IEZyb206IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+Cj4+IENvbmNlcHQgb2YgYSBzdWItcGxhdGZvcm0gYWxy ZWFkeSBleGlzdCBpbiBvdXIgY29kZSAobGlrZSBVTFggYW5kIFVMVAo+PiBwbGF0Zm9ybSB2YXJp YW50cyBhbmQgc2ltaWxhciksaW1wbGVtZW50ZWQgdmlhIHRoZSBtYWNyb3Mgd2hpY2ggY2hlY2sg YQo+PiBsaXN0IG9mIGRldmljZSBpZHMgdG8gZGV0ZXJtaW5lIGEgbWF0Y2guCj4+Cj4+IFdpdGgg dGhpcyBwYXRjaCB3ZSBjb25zb2xpZGF0ZSBkZXZpY2UgaWRzIGNoZWNraW5nIGludG8gYSBzaW5n bGUgZnVuY3Rpb24KPj4gY2FsbGVkIGR1cmluZyBlYXJseSBkcml2ZXIgbG9hZC4KPj4KPj4gQSBm ZXcgbG93IGJpdHMgaW4gdGhlIHBsYXRmb3JtIG1hc2sgYXJlIHJlc2VydmVkIGZvciBzdWItcGxh dGZvcm0KPj4gaWRlbnRpZmljYXRpb24gYW5kIGRlZmluZWQgYXMgYSBwZXItcGxhdGZvcm0gbmFt ZXNwYWNlLgo+Pgo+PiBBdCB0aGUgc2FtZSB0aW1lIGl0IGZ1dHVyZSBwcm9vZnMgdGhlIHBsYXRm b3JtX21hc2sgaGFuZGxpbmcgYnkgcHJlcGFyaW5nCj4+IHRoZSBjb2RlIGZvciBlYXN5IGV4dGVu ZGluZywgYW5kIHRpZGllcyB0aGUgdmVyeSB2ZXJib3NlIFdBUk4gc3RyaW5ncwo+PiBnZW5lcmF0 ZWQgd2hlbiBJU19QTEFURk9STSBtYWNyb3MgYXJlIGVtYmVkZGVkIGludG8gYSBXQVJOIHR5cGUK Pj4gc3RhdGVtZW50cy4KPj4KPj4gdjI6IEZpeGVkIElTX1NVQlBMQVRGT1JNLiBVcGRhdGVkIGNv bW1pdCBtc2cuCj4+IHYzOiBDaHJpcyB3YXMgcmlnaHQsIHRoZXJlIGlzIGFuIG9yZGVyaW5nIHBy b2JsZW0uCj4+Cj4+IHY0Ogo+PiAgKiBDYXRjaC11cCB3aXRoIG5ldyBzdWItcGxhdGZvcm1zLgo+ PiAgKiBSZWJhc2UgZm9yIFJVTlRJTUVfSU5GTy4KPj4gICogRHJvcCBzdWJwbGF0Zm9ybSBtYXNr IHVuaW9uIHRyaWNrcyBhbmQgY29udmVydCBwbGF0Zm9ybV9tYXNrIHRvIGFuCj4+ICAgIGFycmF5 IGZvciBleHRlbnNpYmlsaXR5Lgo+Pgo+PiB2NToKPj4gICogRml4IHN1YnBsYXRmb3JtIGNoZWNr Lgo+PiAgKiBQcm90ZWN0IGFnYWluc3QgZm9yZ2V0dGluZyB0byBleHBhbmQgc3VicGxhdGZvcm0g Yml0cy4KPj4gICogUmVtb3ZlIHBsYXRmb3JtIGVudW0gdGFsbHlpbmcuCj4+ICAqIEFkZCBzdWJw bGF0Zm9ybSB0byBlcnJvciBzdGF0ZS4gKENocmlzKQo+PiAgKiBEcm9wIG1hY3JvcyBhbmQganVz dCB1c2Ugc3RhdGljIGlubGluZXMuCj4+ICAqIFJlbW92ZSByZWR1bmRhbnQgSVJPTkxBS0VfTS4g KFZpbGxlKQo+Pgo+PiB2NjoKPj4gICogU3BsaXQgb3V0IElyb25sYWtlIGNoYW5nZS4KPj4gICog T3B0aW1pemUgc3VicGxhdGZvcm0gY2hlY2suCj4+ICAqIFVzZSBfX2Fsd2F5c19pbmxpbmUuIChM dWNhcykKPj4gICogQWRkIHBsYXRmb3JtX21hc2sgY29tbWVudC4gKFBhdWxvKQo+PiAgKiBQYXNz IHN0b3JlZCBydW50aW1lIGluZm8gaW4gZXJyb3IgY2FwdHVyZS4gKENocmlzKQo+Pgo+PiB2NzoK Pj4gICogUmViYXNlZCBmb3IgbmV3IEFNTCBVTFggZGV2aWNlIGlkLgo+PiAgKiBCdW1wIHBsYXRm b3JtIG1hc2sgYXJyYXkgc2l6ZSBmb3IgRUhMLgo+PiAgKiBTdG9wIG1lbnRpb25pbmcgZGV2aWNl IGlkcyBpbiBpbnRlbF9kZXZpY2Vfc3VicGxhdGZvcm1faW5pdCBieSB1c2luZwo+PiAgICB0aGUg dHJpY2sgb2Ygc3BsaXR0aW5nIG1hY3JvcyBpOTE1X3BjaWlkcy5oLiAoSmFuaSkKPj4gICogQU1M IHNlZW1zIHRvIGJlIGVpdGhlciBhIHN1YnBsYXRmb3JtIG9mIEtCTCBvciBDRkwgc28gZXhwcmVz cyBpdCBsaWtlCj4+ICAgIHRoYXQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGlu IDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+IFN1Z2dlc3RlZC1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KPj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5j b20+Cj4+IENjOiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPj4g Q2M6IEpvc2UgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+PiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6IFBhdWxvIFphbm9uaSA8 cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+PiBSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+ICMgdjYKPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jICAgICAgICAgIHwgICA4ICstCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgICAgIHwgMTI0ICsrKysrKysrKysrKystLS0tLS0KPj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgfCAgIDMgKwo+PiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wY2kuYyAgICAgICAgICB8ICAgMiArLQo+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyB8IDE0NSArKysrKysrKysrKysrKysrKysrKysr Kwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCB8ICAyNyArKysr LQo+PiAgNiBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0p Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiBpbmRleCA1NDY1Yjk5YjQzOTIuLjc0MjU1 Mzc0Y2M2YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+IEBAIC04NjgsNiArODY4 LDggQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPj4gIAlpZiAoaTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKCkpCj4+ ICAJCXJldHVybiAtRU5PREVWOwo+PiAgCj4+ICsJaW50ZWxfZGV2aWNlX2luZm9fc3VicGxhdGZv cm1faW5pdChkZXZfcHJpdik7Cj4+ICsKPj4gIAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmly cV9sb2NrKTsKPj4gIAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmdwdV9lcnJvci5sb2NrKTsK Pj4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+YmFja2xpZ2h0X2xvY2spOwo+PiBAQCAtMTcxOCwx MCArMTcyMCwxMiBAQCBzdGF0aWMgdm9pZCBpOTE1X3dlbGNvbWVfbWVzc2FnZXMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgCWlmIChkcm1fZGVidWcgJiBEUk1fVVRfRFJJ VkVSKSB7Cj4+ICAJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2RlYnVnX3ByaW50ZXIoImk5 MTUgZGV2aWNlIGluZm86Iik7Cj4+ICAKPj4gLQkJZHJtX3ByaW50ZigmcCwgInBjaWlkPTB4JTA0 eCByZXY9MHglMDJ4IHBsYXRmb3JtPSVzIGdlbj0laVxuIiwKPj4gKwkJZHJtX3ByaW50ZigmcCwg InBjaWlkPTB4JTA0eCByZXY9MHglMDJ4IHBsYXRmb3JtPSVzIChzdWJwbGF0Zm9ybT0weCV4KSBn ZW49JWlcbiIsCj4+ICAJCQkgICBJTlRFTF9ERVZJRChkZXZfcHJpdiksCj4+ICAJCQkgICBJTlRF TF9SRVZJRChkZXZfcHJpdiksCj4+ICAJCQkgICBpbnRlbF9wbGF0Zm9ybV9uYW1lKElOVEVMX0lO Rk8oZGV2X3ByaXYpLT5wbGF0Zm9ybSksCj4+ICsJCQkgICBpbnRlbF9zdWJwbGF0Zm9ybShSVU5U SU1FX0lORk8oZGV2X3ByaXYpLAo+PiArCQkJCQkgICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5w bGF0Zm9ybSksCj4+ICAJCQkgICBJTlRFTF9HRU4oZGV2X3ByaXYpKTsKPj4gIAo+PiAgCQlpbnRl bF9kZXZpY2VfaW5mb19kdW1wX2ZsYWdzKElOVEVMX0lORk8oZGV2X3ByaXYpLCAmcCk7Cj4+IEBA IC0xNzY0LDggKzE3NjgsNiBAQCBpOTE1X2RyaXZlcl9jcmVhdGUoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCj4+ICAJbWVtY3B5KGRldmljZV9p bmZvLCBtYXRjaF9pbmZvLCBzaXplb2YoKmRldmljZV9pbmZvKSk7Cj4+ICAJUlVOVElNRV9JTkZP KGk5MTUpLT5kZXZpY2VfaWQgPSBwZGV2LT5kZXZpY2U7Cj4+ICAKPj4gLQlCVUlMRF9CVUdfT04o SU5URUxfTUFYX1BMQVRGT1JNUyA+Cj4+IC0JCSAgICAgQklUU19QRVJfVFlQRShkZXZpY2VfaW5m by0+cGxhdGZvcm1fbWFzaykpOwo+PiAgCUJVR19PTihkZXZpY2VfaW5mby0+Z2VuID4gQklUU19Q RVJfVFlQRShkZXZpY2VfaW5mby0+Z2VuX21hc2spKTsKPj4gIAo+PiAgCXJldHVybiBpOTE1Owo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggNDhjM2IxMzlmMzZmLi5jMjllYmZkOTQw NjUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMjI5OCw3ICsyMjk4LDY4 IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk5MTVfc2dfc2VnbWVudF9zaXplKHZvaWQp Cj4+ICAjZGVmaW5lIElTX1JFVklEKHAsIHNpbmNlLCB1bnRpbCkgXAo+PiAgCShJTlRFTF9SRVZJ RChwKSA+PSAoc2luY2UpICYmIElOVEVMX1JFVklEKHApIDw9ICh1bnRpbCkpCj4+ICAKPj4gLSNk ZWZpbmUgSVNfUExBVEZPUk0oZGV2X3ByaXYsIHApIChJTlRFTF9JTkZPKGRldl9wcml2KS0+cGxh dGZvcm1fbWFzayAmIEJJVChwKSkKPj4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQg aW50Cj4+ICtfX3BsYXRmb3JtX21hc2tfaW5kZXgoY29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVf aW5mbyAqaW5mbywKPj4gKwkJICAgICAgZW51bSBpbnRlbF9wbGF0Zm9ybSBwKQo+PiArewo+PiAr CWNvbnN0IHVuc2lnbmVkIGludCBwYml0cyA9Cj4+ICsJCUJJVFNfUEVSX1RZUEUoaW5mby0+cGxh dGZvcm1fbWFza1swXSkgLSBJTlRFTF9TVUJQTEFURk9STV9CSVRTOwo+PiArCj4+ICsJLyogRXhw YW5kIHRoZSBwbGF0Zm9ybV9tYXNrIGFycmF5IGlmIHRoaXMgZmFpbHMuICovCj4+ICsJQlVJTERf QlVHX09OKElOVEVMX01BWF9QTEFURk9STVMgPgo+PiArCQkgICAgIHBiaXRzICogQVJSQVlfU0la RShpbmZvLT5wbGF0Zm9ybV9tYXNrKSk7Cj4+ICsKPj4gKwlyZXR1cm4gcCAvIHBiaXRzOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludAo+PiArX19wbGF0 Zm9ybV9tYXNrX2JpdChjb25zdCBzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvICppbmZvLAo+PiAr CQkgICAgZW51bSBpbnRlbF9wbGF0Zm9ybSBwKQo+PiArewo+PiArCWNvbnN0IHVuc2lnbmVkIGlu dCBwYml0cyA9Cj4+ICsJCUJJVFNfUEVSX1RZUEUoaW5mby0+cGxhdGZvcm1fbWFza1swXSkgLSBJ TlRFTF9TVUJQTEFURk9STV9CSVRTOwo+PiArCj4+ICsJcmV0dXJuIHAgJSBwYml0cyArIElOVEVM X1NVQlBMQVRGT1JNX0JJVFM7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUgdTMyCj4+ICtp bnRlbF9zdWJwbGF0Zm9ybShjb25zdCBzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvICppbmZvLAo+ PiArCQkgICAgICBlbnVtIGludGVsX3BsYXRmb3JtIHApCj4+ICt7Cj4+ICsJY29uc3QgdW5zaWdu ZWQgaW50IHBpID0gX19wbGF0Zm9ybV9tYXNrX2luZGV4KGluZm8sIHApOwo+PiArCj4+ICsJcmV0 dXJuIGluZm8tPnBsYXRmb3JtX21hc2tbcGldICYgSU5URUxfU1VCUExBVEZPUk1fQklUUzsKPj4g K30KPj4gKwo+PiArc3RhdGljIF9fYWx3YXlzX2lubGluZSBib29sCj4+ICtJU19QTEFURk9STShj b25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZW51bSBpbnRlbF9wbGF0Zm9ybSBw KQo+PiArewo+PiArCWNvbnN0IHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gKmluZm8gPSBSVU5U SU1FX0lORk8oaTkxNSk7Cj4+ICsJY29uc3QgdW5zaWduZWQgaW50IHBpID0gX19wbGF0Zm9ybV9t YXNrX2luZGV4KGluZm8sIHApOwo+PiArCWNvbnN0IHVuc2lnbmVkIGludCBwYiA9IF9fcGxhdGZv cm1fbWFza19iaXQoaW5mbywgcCk7Cj4+ICsKPj4gKwlCVUlMRF9CVUdfT04oIV9fYnVpbHRpbl9j b25zdGFudF9wKHApKTsKPj4gKwo+PiArCXJldHVybiBpbmZvLT5wbGF0Zm9ybV9tYXNrW3BpXSAm IEJJVChwYik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbAo+PiAr SVNfU1VCUExBVEZPUk0oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4+ICsJ ICAgICAgIGVudW0gaW50ZWxfcGxhdGZvcm0gcCwgdW5zaWduZWQgaW50IHMpCj4+ICt7Cj4+ICsJ Y29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbyA9IFJVTlRJTUVfSU5GTyhpOTE1 KTsKPj4gKwljb25zdCB1bnNpZ25lZCBpbnQgcGkgPSBfX3BsYXRmb3JtX21hc2tfaW5kZXgoaW5m bywgcCk7Cj4+ICsJY29uc3QgdW5zaWduZWQgaW50IHBiID0gX19wbGF0Zm9ybV9tYXNrX2JpdChp bmZvLCBwKTsKPj4gKwljb25zdCB1bnNpZ25lZCBpbnQgbXNiID0gQklUU19QRVJfVFlQRShpbmZv LT5wbGF0Zm9ybV9tYXNrWzBdKSAtIDE7Cj4+ICsJY29uc3QgdTMyIG1hc2sgPSBpbmZvLT5wbGF0 Zm9ybV9tYXNrW3BpXTsKPj4gKwo+PiArCUJVSUxEX0JVR19PTighX19idWlsdGluX2NvbnN0YW50 X3AocCkpOwo+PiArCUJVSUxEX0JVR19PTighX19idWlsdGluX2NvbnN0YW50X3AocykpOwo+PiAr CUJVSUxEX0JVR19PTigocykgPj0gSU5URUxfU1VCUExBVEZPUk1fQklUUyk7Cj4+ICsKPj4gKwkv KiBTaGlmdCBhbmQgdGVzdCBvbiB0aGUgTVNCIHBvc2l0aW9uIHNvIHNpZ24gZmxhZyBjYW4gYmUg dXNlZC4gKi8KPj4gKwlyZXR1cm4gKChtYXNrIDw8IChtc2IgLSBwYikpICYgKG1hc2sgPDwgKG1z YiAtIHMpKSkgJiBCSVQobXNiKTsKPj4gK30KPj4gIAo+PiAgI2RlZmluZSBJU19NT0JJTEUoZGV2 X3ByaXYpCShJTlRFTF9JTkZPKGRldl9wcml2KS0+aXNfbW9iaWxlKQo+PiAgCj4+IEBAIC0yMzM3 LDQzICsyMzk4LDMyIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGk5MTVfc2dfc2VnbWVu dF9zaXplKHZvaWQpCj4+ICAjZGVmaW5lIElTX0VMS0hBUlRMQUtFKGRldl9wcml2KQlJU19QTEFU Rk9STShkZXZfcHJpdiwgSU5URUxfRUxLSEFSVExBS0UpCj4+ICAjZGVmaW5lIElTX0hTV19FQVJM WV9TRFYoZGV2X3ByaXYpIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBcCj4+ICAJCQkJICAgIChJ TlRFTF9ERVZJRChkZXZfcHJpdikgJiAweEZGMDApID09IDB4MEMwMCkKPj4gLSNkZWZpbmUgSVNf QkRXX1VMVChkZXZfcHJpdikJKElTX0JST0FEV0VMTChkZXZfcHJpdikgJiYgXAo+PiAtCQkJCSAo KElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4ZikgPT0gMHg2IHx8CVwKPj4gLQkJCQkgKElOVEVM X0RFVklEKGRldl9wcml2KSAmIDB4ZikgPT0gMHhiIHx8CVwKPj4gLQkJCQkgKElOVEVMX0RFVklE KGRldl9wcml2KSAmIDB4ZikgPT0gMHhlKSkKPj4gLS8qIFVMWCBtYWNoaW5lcyBhcmUgYWxzbyBj b25zaWRlcmVkIFVMVC4gKi8KPj4gLSNkZWZpbmUgSVNfQkRXX1VMWChkZXZfcHJpdikJKElTX0JS T0FEV0VMTChkZXZfcHJpdikgJiYgXAo+PiAtCQkJCSAoSU5URUxfREVWSUQoZGV2X3ByaXYpICYg MHhmKSA9PSAweGUpCj4+ICsjZGVmaW5lIElTX0JEV19VTFQoZGV2X3ByaXYpIFwKPj4gKwlJU19T VUJQTEFURk9STShkZXZfcHJpdiwgSU5URUxfQlJPQURXRUxMLCBJTlRFTF9TVUJQTEFURk9STV9V TFQpCj4+ICsjZGVmaW5lIElTX0JEV19VTFgoZGV2X3ByaXYpIFwKPj4gKwlJU19TVUJQTEFURk9S TShkZXZfcHJpdiwgSU5URUxfQlJPQURXRUxMLCBJTlRFTF9TVUJQTEFURk9STV9VTFgpCj4+ICAj ZGVmaW5lIElTX0JEV19HVDMoZGV2X3ByaXYpCShJU19CUk9BRFdFTEwoZGV2X3ByaXYpICYmIFwK Pj4gIAkJCQkgSU5URUxfSU5GTyhkZXZfcHJpdiktPmd0ID09IDMpCj4+IC0jZGVmaW5lIElTX0hT V19VTFQoZGV2X3ByaXYpCShJU19IQVNXRUxMKGRldl9wcml2KSAmJiBcCj4+IC0JCQkJIChJTlRF TF9ERVZJRChkZXZfcHJpdikgJiAweEZGMDApID09IDB4MEEwMCkKPj4gKyNkZWZpbmUgSVNfSFNX X1VMVChkZXZfcHJpdikgXAo+PiArCUlTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9IQVNX RUxMLCBJTlRFTF9TVUJQTEFURk9STV9VTFQpCj4+ICAjZGVmaW5lIElTX0hTV19HVDMoZGV2X3By aXYpCShJU19IQVNXRUxMKGRldl9wcml2KSAmJiBcCj4+ICAJCQkJIElOVEVMX0lORk8oZGV2X3By aXYpLT5ndCA9PSAzKQo+PiAgI2RlZmluZSBJU19IU1dfR1QxKGRldl9wcml2KQkoSVNfSEFTV0VM TChkZXZfcHJpdikgJiYgXAo+PiAgCQkJCSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z3QgPT0gMSkK Pj4gIC8qIFVMWCBtYWNoaW5lcyBhcmUgYWxzbyBjb25zaWRlcmVkIFVMVC4gKi8KPj4gLSNkZWZp bmUgSVNfSFNXX1VMWChkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDBBMEUg fHwgXAo+PiAtCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgwQTFFKQo+PiAtI2RlZmlu ZSBJU19TS0xfVUxUKGRldl9wcml2KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MTkwNiB8 fCBcCj4+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MTMgfHwgXAo+PiAtCQkJ CSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgxOTE2IHx8IFwKPj4gLQkJCQkgSU5URUxfREVW SUQoZGV2X3ByaXYpID09IDB4MTkyMSB8fCBcCj4+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2 KSA9PSAweDE5MjYpCj4+IC0jZGVmaW5lIElTX1NLTF9VTFgoZGV2X3ByaXYpCShJTlRFTF9ERVZJ RChkZXZfcHJpdikgPT0gMHgxOTBFIHx8IFwKPj4gLQkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYp ID09IDB4MTkxNSB8fCBcCj4+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MUUp Cj4+IC0jZGVmaW5lIElTX0tCTF9VTFQoZGV2X3ByaXYpCShJTlRFTF9ERVZJRChkZXZfcHJpdikg PT0gMHg1OTA2IHx8IFwKPj4gLQkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4NTkxMyB8 fCBcCj4+IC0JCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5MTYgfHwgXAo+PiAtCQkJ CSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHg1OTIxIHx8IFwKPj4gLQkJCQkgSU5URUxfREVW SUQoZGV2X3ByaXYpID09IDB4NTkyNikKPj4gLSNkZWZpbmUgSVNfS0JMX1VMWChkZXZfcHJpdikJ KElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5MEUgfHwgXAo+PiAtCQkJCSBJTlRFTF9ERVZJ RChkZXZfcHJpdikgPT0gMHg1OTE1IHx8IFwKPj4gLQkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYp ID09IDB4NTkxRSkKPj4gLSNkZWZpbmUgSVNfQU1MX1VMWChkZXZfcHJpdikJKElOVEVMX0RFVklE KGRldl9wcml2KSA9PSAweDU5MUMgfHwgXAo+PiAtCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikg PT0gMHg4N0MwIHx8IFwKPj4gLQkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4ODdDQSkK Pj4gKyNkZWZpbmUgSVNfSFNXX1VMWChkZXZfcHJpdikgXAo+PiArCUlTX1NVQlBMQVRGT1JNKGRl dl9wcml2LCBJTlRFTF9IQVNXRUxMLCBJTlRFTF9TVUJQTEFURk9STV9VTFgpCj4+ICsjZGVmaW5l IElTX1NLTF9VTFQoZGV2X3ByaXYpIFwKPj4gKwlJU19TVUJQTEFURk9STShkZXZfcHJpdiwgSU5U RUxfU0tZTEFLRSwgSU5URUxfU1VCUExBVEZPUk1fVUxUKQo+PiArI2RlZmluZSBJU19TS0xfVUxY KGRldl9wcml2KSBcCj4+ICsJSVNfU1VCUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX1NLWUxBS0Us IElOVEVMX1NVQlBMQVRGT1JNX1VMWCkKPj4gKyNkZWZpbmUgSVNfS0JMX1VMVChkZXZfcHJpdikg XAo+PiArCUlTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJTlRFTF9LQUJZTEFLRSwgSU5URUxfU1VC UExBVEZPUk1fVUxUKQo+PiArI2RlZmluZSBJU19LQkxfVUxYKGRldl9wcml2KSBcCj4+ICsJSVNf U1VCUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0tBQllMQUtFLCBJTlRFTF9TVUJQTEFURk9STV9V TFgpCj4+ICsjZGVmaW5lIElTX0FNTF9VTFgoZGV2X3ByaXYpIFwKPj4gKwkoSVNfU1VCUExBVEZP Uk0oZGV2X3ByaXYsIElOVEVMX0tBQllMQUtFLCBJTlRFTF9TVUJQTEFURk9STV9BTUwpIHx8IFwK Pj4gKwkgSVNfU1VCUExBVEZPUk0oZGV2X3ByaXYsIElOVEVMX0NPRkZFRUxBS0UsIElOVEVMX1NV QlBMQVRGT1JNX0FNTCkpCj4+ICAjZGVmaW5lIElTX1NLTF9HVDIoZGV2X3ByaXYpCShJU19TS1lM QUtFKGRldl9wcml2KSAmJiBcCj4+ICAJCQkJIElOVEVMX0lORk8oZGV2X3ByaXYpLT5ndCA9PSAy KQo+PiAgI2RlZmluZSBJU19TS0xfR1QzKGRldl9wcml2KQkoSVNfU0tZTEFLRShkZXZfcHJpdikg JiYgXAo+PiBAQCAtMjM4NCwxNiArMjQzNCwxNiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGlu dCBpOTE1X3NnX3NlZ21lbnRfc2l6ZSh2b2lkKQo+PiAgCQkJCSBJTlRFTF9JTkZPKGRldl9wcml2 KS0+Z3QgPT0gMikKPj4gICNkZWZpbmUgSVNfS0JMX0dUMyhkZXZfcHJpdikJKElTX0tBQllMQUtF KGRldl9wcml2KSAmJiBcCj4+ICAJCQkJIElOVEVMX0lORk8oZGV2X3ByaXYpLT5ndCA9PSAzKQo+ PiAtI2RlZmluZSBJU19DRkxfVUxUKGRldl9wcml2KQkoSVNfQ09GRkVFTEFLRShkZXZfcHJpdikg JiYgXAo+PiAtCQkJCSAoSU5URUxfREVWSUQoZGV2X3ByaXYpICYgMHgwMEYwKSA9PSAweDAwQTAp Cj4+ICsjZGVmaW5lIElTX0NGTF9VTFQoZGV2X3ByaXYpIFwKPj4gKwlJU19TVUJQTEFURk9STShk ZXZfcHJpdiwgSU5URUxfQ09GRkVFTEFLRSwgSU5URUxfU1VCUExBVEZPUk1fVUxUKQo+PiAgI2Rl ZmluZSBJU19DRkxfR1QyKGRldl9wcml2KQkoSVNfQ09GRkVFTEFLRShkZXZfcHJpdikgJiYgXAo+ PiAgCQkJCSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z3QgPT0gMikKPj4gICNkZWZpbmUgSVNfQ0ZM X0dUMyhkZXZfcHJpdikJKElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpICYmIFwKPj4gIAkJCQkgSU5U RUxfSU5GTyhkZXZfcHJpdiktPmd0ID09IDMpCj4+IC0jZGVmaW5lIElTX0NOTF9XSVRIX1BPUlRf RihkZXZfcHJpdikgICAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgJiYgXAo+PiAtCQkJCQkoSU5U RUxfREVWSUQoZGV2X3ByaXYpICYgMHgwMDA0KSA9PSAweDAwMDQpCj4+IC0jZGVmaW5lIElTX0lD TF9XSVRIX1BPUlRfRihkZXZfcHJpdikgICAoSVNfSUNFTEFLRShkZXZfcHJpdikgJiYgXAo+PiAt CQkJCQlJTlRFTF9ERVZJRChkZXZfcHJpdikgIT0gMHg4QTUxKQo+PiArI2RlZmluZSBJU19DTkxf V0lUSF9QT1JUX0YoZGV2X3ByaXYpIFwKPj4gKwlJU19TVUJQTEFURk9STShkZXZfcHJpdiwgSU5U RUxfQ0FOTk9OTEFLRSwgSU5URUxfU1VCUExBVEZPUk1fUE9SVEYpCj4+ICsjZGVmaW5lIElTX0lD TF9XSVRIX1BPUlRfRihkZXZfcHJpdikgXAo+PiArCUlTX1NVQlBMQVRGT1JNKGRldl9wcml2LCBJ TlRFTF9JQ0VMQUtFLCBJTlRFTF9TVUJQTEFURk9STV9QT1JURikKPj4gIAo+PiAgI2RlZmluZSBJ U19BTFBIQV9TVVBQT1JUKGludGVsX2luZm8pICgoaW50ZWxfaW5mbyktPmlzX2FscGhhX3N1cHBv cnQpCj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4+IGluZGV4IGE5 NTU3ZjkyNzU2Zi4uMGM5ODBiODk5MDU2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3B1X2Vycm9yLmMKPj4gQEAgLTY3Nyw2ICs2NzcsOSBAQCBzdGF0aWMgdm9pZCBfX2Vycl9wcmlu dF90b19zZ2woc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKPj4gIAllcnJfcHJp bnRmKG0sICJSZXNldCBjb3VudDogJXVcbiIsIGVycm9yLT5yZXNldF9jb3VudCk7Cj4+ICAJZXJy X3ByaW50ZihtLCAiU3VzcGVuZCBjb3VudDogJXVcbiIsIGVycm9yLT5zdXNwZW5kX2NvdW50KTsK Pj4gIAllcnJfcHJpbnRmKG0sICJQbGF0Zm9ybTogJXNcbiIsIGludGVsX3BsYXRmb3JtX25hbWUo ZXJyb3ItPmRldmljZV9pbmZvLnBsYXRmb3JtKSk7Cj4+ICsJZXJyX3ByaW50ZihtLCAiU3VicGxh dGZvcm06IDB4JXhcbiIsCj4+ICsJCSAgIGludGVsX3N1YnBsYXRmb3JtKCZlcnJvci0+cnVudGlt ZV9pbmZvLAo+PiArCQkJCSAgICAgZXJyb3ItPmRldmljZV9pbmZvLnBsYXRmb3JtKSk7Cj4+ICAJ ZXJyX3ByaW50X3BjaWlkKG0sIG0tPmk5MTUpOwo+PiAgCj4+ICAJZXJyX3ByaW50ZihtLCAiSU9N TVUgZW5hYmxlZD86ICVkXG4iLCBlcnJvci0+aW9tbXUpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNp LmMKPj4gaW5kZXggNzE2ZjJmOTVjNTdkLi4zOTI1MTU4NjM0OWEgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wY2kuYwo+PiBAQCAtMzIsNyArMzIsNyBAQAo+PiAgI2luY2x1ZGUgImk5MTVfZ2xv YmFscy5oIgo+PiAgI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKPj4gIAo+PiAtI2RlZmluZSBQ TEFURk9STSh4KSAucGxhdGZvcm0gPSAoeCksIC5wbGF0Zm9ybV9tYXNrID0gQklUKHgpCj4+ICsj ZGVmaW5lIFBMQVRGT1JNKHgpIC5wbGF0Zm9ybSA9ICh4KQo+PiAgI2RlZmluZSBHRU4oeCkgLmdl biA9ICh4KSwgLmdlbl9tYXNrID0gQklUKCh4KSAtIDEpCj4+ICAKPj4gICNkZWZpbmUgSTg0NV9Q SVBFX09GRlNFVFMgXAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMK Pj4gaW5kZXggZTBhYzkwOGJiNGU5Li44NWRhODdlMTRjMDIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+PiBAQCAtNzE0LDYgKzcxNCwxNTEgQEAgc3Rh dGljIHUzMiByZWFkX3RpbWVzdGFtcF9mcmVxdWVuY3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+PiAgCXJldHVybiAwOwo+PiAgfQo+PiAgCj4+ICsjdW5kZWYgSU5URUxfVkdB X0RFVklDRQo+PiArI2RlZmluZSBJTlRFTF9WR0FfREVWSUNFKGlkLCBpbmZvKSAoaWQpCj4+ICsK Pj4gK3N0YXRpYyBjb25zdCB1MTYgaHN3X3VsdF9pZHNbXSA9IHsKPj4gKwlJTlRFTF9IU1dfVUxU X0dUMV9JRFMoMCksCj4+ICsJSU5URUxfSFNXX1VMVF9HVDJfSURTKDApLAo+PiArCUlOVEVMX0hT V19VTFRfR1QzX0lEUygwKQo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHUxNiBoc3dfdWx4 X2lkc1tdID0gewo+PiArCUlOVEVMX0hTV19VTFhfR1QxX0lEUygwKSwKPj4gKwlJTlRFTF9IU1df VUxYX0dUMl9JRFMoMCkKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCB1MTYgYmR3X3VsdF9p ZHNbXSA9IHsKPj4gKwlJTlRFTF9CRFdfVUxUX0dUMV9JRFMoMCksCj4+ICsJSU5URUxfQkRXX1VM VF9HVDJfSURTKDApLAo+PiArCUlOVEVMX0JEV19VTFRfR1QzX0lEUygwKSwKPj4gKwlJTlRFTF9C RFdfVUxUX1JTVkRfSURTKDApCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3QgdTE2IGJkd191 bHhfaWRzW10gPSB7Cj4+ICsJSU5URUxfQkRXX1VMWF9HVDFfSURTKDApLAo+PiArCUlOVEVMX0JE V19VTFhfR1QyX0lEUygwKSwKPj4gKwlJTlRFTF9CRFdfVUxYX0dUM19JRFMoMCksCj4+ICsJSU5U RUxfQkRXX1VMWF9SU1ZEX0lEUygwKQo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHUxNiBz a2xfdWx0X2lkc1tdID0gewo+PiArCUlOVEVMX1NLTF9VTFRfR1QxX0lEUygwKSwKPj4gKwlJTlRF TF9TS0xfVUxUX0dUMl9JRFMoMCksCj4+ICsJSU5URUxfU0tMX1VMVF9HVDNfSURTKDApCj4+ICt9 Owo+PiArCj4+ICtzdGF0aWMgY29uc3QgdTE2IHNrbF91bHhfaWRzW10gPSB7Cj4+ICsJSU5URUxf U0tMX1VMWF9HVDFfSURTKDApLAo+PiArCUlOVEVMX1NLTF9VTFhfR1QyX0lEUygwKQo+PiArfTsK Pj4gKwo+PiArc3RhdGljIGNvbnN0IHUxNiBrYmxfdWx0X2lkc1tdID0gewo+PiArCUlOVEVMX0tC TF9VTFRfR1QxX0lEUygwKSwKPj4gKwlJTlRFTF9LQkxfVUxUX0dUMl9JRFMoMCksCj4+ICsJSU5U RUxfS0JMX1VMVF9HVDNfSURTKDApCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3QgdTE2IGti bF91bHhfaWRzW10gPSB7Cj4+ICsJSU5URUxfS0JMX1VMWF9HVDFfSURTKDApLAo+PiArCUlOVEVM X0tCTF9VTFhfR1QyX0lEUygwKQo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHUxNiBrYmxf YW1sX2lkc1tdID0gewo+PiArCUlOVEVMX0FNTF9LQkxfR1QyX0lEUygwKQo+PiArfTsKPj4gKwo+ PiArc3RhdGljIGNvbnN0IHUxNiBjZmxfdWx0X2lkc1tdID0gewo+PiArCUlOVEVMX0NGTF9VX0dU Ml9JRFMoMCksCj4+ICsJSU5URUxfQ0ZMX1VfR1QzX0lEUygwKSwKPj4gKwlJTlRFTF9XSExfVV9H VDFfSURTKDApLAo+PiArCUlOVEVMX1dITF9VX0dUMl9JRFMoMCksCj4+ICsJSU5URUxfV0hMX1Vf R1QzX0lEUygwKQo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHUxNiBjZmxfYW1sX2lkc1td ID0gewo+PiArCUlOVEVMX0FNTF9DRkxfR1QyX0lEUygwKQo+PiArfTsKPj4gKwo+PiArc3RhdGlj IGNvbnN0IHUxNiBjbmxfcG9ydGZfaWRzW10gPSB7Cj4+ICsJSU5URUxfQ05MX1BPUlRfRl9JRFMo MCkKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCB1MTYgaWNsX3BvcnRmX2lkc1tdID0gewo+ PiArCUlOVEVMX0lDTF9QT1JUX0ZfSURTKDApCj4+ICt9Owo+Cj4gV2hhdCdzIHRoZSBiZW5lZml0 IG9mIGhhdmluZyBwbGF0Zm9ybSBzcGxpdCBpbiB0aGUgYXJyYXlzIGFuZCBhbiBpZgo+IGxhZGRl ciBpbiB0aGUgZnVuY3Rpb24gYmVsb3c/Cj4KPiBJIHRoaW5rIEknZCBnbyB3aXRoIGp1c3QgdGhl IGZlYXR1cmUgYXJyYXlzLgoKTm90IHRvIGJsb2NrIHRoaXMgc2VyaWVzLCBidXQgbG9va2luZyBm dXJ0aGVyIG91dHNpZGUgdGhlIGJveC4uLgoKSSd2ZSBzdGlsbCBnb3QgdGhlIGNvbnN0YW50IHZz LiBydW50aW1lIGRldmljZSBpbmZvIHNwbGl0CnVuZmluaXNoZWQuIFdlJ3ZlIGdvdCBzbyBtYW55 IHRoaW5ncyB0aGF0IGFyZSBtb3N0bHkgY29uc3RhbnQsIGJ1dApvY2Nhc2lvbmFsbHkgbmVlZCBj aGFuZ2VzLiBBbmQgd2UndmUgZ290IHNvIG1hbnkgdGhpbmdzIHRoYXQgY291bGQgYmUKZGV2aWNl IGluZm8gZmxhZ3MsIGJ1dCB3b3VsZCBsZWFkIHRvIHByb2xpZmVyYXRpb24gb2YgcGxlbnR5IG9m IGFsbW9zdAppZGVudGljYWwgZGV2aWNlIGluZm8gc3RydWN0dXJlcy4gTGlrZSB0aGlzIFVMWC9V TFQgYW5kIEdUIG51bWJlci4KClNvIEkgZ3Vlc3MgSSdtIHdvbmRlcmluZyBpZiB3ZSdyZSBkb2lu ZyB0aGUgcmlnaHQgdGhpbmcgYnkgYXNzaWduaW5nCmRldmljZSBpbmZvIHBvaW50ZXJzIHRvIHRo ZSBzdHJ1Y3QgcGNpX2RldmljZV9pZCBkcml2ZXJfZGF0YSBtZW1iZXIgaW4KcGNpaWRsaXN0W10g dGFibGUuCgpGb3Igb25lIHRoaW5nLCB0aGF0J3MgYSB3aG9sZSBsb3Qgb2YgYml0cyB0aGF0IGNv dWxkIGJlIHVzZWQgZGlyZWN0bHkKZm9yIGFzc2lnbmluZyBwbGF0Zm9ybSBhbmQgc3VicGxhdGZv cm0sIG9yIGZlYXR1cmVzLgoKT2YgY291cnNlLCB3ZSdkIHRoZW4gbmVlZCBhbm90aGVyIHRhYmxl IGJlc2lkZXMgcGNpaWRsaXN0W10gdG8gbWFwIHRvCnRoZSBkZXZpY2UgaW5mbywgYnV0IHdlJ3Jl IHNvcnQgb2YgZG9pbmcgc29tZSBvZiB0aGF0IHdpdGggdGhlIFVMWC9VTFQKcGFydHMuCgpJIGp1 c3Qgb3ZlcmFsbCBmZWVsIHRoYXQgdGhlcmUgbXVzdCBiZSBhIGJldHRlciB3YXkgdG8gZG8gYWxs IHRoaXMsIGFuZAp3ZSBqdXN0IGhhdmVuJ3QgZmlndXJlZCBpdCBvdXQgeWV0LCBhbmQgd2UncmUg cGFydGlhbGx5IHB1dHRpbmcKb3Vyc2VsdmVzIGludG8gYSBib3ggd2UgY2FuJ3QgYnJlYWsgb3V0 IG9mLgoKVGhvdWdodHM/CgpCUiwKSmFuaS4KCgoKPgo+IEJSLAo+IEphbmkuCj4KPj4gKwo+PiAr c3RhdGljIGJvb2wgZmluZF9kZXZpZCh1MTYgaWQsIGNvbnN0IHUxNiAqcCwgdW5zaWduZWQgaW50 IG51bSkKPj4gK3sKPj4gKwlmb3IgKDsgbnVtOyBudW0tLSwgcCsrKSB7Cj4+ICsJCWlmICgqcCA9 PSBpZCkKPj4gKwkJCXJldHVybiB0cnVlOwo+PiArCX0KPj4gKwo+PiArCXJldHVybiBmYWxzZTsK Pj4gK30KPj4gKwo+PiArdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19zdWJwbGF0Zm9ybV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiArewo+PiArCWNvbnN0IHN0cnVjdCBpbnRl bF9kZXZpY2VfaW5mbyAqaW5mbyA9IElOVEVMX0lORk8oaTkxNSk7Cj4+ICsJY29uc3Qgc3RydWN0 IGludGVsX3J1bnRpbWVfaW5mbyAqcmluZm8gPSBSVU5USU1FX0lORk8oaTkxNSk7Cj4+ICsJY29u c3QgdW5zaWduZWQgaW50IHBpID0gX19wbGF0Zm9ybV9tYXNrX2luZGV4KHJpbmZvLCBpbmZvLT5w bGF0Zm9ybSk7Cj4+ICsJY29uc3QgdW5zaWduZWQgaW50IHBiID0gX19wbGF0Zm9ybV9tYXNrX2Jp dChyaW5mbywgaW5mby0+cGxhdGZvcm0pOwo+PiArCXUxNiBkZXZpZCA9IElOVEVMX0RFVklEKGk5 MTUpOwo+PiArCXUzMiBtYXNrID0gMDsKPj4gKwo+PiArCVJVTlRJTUVfSU5GTyhpOTE1KS0+cGxh dGZvcm1fbWFza1twaV0gPSBCSVQocGIpOwo+PiArCj4+ICsJaWYgKElTX0hBU1dFTEwoaTkxNSkp IHsKPj4gKwkJaWYgKGZpbmRfZGV2aWQoZGV2aWQsIGhzd191bHRfaWRzLCBBUlJBWV9TSVpFKGhz d191bHRfaWRzKSkpCj4+ICsJCQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMVCk7Cj4+ ICsJCWVsc2UgaWYgKGZpbmRfZGV2aWQoZGV2aWQsIGhzd191bHhfaWRzLAo+PiArCQkJCSAgICBB UlJBWV9TSVpFKGhzd191bHhfaWRzKSkpCj4+ICsJCQkvKiBVTFggbWFjaGluZXMgYXJlIGFsc28g Y29uc2lkZXJlZCBVTFQuICovCj4+ICsJCQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VM VCkgfAo+PiArCQkJICAgICAgIEJJVChJTlRFTF9TVUJQTEFURk9STV9VTFgpOwo+PiArCX0gZWxz ZSBpZiAoSVNfQlJPQURXRUxMKGk5MTUpKSB7Cj4+ICsJCWlmIChmaW5kX2RldmlkKGRldmlkLCBi ZHdfdWx0X2lkcywgQVJSQVlfU0laRShiZHdfdWx0X2lkcykpKQo+PiArCQkJbWFzayA9IEJJVChJ TlRFTF9TVUJQTEFURk9STV9VTFQpOwo+PiArCQllbHNlIGlmIChmaW5kX2RldmlkKGRldmlkLCBi ZHdfdWx4X2lkcywKPj4gKwkJCQkgICAgQVJSQVlfU0laRShiZHdfdWx4X2lkcykpKQo+PiArCQkJ LyogVUxYIG1hY2hpbmVzIGFyZSBhbHNvIGNvbnNpZGVyZWQgVUxULiAqLwo+PiArCQkJbWFzayA9 IEJJVChJTlRFTF9TVUJQTEFURk9STV9VTFQpIHwKPj4gKwkJCSAgICAgICBCSVQoSU5URUxfU1VC UExBVEZPUk1fVUxYKTsKPj4gKwl9IGVsc2UgaWYgKElTX1NLWUxBS0UoaTkxNSkpIHsKPj4gKwkJ aWYgKGZpbmRfZGV2aWQoZGV2aWQsIHNrbF91bHRfaWRzLCBBUlJBWV9TSVpFKHNrbF91bHRfaWRz KSkpCj4+ICsJCQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMVCk7Cj4+ICsJCWVsc2Ug aWYgKGZpbmRfZGV2aWQoZGV2aWQsIHNrbF91bHhfaWRzLAo+PiArCQkJCSAgICBBUlJBWV9TSVpF KHNrbF91bHhfaWRzKSkpCj4+ICsJCQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMWCk7 Cj4+ICsJfSBlbHNlIGlmIChJU19LQUJZTEFLRShpOTE1KSkgewo+PiArCQlpZiAoZmluZF9kZXZp ZChkZXZpZCwga2JsX3VsdF9pZHMsIEFSUkFZX1NJWkUoa2JsX3VsdF9pZHMpKSkKPj4gKwkJCW1h c2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fVUxUKTsKPj4gKwkJZWxzZSBpZiAoZmluZF9kZXZp ZChkZXZpZCwga2JsX3VseF9pZHMsCj4+ICsJCQkJICAgIEFSUkFZX1NJWkUoa2JsX3VseF9pZHMp KSkKPj4gKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fVUxYKTsKPj4gKwkJZWxzZSBp ZiAoZmluZF9kZXZpZChkZXZpZCwga2JsX2FtbF9pZHMsCj4+ICsJCQkJICAgIEFSUkFZX1NJWkUo a2JsX2FtbF9pZHMpKSkKPj4gKwkJCW1hc2sgPSBCSVQoSU5URUxfU1VCUExBVEZPUk1fQU1MKTsK Pj4gKwl9IGVsc2UgaWYgKElTX0NPRkZFRUxBS0UoaTkxNSkpIHsKPj4gKwkJaWYgKGZpbmRfZGV2 aWQoZGV2aWQsIGNmbF91bHRfaWRzLCBBUlJBWV9TSVpFKGNmbF91bHRfaWRzKSkpCj4+ICsJCQlt YXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX1VMVCk7Cj4+ICsJCWVsc2UgaWYgKGZpbmRfZGV2 aWQoZGV2aWQsIGNmbF9hbWxfaWRzLAo+PiArCQkJCSAgICBBUlJBWV9TSVpFKGNmbF9hbWxfaWRz KSkpCj4+ICsJCQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JNX0FNTCk7Cj4+ICsJfSBlbHNl IGlmIChJU19DQU5OT05MQUtFKGk5MTUpKSB7Cj4+ICsJCWlmIChmaW5kX2RldmlkKGRldmlkLCBj bmxfcG9ydGZfaWRzLCBBUlJBWV9TSVpFKGNubF9wb3J0Zl9pZHMpKSkKPj4gKwkJCW1hc2sgPSBC SVQoSU5URUxfU1VCUExBVEZPUk1fUE9SVEYpOwo+PiArCX0gZWxzZSBpZiAoSVNfSUNFTEFLRShp OTE1KSkgewo+PiArCQlpZiAoZmluZF9kZXZpZChkZXZpZCwgaWNsX3BvcnRmX2lkcywgQVJSQVlf U0laRShpY2xfcG9ydGZfaWRzKSkpCj4+ICsJCQltYXNrID0gQklUKElOVEVMX1NVQlBMQVRGT1JN X1BPUlRGKTsKPj4gKwl9Cj4+ICsKPj4gKwlHRU1fQlVHX09OKG1hc2sgJiB+SU5URUxfU1VCUExB VEZPUk1fQklUUyk7Cj4+ICsKPj4gKwlSVU5USU1FX0lORk8oaTkxNSktPnBsYXRmb3JtX21hc2tb cGldIHw9IG1hc2s7Cj4+ICt9Cj4+ICsKPj4gIC8qKgo+PiAgICogaW50ZWxfZGV2aWNlX2luZm9f cnVudGltZV9pbml0IC0gaW5pdGlhbGl6ZSBydW50aW1lIGluZm8KPj4gICAqIEBkZXZfcHJpdjog dGhlIGk5MTUgZGV2aWNlCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8u aAo+PiBpbmRleCA5OGFjZWZhYWNlYzkuLmRhMTE1MmVlZjQ2YiAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4+IEBAIC03Nyw2ICs3NywyMSBAQCBlbnVt IGludGVsX3BsYXRmb3JtIHsKPj4gIAlJTlRFTF9NQVhfUExBVEZPUk1TCj4+ICB9Owo+PiAgCj4+ ICsvKgo+PiArICogU3VicGxhdGZvcm0gYml0cyBzaGFyZSB0aGUgc2FtZSBuYW1lc3BhY2UgcGVy IHBhcmVudCBwbGF0Zm9ybS4gSW4gb3RoZXIgd29yZHMKPj4gKyAqIGl0IGlzIGZpbmUgZm9yIHRo ZSBzYW1lIGJpdCB0byBiZSB1c2VkIG9uIG11bHRpcGxlIHBhcmVudCBwbGF0Zm9ybXMuCj4+ICsg Ki8KPj4gKwo+PiArI2RlZmluZSBJTlRFTF9TVUJQTEFURk9STV9CSVRTICgzKQo+PiArCj4+ICsv KiBIU1cvQkRXL1NLTC9LQkwvQ0ZMICovCj4+ICsjZGVmaW5lIElOVEVMX1NVQlBMQVRGT1JNX1VM VAkoMCkKPj4gKyNkZWZpbmUgSU5URUxfU1VCUExBVEZPUk1fVUxYCSgxKQo+PiArI2RlZmluZSBJ TlRFTF9TVUJQTEFURk9STV9BTUwJKDIpCj4+ICsKPj4gKy8qIENOTC9JQ0wgKi8KPj4gKyNkZWZp bmUgSU5URUxfU1VCUExBVEZPUk1fUE9SVEYJKDApCj4+ICsKPj4gIGVudW0gaW50ZWxfcHBndHRf dHlwZSB7Cj4+ICAJSU5URUxfUFBHVFRfTk9ORSA9IEk5MTVfR0VNX1BQR1RUX05PTkUsCj4+ICAJ SU5URUxfUFBHVFRfQUxJQVNJTkcgPSBJOTE1X0dFTV9QUEdUVF9BTElBU0lORywKPj4gQEAgLTE2 MCw3ICsxNzUsNiBAQCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gewo+PiAgCWludGVsX2VuZ2lu ZV9tYXNrX3QgZW5naW5lX21hc2s7IC8qIEVuZ2luZXMgc3VwcG9ydGVkIGJ5IHRoZSBIVyAqLwo+ PiAgCj4+ICAJZW51bSBpbnRlbF9wbGF0Zm9ybSBwbGF0Zm9ybTsKPj4gLQl1MzIgcGxhdGZvcm1f bWFzazsKPj4gIAo+PiAgCWVudW0gaW50ZWxfcHBndHRfdHlwZSBwcGd0dF90eXBlOwo+PiAgCXVu c2lnbmVkIGludCBwcGd0dF9zaXplOyAvKiBsb2cyLCBlLmcuIDMxLzMyLzQ4IGJpdHMgKi8KPj4g QEAgLTE5Nyw2ICsyMTEsMTYgQEAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsKPj4gIH07Cj4+ ICAKPj4gIHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gewo+PiArCS8qCj4+ICsJICogUGxhdGZv cm0gbWFzayBpcyB1c2VkIGZvciBvcHRpbWl6aW5nIG9yLWVkIElTX1BMQVRGT1JNIGNhbGxzIGlu dG8KPj4gKwkgKiBpbnRvIHNpbmdsZSBydW50aW1lIGNvbmRpdGlvbmFscywgYW5kIGFsc28gdG8g cHJvdmlkZSBncm91bmR3b3JrCj4+ICsJICogZm9yIGZ1dHVyZSBwZXIgcGxhdGZvcm0sIG9yIHBl ciBTS1UgYnVpbGQgb3B0aW1pemF0aW9ucy4KPj4gKwkgKgo+PiArCSAqIEFycmF5IGNhbiBiZSBl eHRlbmRlZCB3aGVuIG5lY2Vzc2FyeSBpZiB0aGUgY29ycmVzcG9uZGluZwo+PiArCSAqIEJVSUxE X0JVR19PTiBpcyBoaXQuCj4+ICsJICovCj4+ICsJdTMyIHBsYXRmb3JtX21hc2tbMl07Cj4+ICsK Pj4gIAl1MTYgZGV2aWNlX2lkOwo+PiAgCj4+ICAJdTggbnVtX3Nwcml0ZXNbSTkxNV9NQVhfUElQ RVNdOwo+PiBAQCAtMjcxLDYgKzI5NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzc2V1X3NldF9l dXMoc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsCj4+ICAKPj4gIGNvbnN0IGNoYXIgKmludGVs X3BsYXRmb3JtX25hbWUoZW51bSBpbnRlbF9wbGF0Zm9ybSBwbGF0Zm9ybSk7Cj4+ICAKPj4gK3Zv aWQgaW50ZWxfZGV2aWNlX2luZm9fc3VicGxhdGZvcm1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwo+PiAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gIHZvaWQgaW50ZWxfZGV2aWNl X2luZm9fZHVtcF9mbGFncyhjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCj4+ ICAJCQkJICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOwoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBP cGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4