From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v10 06/40] drm/i915: MEI interface definition Date: Thu, 31 Jan 2019 09:17:48 +0100 Message-ID: <20190131081748.GV3271@phenom.ffwll.local> References: <1548917996-28081-1-git-send-email-ramalingam.c@intel.com> <1548917996-28081-7-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1548917996-28081-7-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ramalingam C Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, uma.shankar@intel.com, tomas.winkler@intel.com, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKYW4gMzEsIDIwMTkgYXQgMTI6Mjk6MjJQTSArMDUzMCwgUmFtYWxpbmdhbSBDIHdy b3RlOgo+IERlZmluaW5nIHRoZSBtZWktaTkxNSBpbnRlcmZhY2UgZnVuY3Rpb25zIGFuZCBpbml0 aWFsaXphdGlvbiBvZgo+IHRoZSBpbnRlcmZhY2UuCj4gCj4gdjI6Cj4gICBBZGp1c3QgdG8gdGhl IG5ldyBpbnRlcmZhY2UgY2hhbmdlcy4gW1RvbWFzXQo+ICAgQWRkZWQgZnVydGhlciBkZWJ1ZyBs b2dzIGZvciB0aGUgZmFpbHVyZXMgYXQgTUVJIGkvZi4KPiAgIHBvcnQgaW4gaGRjcF9wb3J0IGRh dGEgaXMgZXF1aXBwZWQgdG8gaGFuZGxlIC12ZSB2YWx1ZXMuCj4gdjM6Cj4gICBtZWkgY29tcCBp cyBtYXRjaGVkIGZvciBnbG9iYWwgaTkxNSBjb21wIG1hc3Rlci4gW0RhbmllbF0KPiAgIEluIGhk Y3Bfc2hpbSBoZGNwX3Byb3RvY29sKCkgaXMgcmVwbGFjZWQgd2l0aCBjb25zdCB2YXJpYWJsZS4g W0RhbmllbF0KPiAgIG1laSB3cmFwcGVycyBhcmUgYWRqdXN0ZWQgYXMgcGVyIHRoZSBpL2YgY2hh bmdlIFtEYW5pZWxdCj4gdjQ6Cj4gICBwb3J0IGluaXRpYWxpemF0aW9uIGlzIGRvbmUgb25seSBh dCBoZGNwMl9pbml0IG9ubHkgW0RhbnZldF0KPiB2NToKPiAgIEk5MTUgcmVnaXN0ZXJzIGEgc3Vi Y29tcG9uZW50IHRvIGJlIG1hdGNoZWQgd2l0aCBtZWlfaGRjcCBbRGFuaWVsXQo+IAo+IFNpZ25l ZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KPiBSZXZpZXdl ZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCldoZW4geW91IG1h a2Ugc3Vic3RhbnRpYWwgY2hhbmdlcyB0byBhIHBhdGNoIChsaWtlIGhlcmUpIGFuZCBkZWNpZGUg dG8Ka2VlcCB0aGUgci1iLCB0aGVuIHBsZWFzZSBpbmRpY2F0ZSB0aGF0IGl0IHdhcyBmb3IgYW4g ZWFybGllciB2ZXJzaW9uLiBJCm1vc3QgZGVmaW5pdGVseSBkaWRuJ3QgcmV2aWV3IHRoaXMgb25l IHRoYXQgcmUtYWRkcyBhbGwgdGhlIGxvY2tpbmcgOi0pCgpXaGF0J3MgbWlzc2luZyBoZXJlIGlz IHRoZSBjb21wb25lbnRfZGVsLiBOb3QgZXhhY3RseSBzdXJlIHdoeSB0aGlzCmRvZXNuJ3QgYmxv dyB1cC4gTHVja2lseSB3ZSBkb24ndCBuZWVkIGEgY29tcG9uZW50X2RlbF90eXBlZCBiZWNhdXNl CmNvbXBvbmVudF9kZWwgYWxyZWFkeSB0YWtlcyB0aGUgKGRldiwgb3BzKSBwYWlyLCBhbmQgdGhh dCdzIHVuaXF1ZS4KLURhbmllbAoKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICB8ICAg NyArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICB8ICAgNSArCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyB8IDM3OCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQo+ICBpbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oICAgICAgfCAg IDMgKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDM5MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggYTdhYWExYWM0Yzk5Li43NWFmZjkw N2JhNjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtOTA0LDYgKzkwNCw3IEBA IHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ICAJbXV0 ZXhfaW5pdCgmZGV2X3ByaXYtPndtLndtX211dGV4KTsKPiAgCW11dGV4X2luaXQoJmRldl9wcml2 LT5wcHNfbXV0ZXgpOwo+ICsJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7 Cj4gIAo+ICAJaTkxNV9tZW1jcHlfaW5pdF9lYXJseShkZXZfcHJpdik7Cj4gIAlpbnRlbF9ydW50 aW1lX3BtX2luaXRfZWFybHkoZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGlu ZGV4IDIyZGE5ZGYxZjBhNy4uZDlhMDc3MWFmNGQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gQEAgLTU1LDYgKzU1LDcgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fdXRpbC5oPgo+ICAj aW5jbHVkZSA8ZHJtL2RybV9kc2MuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fY29ubmVjdG9yLmg+ Cj4gKyNpbmNsdWRlIDxkcm0vaTkxNV9tZWlfaGRjcF9pbnRlcmZhY2UuaD4KPiAgCj4gICNpbmNs dWRlICJpOTE1X2ZpeGVkLmgiCj4gICNpbmNsdWRlICJpOTE1X3BhcmFtcy5oIgo+IEBAIC0yMDQz LDYgKzIwNDQsMTIgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAKPiAgCXN0cnVjdCBp OTE1X3BtdSBwbXU7Cj4gIAo+ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqaGRjcF9t YXN0ZXI7Cj4gKwlib29sIGhkY3BfY29tcF9hZGRlZDsKPiArCj4gKwkvKiBNdXRleCB0byBwcm90 ZWN0IHRoZSBhYm92ZSBoZGNwIGNvbXBvbmVudCByZWxhdGVkIHZhbHVlcy4gKi8KPiArCXN0cnVj dCBtdXRleCBoZGNwX2NvbXBfbXV0ZXg7Cj4gKwo+ICAJLyoKPiAgCSAqIE5PVEU6IFRoaXMgaXMg dGhlIGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCj4g IAkgKiB3aWxsIGJlIHJlamVjdGVkLiBJbnN0ZWFkIGxvb2sgZm9yIGEgYmV0dGVyIHBsYWNlLgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMGFjODcwZmViNWU5Li42M2UwMDkyODZk NWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC00MSw2ICs0MSw3IEBACj4g ICNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+ Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgo+ICsjaW5jbHVkZSA8ZHJtL2k5MTVfbWVp X2hkY3BfaW50ZXJmYWNlLmg+Cj4gICNpbmNsdWRlIDxtZWRpYS9jZWMtbm90aWZpZXIuaD4KPiAg Cj4gIHN0cnVjdCBkcm1fcHJpbnRlcjsKPiBAQCAtMzg1LDYgKzM4Niw5IEBAIHN0cnVjdCBpbnRl bF9oZGNwX3NoaW0gewo+ICAJLyogRGV0ZWN0cyBwYW5lbCdzIGhkY3AgY2FwYWJpbGl0eS4gVGhp cyBpcyBvcHRpb25hbCBmb3IgSERNSS4gKi8KPiAgCWludCAoKmhkY3BfY2FwYWJsZSkoc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAkJCSAgICBib29sICpoZGNw X2NhcGFibGUpOwo+ICsKPiArCS8qIEhEQ1AgYWRhcHRhdGlvbihEUC9IRE1JKSByZXF1aXJlZCBv biB0aGUgcG9ydCAqLwo+ICsJZW51bSBoZGNwX3dpcmVkX3Byb3RvY29sIHByb3RvY29sOwo+ICB9 Owo+ICAKPiAgc3RydWN0IGludGVsX2hkY3Agewo+IEBAIC00MDUsNiArNDA5LDcgQEAgc3RydWN0 IGludGVsX2hkY3Agewo+ICAJICogY29udGVudCBjYW4gZmxvdyBvbmx5IHRocm91Z2ggYSBsaW5r IHByb3RlY3RlZCBieSBIRENQMi4yLgo+ICAJICovCj4gIAl1OCBjb250ZW50X3R5cGU7Cj4gKwlz dHJ1Y3QgaGRjcF9wb3J0X2RhdGEgcG9ydF9kYXRhOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVs X2Nvbm5lY3RvciB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk Y3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+IGluZGV4IDFhODVkYzQ2 NjkyZC4uZTBiYjVmMzJiYTkwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkY3AuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+IEBA IC03LDggKzcsMTAgQEAKPiAgICovCj4gIAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9oZGNwLmg+Cj4g KyNpbmNsdWRlIDxkcm0vaTkxNV9jb21wb25lbnQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2kyYy5o Pgo+ICAjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9jb21wb25l bnQuaD4KPiAgCj4gICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiAgI2luY2x1ZGUgImk5MTVfcmVn LmgiCj4gQEAgLTgzMiw2ICs4MzQsMzQ4IEBAIGJvb2wgaXNfaGRjcF9zdXBwb3J0ZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiAgCXJldHVybiBJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkgJiYgcG9ydCA8IFBPUlRfRTsKPiAgfQo+ICAKPiArc3Rh dGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+ICtoZGNwMl9wcmVwYXJlX2FrZV9pbml0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICAgICAgc3RydWN0IGhk Y3AyX2FrZV9pbml0ICpha2VfZGF0YSkKPiArewo+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpk YXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0 IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwljb21wID0gZGV2X3ByaXYtPmhk Y3BfbWFzdGVyOwo+ICsKPiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4gKwkJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCQlyZXR1cm4gLUVJTlZBTDsK PiArCX0KPiArCj4gKwlyZXQgPSBjb21wLT5vcHMtPmluaXRpYXRlX2hkY3AyX3Nlc3Npb24oY29t cC0+bWVpX2RldiwgZGF0YSwgYWtlX2RhdGEpOwo+ICsJaWYgKHJldCkKPiArCQlEUk1fREVCVUdf S01TKCJQcmVwYXJlX2FrZV9pbml0IGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4gKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30K PiArCj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPiAraGRjcDJfdmVyaWZ5 X3J4X2NlcnRfcHJlcGFyZV9rbShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4g KwkJCQlzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfY2VydCAqcnhfY2VydCwKPiArCQkJCWJvb2wgKnBh aXJlZCwKPiArCQkJCXN0cnVjdCBoZGNwMl9ha2Vfbm9fc3RvcmVkX2ttICpla19wdWJfa20sCj4g KwkJCQlzaXplX3QgKm1zZ19zeikKPiArewo+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRh ID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGk5 MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwljb21wID0gZGV2X3ByaXYtPmhkY3Bf bWFzdGVyOwo+ICsKPiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4gKwkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAr CX0KPiArCj4gKwlyZXQgPSBjb21wLT5vcHMtPnZlcmlmeV9yZWNlaXZlcl9jZXJ0X3ByZXBhcmVf a20oY29tcC0+bWVpX2RldiwgZGF0YSwKPiArCQkJCQkJCSByeF9jZXJ0LCBwYWlyZWQsCj4gKwkJ CQkJCQkgZWtfcHViX2ttLCBtc2dfc3opOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJRFJNX0RFQlVH X0tNUygiVmVyaWZ5IHJ4X2NlcnQgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPiArCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ ICsKPiArc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+ICtoZGNwMl92ZXJpZnlf aHByaW1lKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICAgc3RydWN0 IGhkY3AyX2FrZV9zZW5kX2hwcmltZSAqcnhfaHByaW1lKQo+ICt7Cj4gKwlzdHJ1Y3QgaGRjcF9w b3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7 Cj4gKwlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICpjb21wOwo+ICsJaW50IHJldDsKPiAr Cj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCWNvbXAgPSBk ZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4gKwo+ICsJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsK PiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsJCXJldHVy biAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCXJldCA9IGNvbXAtPm9wcy0+dmVyaWZ5X2hwcmltZShj b21wLT5tZWlfZGV2LCBkYXRhLCByeF9ocHJpbWUpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJRFJN X0RFQlVHX0tNUygiVmVyaWZ5IGhwcmltZSBmYWlsZWQuICVkXG4iLCByZXQpOwo+ICsJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ ICt9Cj4gKwo+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50Cj4gK2hkY3AyX3N0 b3JlX3BhaXJpbmdfaW5mbyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJ CSBzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfcGFpcmluZ19pbmZvICpwYWlyaW5nX2luZm8pCj4gK3sK PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9k YXRhOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25u ZWN0b3ItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7 Cj4gKwlpbnQgcmV0Owo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0 ZXgpOwo+ICsJY29tcCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsKPiArCj4gKwlpZiAoIWNvbXAg fHwgIWNvbXAtPm9wcykgewo+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9t dXRleCk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gY29tcC0+b3Bz LT5zdG9yZV9wYWlyaW5nX2luZm8oY29tcC0+bWVpX2RldiwgZGF0YSwgcGFpcmluZ19pbmZvKTsK PiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIlN0b3JlIHBhaXJpbmcgaW5mbyBm YWlsZWQuICVkXG4iLCByZXQpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21w X211dGV4KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgX19hdHRyaWJ1 dGVfXygodW51c2VkKSkgaW50Cj4gK2hkY3AyX3ByZXBhcmVfbGNfaW5pdChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJICAgICAgc3RydWN0IGhkY3AyX2xjX2luaXQgKmxj X2luaXQpCj4gK3sKPiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3It PmhkY3AucG9ydF9kYXRhOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9t YXN0ZXIgKmNvbXA7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5o ZGNwX2NvbXBfbXV0ZXgpOwo+ICsJY29tcCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsKPiArCj4g KwlpZiAoIWNvbXAgfHwgIWNvbXAtPm9wcykgewo+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmhkY3BfY29tcF9tdXRleCk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0 ID0gY29tcC0+b3BzLT5pbml0aWF0ZV9sb2NhbGl0eV9jaGVjayhjb21wLT5tZWlfZGV2LCBkYXRh LCBsY19pbml0KTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIlByZXBhcmUg bGNfaW5pdCBmYWlsZWQuICVkXG4iLCByZXQpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ aGRjcF9jb21wX211dGV4KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMg X19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50Cj4gK2hkY3AyX3ZlcmlmeV9scHJpbWUoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCSAgICBzdHJ1Y3QgaGRjcDJfbGNfc2Vu ZF9scHJpbWUgKnJ4X2xwcmltZSkKPiArewo+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRh ID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGk5 MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwljb21wID0gZGV2X3ByaXYtPmhkY3Bf bWFzdGVyOwo+ICsKPiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4gKwkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAr CX0KPiArCj4gKwlyZXQgPSBjb21wLT5vcHMtPnZlcmlmeV9scHJpbWUoY29tcC0+bWVpX2Rldiwg ZGF0YSwgcnhfbHByaW1lKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIlZl cmlmeSBMX1ByaW1lIGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4gKwltdXRleF91bmxvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0 YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+ICtpbnQgaGRjcDJfcHJlcGFyZV9za2V5KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICAgICAgc3RydWN0IGhkY3Ay X3NrZV9zZW5kX2VrcyAqc2tlX2RhdGEpCj4gK3sKPiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAq ZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiArCXN0cnVj dCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCW11dGV4 X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsJY29tcCA9IGRldl9wcml2LT5o ZGNwX21hc3RlcjsKPiArCj4gKwlpZiAoIWNvbXAgfHwgIWNvbXAtPm9wcykgewo+ICsJCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7 Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gY29tcC0+b3BzLT5nZXRfc2Vzc2lvbl9rZXkoY29tcC0+bWVp X2RldiwgZGF0YSwgc2tlX2RhdGEpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJRFJNX0RFQlVHX0tN UygiR2V0IHNlc3Npb24ga2V5IGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4gKwltdXRleF91bmxvY2so JmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiAr Cj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPiAraGRjcDJfdmVyaWZ5X3Jl cF90b3BvbG9neV9wcmVwYXJlX2FjayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gKwkJCQkgICAgICBzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRfcmVjZWl2ZXJpZF9saXN0Cj4gKwkJ CQkJCQkJKnJlcF90b3BvbG9neSwKPiArCQkJCSAgICAgIHN0cnVjdCBoZGNwMl9yZXBfc2VuZF9h Y2sgKnJlcF9zZW5kX2FjaykKPiArewo+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0g JmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGk5MTVf aGRjcF9jb21wX21hc3RlciAqY29tcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFz dGVyOwo+ICsKPiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4gKwkJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0K PiArCj4gKwlyZXQgPSBjb21wLT5vcHMtPnJlcGVhdGVyX2NoZWNrX2Zsb3dfcHJlcGFyZV9hY2so Y29tcC0+bWVpX2RldiwgZGF0YSwKPiArCQkJCQkJCSByZXBfdG9wb2xvZ3ksCj4gKwkJCQkJCQkg cmVwX3NlbmRfYWNrKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIlZlcmlm eSByZXAgdG9wb2xvZ3kgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPiArCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAr c3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+ICtoZGNwMl92ZXJpZnlfbXByaW1l KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICAgc3RydWN0IGhkY3Ay X3JlcF9zdHJlYW1fcmVhZHkgKnN0cmVhbV9yZWFkeSkKPiArewo+ICsJc3RydWN0IGhkY3BfcG9y dF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPiArCWludCByZXQ7Cj4gKwo+ ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwljb21wID0gZGV2 X3ByaXYtPmhkY3BfbWFzdGVyOwo+ICsKPiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4g KwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCX0KPiArCj4gKwlyZXQgPSBjb21wLT5vcHMtPnZlcmlmeV9tcHJpbWUoY29t cC0+bWVpX2RldiwgZGF0YSwgc3RyZWFtX3JlYWR5KTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCURS TV9ERUJVR19LTVMoIlZlcmlmeSBtcHJpbWUgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPiArCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4gKwo+ICsJcmV0dXJuIHJldDsK PiArfQo+ICsKPiArc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCj4gK2ludCBoZGNwMl9h dXRoZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sK PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9k YXRhOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25u ZWN0b3ItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7 Cj4gKwlpbnQgcmV0Owo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0 ZXgpOwo+ICsJY29tcCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsKPiArCj4gKwlpZiAoIWNvbXAg fHwgIWNvbXAtPm9wcykgewo+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9t dXRleCk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gY29tcC0+b3Bz LT5lbmFibGVfaGRjcF9hdXRoZW50aWNhdGlvbihjb21wLT5tZWlfZGV2LCBkYXRhKTsKPiArCWlm IChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIkVuYWJsZSBoZGNwIGF1dGggZmFpbGVkLiAl ZFxuIiwgcmV0KTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7 Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIF9fYXR0cmlidXRlX18oKHVu dXNlZCkpCj4gK2ludCBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaTkxNV9oZGNwX2Nv bXBfbWFzdGVyICpjb21wOwo+ICsJaW50IHJldDsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJp di0+aGRjcF9jb21wX211dGV4KTsKPiArCWNvbXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4g Kwo+ICsJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsKPiArCQltdXRleF91bmxvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiAr CXJldCA9IGNvbXAtPm9wcy0+Y2xvc2VfaGRjcF9zZXNzaW9uKGNvbXAtPm1laV9kZXYsCj4gKwkJ CQkJICAgICAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YSk7Cj4gKwltdXRleF91bmxvY2soJmRl dl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4g K3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+ICtpbnQgaGRjcDJfZGVhdXRoZW50aWNh dGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXJldHVy biBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihjb25uZWN0b3IpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IGk5MTVfaGRjcF9jb21wb25lbnRfYmluZChzdHJ1Y3QgZGV2aWNlICppOTE1X2tkZXYsCj4g KwkJCQkgICAgc3RydWN0IGRldmljZSAqbWVpX2tkZXYsIHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShpOTE1X2tkZXYp Owo+ICsKPiArCURSTV9ERUJVRygiSTkxNSBIRENQIGNvbXAgYmluZFxuIik7Cj4gKwltdXRleF9s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCWRldl9wcml2LT5oZGNwX21hc3Rl ciA9IChzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICopZGF0YTsKPiArCWRldl9wcml2LT5o ZGNwX21hc3Rlci0+bWVpX2RldiA9IG1laV9rZGV2Owo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+aGRjcF9jb21wX211dGV4KTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgaTkxNV9oZGNwX2NvbXBvbmVudF91bmJpbmQoc3RydWN0IGRldmljZSAqaTkxNV9rZGV2 LAo+ICsJCQkJICAgICAgIHN0cnVjdCBkZXZpY2UgKm1laV9rZGV2LCB2b2lkICpkYXRhKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoaTkx NV9rZGV2KTsKPiArCj4gKwlEUk1fREVCVUcoIkk5MTUgSERDUCBjb21wIHVuYmluZFxuIik7Cj4g KwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCWRldl9wcml2LT5o ZGNwX21hc3Rlci0+bWVpX2RldiA9IE5VTEw7Cj4gKwlkZXZfcHJpdi0+aGRjcF9tYXN0ZXIgPSBO VUxMOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArfQo+ ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIGk5MTVfaGRjcF9jb21wb25l bnRfb3BzID0gewo+ICsJLmJpbmQgICA9IGk5MTVfaGRjcF9jb21wb25lbnRfYmluZCwKPiArCS51 bmJpbmQgPSBpOTE1X2hkY3BfY29tcG9uZW50X3VuYmluZCwKPiArfTsKPiArCj4gK3N0YXRpYyBp bnQgaW5pdGlhbGl6ZV9oZGNwX3BvcnRfZGF0YShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRj cDsKPiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZoZGNwLT5wb3J0X2RhdGE7Cj4g Kwo+ICsJZGF0YS0+cG9ydCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKPiArCWRhdGEtPnBv cnRfdHlwZSA9ICh1OClIRENQX1BPUlRfVFlQRV9JTlRFR1JBVEVEOwo+ICsJZGF0YS0+cHJvdG9j b2wgPSAodTgpaGRjcC0+c2hpbS0+cHJvdG9jb2w7Cj4gKwo+ICsJZGF0YS0+ayA9IDE7Cj4gKwlp ZiAoIWRhdGEtPnN0cmVhbXMpCj4gKwkJZGF0YS0+c3RyZWFtcyA9IGtjYWxsb2MoZGF0YS0+aywK PiArCQkJCQlzaXplb2Yoc3RydWN0IGhkY3AyX3N0cmVhbWlkX3R5cGUpLAo+ICsJCQkJCUdGUF9L RVJORUwpOwo+ICsJaWYgKCFkYXRhLT5zdHJlYW1zKSB7Cj4gKwkJRFJNX0VSUk9SKCJPdXQgb2Yg TWVtb3J5XG4iKTsKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCX0KPiArCj4gKwlkYXRhLT5zdHJl YW1zWzBdLnN0cmVhbV9pZCA9IDA7Cj4gKwlkYXRhLT5zdHJlYW1zWzBdLnN0cmVhbV90eXBlID0g aGRjcC0+Y29udGVudF90eXBlOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBib29sIGlz X2hkY3AyX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsK PiAgCWlmICghSVNfRU5BQkxFRChDT05GSUdfSU5URUxfTUVJX0hEQ1ApKQo+IEBAIC04NDUsMTAg KzExODksNDIgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRj cCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Cj4gKwlib29sIGFkZF9jb21wb25lbnQgPSBmYWxz ZTsKPiArCWludCByZXQ7Cj4gIAo+ICAJV0FSTl9PTighaXNfaGRjcDJfc3VwcG9ydGVkKGRldl9w cml2KSk7Cj4gIAo+IC0JLyogVE9ETzogTUVJIGludGVyZmFjZSBuZWVkcyB0byBiZSBpbml0aWFs aXplZCBoZXJlICovCj4gKwlyZXQgPSBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKGNvbm5lY3Rv cik7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiTWVpIGhkY3AgZGF0YSBpbml0 IGZhaWxlZFxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCW11dGV4X2xvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ICsJLyoKPiArCSAqIENvbXBvbmVudCBmb3IgbWVpIGlz IGNvbW1vbiBhY3Jvc3MgdGhlIGNvbm5lY3Rvci4KPiArCSAqIEFkZGluZyB0aGUgY29tcG9uZW50 IG9uY2UgaXMgc3VmZmljaWVudC4KPiArCSAqLwo+ICsJaWYgKCFkZXZfcHJpdi0+aGRjcF9jb21w X2FkZGVkKSB7Cj4gKwkJZGV2X3ByaXYtPmhkY3BfY29tcF9hZGRlZCA9IHRydWU7Cj4gKwkJYWRk X2NvbXBvbmVudCA9IHRydWU7Cj4gKwl9Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNw X2NvbXBfbXV0ZXgpOwo+ICsKPiArCWlmIChhZGRfY29tcG9uZW50KSB7Cj4gKwkJcmV0ID0gY29t cG9uZW50X2FkZF90eXBlZChkZXZfcHJpdi0+ZHJtLmRldiwKPiArCQkJCQkgICZpOTE1X2hkY3Bf Y29tcG9uZW50X29wcywKPiArCQkJCQkgIEk5MTVfQ09NUE9ORU5UX0hEQ1ApOwo+ICsJCWlmIChy ZXQgPCAwKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCBhdCBjb21wb25lbnQgYWRkKCVk KVxuIiwgcmV0KTsKPiArCQkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7 Cj4gKwkJCWRldl9wcml2LT5oZGNwX2NvbXBfYWRkZWQgPSBmYWxzZTsKPiArCQkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPiArCQkJa2ZyZWUoaGRjcC0+cG9ydF9k YXRhLnN0cmVhbXMpOwo+ICsJCQlyZXR1cm47Cj4gKwkJfQo+ICsJfQo+ICsKPiAgCWhkY3AtPmhk Y3AyX3N1cHBvcnRlZCA9IHRydWU7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2k5MTVfY29tcG9uZW50LmggYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gaW5kZXgg NzJmYmIwMzdmOWIzLi5mMzg1MWJhM2U0YzMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vaTkx NV9jb21wb25lbnQuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiBAQCAt MjQsMTAgKzI0LDEzIEBACj4gICNpZm5kZWYgX0k5MTVfQ09NUE9ORU5UX0hfCj4gICNkZWZpbmUg X0k5MTVfQ09NUE9ORU5UX0hfCj4gIAo+ICsjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Cj4gKwo+ ICAjaW5jbHVkZSAiZHJtX2F1ZGlvX2NvbXBvbmVudC5oIgo+ICAKPiAgZW51bSBpOTE1X2NvbXBv bmVudF90eXBlIHsKPiAgCUk5MTVfQ09NUE9ORU5UX0FVRElPID0gMSwKPiArCUk5MTVfQ09NUE9O RU5UX0hEQ1AsCj4gIH07Cj4gIAo+ICAvKiBNQVhfUE9SVCBpcyB0aGUgbnVtYmVyIG9mIHBvcnQK PiAtLSAKPiAyLjcuNAo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=