From mboxrd@z Thu Jan 1 00:00:00 1970 From: "C, Ramalingam" Subject: Re: [PATCH v10 06/40] drm/i915: MEI interface definition Date: Thu, 31 Jan 2019 19:09:44 +0530 Message-ID: <42949262-bcb9-68b9-344e-8c7d87be7649@intel.com> References: <1548917996-28081-1-git-send-email-ramalingam.c@intel.com> <1548917996-28081-7-git-send-email-ramalingam.c@intel.com> <20190131081748.GV3271@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190131081748.GV3271@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, tomas.winkler@intel.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org CgpPbiAxLzMxLzIwMTkgMTo0NyBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUaHUsIEph biAzMSwgMjAxOSBhdCAxMjoyOToyMlBNICswNTMwLCBSYW1hbGluZ2FtIEMgd3JvdGU6Cj4+IERl ZmluaW5nIHRoZSBtZWktaTkxNSBpbnRlcmZhY2UgZnVuY3Rpb25zIGFuZCBpbml0aWFsaXphdGlv biBvZgo+PiB0aGUgaW50ZXJmYWNlLgo+Pgo+PiB2MjoKPj4gICAgQWRqdXN0IHRvIHRoZSBuZXcg aW50ZXJmYWNlIGNoYW5nZXMuIFtUb21hc10KPj4gICAgQWRkZWQgZnVydGhlciBkZWJ1ZyBsb2dz IGZvciB0aGUgZmFpbHVyZXMgYXQgTUVJIGkvZi4KPj4gICAgcG9ydCBpbiBoZGNwX3BvcnQgZGF0 YSBpcyBlcXVpcHBlZCB0byBoYW5kbGUgLXZlIHZhbHVlcy4KPj4gdjM6Cj4+ICAgIG1laSBjb21w IGlzIG1hdGNoZWQgZm9yIGdsb2JhbCBpOTE1IGNvbXAgbWFzdGVyLiBbRGFuaWVsXQo+PiAgICBJ biBoZGNwX3NoaW0gaGRjcF9wcm90b2NvbCgpIGlzIHJlcGxhY2VkIHdpdGggY29uc3QgdmFyaWFi bGUuIFtEYW5pZWxdCj4+ICAgIG1laSB3cmFwcGVycyBhcmUgYWRqdXN0ZWQgYXMgcGVyIHRoZSBp L2YgY2hhbmdlIFtEYW5pZWxdCj4+IHY0Ogo+PiAgICBwb3J0IGluaXRpYWxpemF0aW9uIGlzIGRv bmUgb25seSBhdCBoZGNwMl9pbml0IG9ubHkgW0RhbnZldF0KPj4gdjU6Cj4+ICAgIEk5MTUgcmVn aXN0ZXJzIGEgc3ViY29tcG9uZW50IHRvIGJlIG1hdGNoZWQgd2l0aCBtZWlfaGRjcCBbRGFuaWVs XQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5j b20+Cj4+IFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo Pgo+IFdoZW4geW91IG1ha2Ugc3Vic3RhbnRpYWwgY2hhbmdlcyB0byBhIHBhdGNoIChsaWtlIGhl cmUpIGFuZCBkZWNpZGUgdG8KPiBrZWVwIHRoZSByLWIsIHRoZW4gcGxlYXNlIGluZGljYXRlIHRo YXQgaXQgd2FzIGZvciBhbiBlYXJsaWVyIHZlcnNpb24uIEkKPiBtb3N0IGRlZmluaXRlbHkgZGlk bid0IHJldmlldyB0aGlzIG9uZSB0aGF0IHJlLWFkZHMgYWxsIHRoZSBsb2NraW5nIDotKQpzdXJl IDopCj4KPiBXaGF0J3MgbWlzc2luZyBoZXJlIGlzIHRoZSBjb21wb25lbnRfZGVsLiBOb3QgZXhh Y3RseSBzdXJlIHdoeSB0aGlzCj4gZG9lc24ndCBibG93IHVwLgpUaGF0IGlzIHdlaXJkLiBCdXQg eWVzIG5vdGUgdGhlIGFic2VuY2Ugb2YgX2RlbC4gSSB3aWxsIGludHJvZHVjZSB0aGUgCnRoZSBj YWxsIHRvIGhkY3BfZXhpdCBhdCB1bmxvYWQgYW5kIGhhbmRsZSB0aGUgY29tcG9uZW50X2RlbC4K PiBMdWNraWx5IHdlIGRvbid0IG5lZWQgYSBjb21wb25lbnRfZGVsX3R5cGVkIGJlY2F1c2UKPiBj b21wb25lbnRfZGVsIGFscmVhZHkgdGFrZXMgdGhlIChkZXYsIG9wcykgcGFpciwgYW5kIHRoYXQn cyB1bmlxdWUuCnllcyB0cnVlLgoKLVJhbQo+IC1EYW5pZWwKPgo+Cj4+IC0tLQo+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICB8ICAgMSArCj4+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgIHwgICA3ICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgfCAgIDUgKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyB8 IDM3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+PiAgIGluY2x1ZGUv ZHJtL2k5MTVfY29tcG9uZW50LmggICAgICB8ICAgMyArCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAz OTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKPj4gaW5kZXggYTdhYWExYWM0Yzk5Li43NWFmZjkwN2JhNjkgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwo+PiBAQCAtOTA0LDYgKzkwNCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2 ZXJfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgCW11 dGV4X2luaXQoJmRldl9wcml2LT5hdl9tdXRleCk7Cj4+ICAgCW11dGV4X2luaXQoJmRldl9wcml2 LT53bS53bV9tdXRleCk7Cj4+ICAgCW11dGV4X2luaXQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwo+ PiArCW11dGV4X2luaXQoJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+PiAgIAo+PiAgIAlp OTE1X21lbWNweV9pbml0X2Vhcmx5KGRldl9wcml2KTsKPj4gICAJaW50ZWxfcnVudGltZV9wbV9p bml0X2Vhcmx5KGRldl9wcml2KTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IGluZGV4IDIy ZGE5ZGYxZjBhNy4uZDlhMDc3MWFmNGQxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK Pj4gQEAgLTU1LDYgKzU1LDcgQEAKPj4gICAjaW5jbHVkZSA8ZHJtL2RybV91dGlsLmg+Cj4+ICAg I2luY2x1ZGUgPGRybS9kcm1fZHNjLmg+Cj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fY29ubmVjdG9y Lmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL2k5MTVfbWVpX2hkY3BfaW50ZXJmYWNlLmg+Cj4+ICAgCj4+ ICAgI2luY2x1ZGUgImk5MTVfZml4ZWQuaCIKPj4gICAjaW5jbHVkZSAiaTkxNV9wYXJhbXMuaCIK Pj4gQEAgLTIwNDMsNiArMjA0NCwxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4+ICAg Cj4+ICAgCXN0cnVjdCBpOTE1X3BtdSBwbXU7Cj4+ICAgCj4+ICsJc3RydWN0IGk5MTVfaGRjcF9j b21wX21hc3RlciAqaGRjcF9tYXN0ZXI7Cj4+ICsJYm9vbCBoZGNwX2NvbXBfYWRkZWQ7Cj4+ICsK Pj4gKwkvKiBNdXRleCB0byBwcm90ZWN0IHRoZSBhYm92ZSBoZGNwIGNvbXBvbmVudCByZWxhdGVk IHZhbHVlcy4gKi8KPj4gKwlzdHJ1Y3QgbXV0ZXggaGRjcF9jb21wX211dGV4Owo+PiArCj4+ICAg CS8qCj4+ICAgCSAqIE5PVEU6IFRoaXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFk ZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCj4+ICAgCSAqIHdpbGwgYmUgcmVqZWN0ZWQuIEluc3Rl YWQgbG9vayBmb3IgYSBiZXR0ZXIgcGxhY2UuCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ IGluZGV4IDBhYzg3MGZlYjVlOS4uNjNlMDA5Mjg2ZDVmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+PiBAQCAtNDEsNiArNDEsNyBAQAo+PiAgICNpbmNsdWRlIDxkcm0vZHJtX3Jl Y3QuaD4KPj4gICAjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KPj4gICAjaW5jbHVkZSA8ZHJt L2RybV9hdG9taWMuaD4KPj4gKyNpbmNsdWRlIDxkcm0vaTkxNV9tZWlfaGRjcF9pbnRlcmZhY2Uu aD4KPj4gICAjaW5jbHVkZSA8bWVkaWEvY2VjLW5vdGlmaWVyLmg+Cj4+ICAgCj4+ICAgc3RydWN0 IGRybV9wcmludGVyOwo+PiBAQCAtMzg1LDYgKzM4Niw5IEBAIHN0cnVjdCBpbnRlbF9oZGNwX3No aW0gewo+PiAgIAkvKiBEZXRlY3RzIHBhbmVsJ3MgaGRjcCBjYXBhYmlsaXR5LiBUaGlzIGlzIG9w dGlvbmFsIGZvciBIRE1JLiAqLwo+PiAgIAlpbnQgKCpoZGNwX2NhcGFibGUpKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+PiAgIAkJCSAgICBib29sICpoZGNwX2Nh cGFibGUpOwo+PiArCj4+ICsJLyogSERDUCBhZGFwdGF0aW9uKERQL0hETUkpIHJlcXVpcmVkIG9u IHRoZSBwb3J0ICovCj4+ICsJZW51bSBoZGNwX3dpcmVkX3Byb3RvY29sIHByb3RvY29sOwo+PiAg IH07Cj4+ICAgCj4+ICAgc3RydWN0IGludGVsX2hkY3Agewo+PiBAQCAtNDA1LDYgKzQwOSw3IEBA IHN0cnVjdCBpbnRlbF9oZGNwIHsKPj4gICAJICogY29udGVudCBjYW4gZmxvdyBvbmx5IHRocm91 Z2ggYSBsaW5rIHByb3RlY3RlZCBieSBIRENQMi4yLgo+PiAgIAkgKi8KPj4gICAJdTggY29udGVu dF90eXBlOwo+PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSBwb3J0X2RhdGE7Cj4+ICAgfTsKPj4g ICAKPj4gICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk Y3AuYwo+PiBpbmRleCAxYTg1ZGM0NjY5MmQuLmUwYmI1ZjMyYmE5MCAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkY3AuYwo+PiBAQCAtNyw4ICs3LDEwIEBACj4+ICAgICovCj4+ICAgCj4+ ICAgI2luY2x1ZGUgPGRybS9kcm1faGRjcC5oPgo+PiArI2luY2x1ZGUgPGRybS9pOTE1X2NvbXBv bmVudC5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KPj4gICAjaW5jbHVkZSA8bGludXgv cmFuZG9tLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Cj4+ICAgCj4+ICAgI2lu Y2x1ZGUgImludGVsX2Rydi5oIgo+PiAgICNpbmNsdWRlICJpOTE1X3JlZy5oIgo+PiBAQCAtODMy LDYgKzgzNCwzNDggQEAgYm9vbCBpc19oZGNwX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+PiAgIAlyZXR1cm4gSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5ICYmIHBvcnQgPCBQT1JUX0U7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIF9f YXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+PiAraGRjcDJfcHJlcGFyZV9ha2VfaW5pdChzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ICsJCSAgICAgICBzdHJ1Y3QgaGRjcDJf YWtlX2luaXQgKmFrZV9kYXRhKQo+PiArewo+PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0 YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ICsJc3RydWN0 IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJY29tcCA9IGRldl9wcml2 LT5oZGNwX21hc3RlcjsKPj4gKwo+PiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4+ICsJ CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJCXJldHVybiAt RUlOVkFMOwo+PiArCX0KPj4gKwo+PiArCXJldCA9IGNvbXAtPm9wcy0+aW5pdGlhdGVfaGRjcDJf c2Vzc2lvbihjb21wLT5tZWlfZGV2LCBkYXRhLCBha2VfZGF0YSk7Cj4+ICsJaWYgKHJldCkKPj4g KwkJRFJNX0RFQlVHX0tNUygiUHJlcGFyZV9ha2VfaW5pdCBmYWlsZWQuICVkXG4iLCByZXQpOwo+ PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsKPj4gKwly ZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkg aW50Cj4+ICtoZGNwMl92ZXJpZnlfcnhfY2VydF9wcmVwYXJlX2ttKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPj4gKwkJCQlzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfY2VydCAqcnhf Y2VydCwKPj4gKwkJCQlib29sICpwYWlyZWQsCj4+ICsJCQkJc3RydWN0IGhkY3AyX2FrZV9ub19z dG9yZWRfa20gKmVrX3B1Yl9rbSwKPj4gKwkJCQlzaXplX3QgKm1zZ19zeikKPj4gK3sKPj4gKwlz dHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsK Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rv ci0+YmFzZS5kZXYpOwo+PiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7Cj4+ ICsJaW50IHJldDsKPj4gKwo+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0 ZXgpOwo+PiArCWNvbXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4+ICsKPj4gKwlpZiAoIWNv bXAgfHwgIWNvbXAtPm9wcykgewo+PiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2Nv bXBfbXV0ZXgpOwo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwl9Cj4+ICsKPj4gKwlyZXQgPSBj b21wLT5vcHMtPnZlcmlmeV9yZWNlaXZlcl9jZXJ0X3ByZXBhcmVfa20oY29tcC0+bWVpX2Rldiwg ZGF0YSwKPj4gKwkJCQkJCQkgcnhfY2VydCwgcGFpcmVkLAo+PiArCQkJCQkJCSBla19wdWJfa20s IG1zZ19zeik7Cj4+ICsJaWYgKHJldCA8IDApCj4+ICsJCURSTV9ERUJVR19LTVMoIlZlcmlmeSBy eF9jZXJ0IGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ aGRjcF9jb21wX211dGV4KTsKPj4gKwo+PiArCXJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0 YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPj4gK2hkY3AyX3ZlcmlmeV9ocHJpbWUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiArCQkgICAgc3RydWN0IGhkY3Ay X2FrZV9zZW5kX2hwcmltZSAqcnhfaHByaW1lKQo+PiArewo+PiArCXN0cnVjdCBoZGNwX3BvcnRf ZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOwo+PiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4gKwlpbnQgcmV0Owo+PiAr Cj4+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJY29tcCA9 IGRldl9wcml2LT5oZGNwX21hc3RlcjsKPj4gKwo+PiArCWlmICghY29tcCB8fCAhY29tcC0+b3Bz KSB7Cj4+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJ CXJldHVybiAtRUlOVkFMOwo+PiArCX0KPj4gKwo+PiArCXJldCA9IGNvbXAtPm9wcy0+dmVyaWZ5 X2hwcmltZShjb21wLT5tZWlfZGV2LCBkYXRhLCByeF9ocHJpbWUpOwo+PiArCWlmIChyZXQgPCAw KQo+PiArCQlEUk1fREVCVUdfS01TKCJWZXJpZnkgaHByaW1lIGZhaWxlZC4gJWRcbiIsIHJldCk7 Cj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwo+PiAr CXJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp KSBpbnQKPj4gK2hkY3AyX3N0b3JlX3BhaXJpbmdfaW5mbyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsCj4+ICsJCQkgc3RydWN0IGhkY3AyX2FrZV9zZW5kX3BhaXJpbmdfaW5mbyAq cGFpcmluZ19pbmZvKQo+PiArewo+PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZj b25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ICsJc3RydWN0IGk5MTVf aGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJY29tcCA9IGRldl9wcml2LT5oZGNw X21hc3RlcjsKPj4gKwo+PiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4+ICsJCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJCXJldHVybiAtRUlOVkFM Owo+PiArCX0KPj4gKwo+PiArCXJldCA9IGNvbXAtPm9wcy0+c3RvcmVfcGFpcmluZ19pbmZvKGNv bXAtPm1laV9kZXYsIGRhdGEsIHBhaXJpbmdfaW5mbyk7Cj4+ICsJaWYgKHJldCA8IDApCj4+ICsJ CURSTV9ERUJVR19LTVMoIlN0b3JlIHBhaXJpbmcgaW5mbyBmYWlsZWQuICVkXG4iLCByZXQpOwo+ PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsKPj4gKwly ZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkg aW50Cj4+ICtoZGNwMl9wcmVwYXJlX2xjX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+PiArCQkgICAgICBzdHJ1Y3QgaGRjcDJfbGNfaW5pdCAqbGNfaW5pdCkKPj4gK3sK Pj4gKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRf ZGF0YTsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNv bm5lY3Rvci0+YmFzZS5kZXYpOwo+PiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNv bXA7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2Nv bXBfbXV0ZXgpOwo+PiArCWNvbXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4+ICsKPj4gKwlp ZiAoIWNvbXAgfHwgIWNvbXAtPm9wcykgewo+PiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5o ZGNwX2NvbXBfbXV0ZXgpOwo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwl9Cj4+ICsKPj4gKwly ZXQgPSBjb21wLT5vcHMtPmluaXRpYXRlX2xvY2FsaXR5X2NoZWNrKGNvbXAtPm1laV9kZXYsIGRh dGEsIGxjX2luaXQpOwo+PiArCWlmIChyZXQgPCAwKQo+PiArCQlEUk1fREVCVUdfS01TKCJQcmVw YXJlIGxjX2luaXQgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPj4gKwltdXRleF91bmxvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+ PiArc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+PiAraGRjcDJfdmVyaWZ5X2xw cmltZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ICsJCSAgICBzdHJ1Y3Qg aGRjcDJfbGNfc2VuZF9scHJpbWUgKnJ4X2xwcmltZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgaGRjcF9w b3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKPj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYp Owo+PiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7Cj4+ICsJaW50IHJldDsK Pj4gKwo+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+PiArCWNv bXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4+ICsKPj4gKwlpZiAoIWNvbXAgfHwgIWNvbXAt Pm9wcykgewo+PiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwl9Cj4+ICsKPj4gKwlyZXQgPSBjb21wLT5vcHMtPnZl cmlmeV9scHJpbWUoY29tcC0+bWVpX2RldiwgZGF0YSwgcnhfbHByaW1lKTsKPj4gKwlpZiAocmV0 IDwgMCkKPj4gKwkJRFJNX0RFQlVHX0tNUygiVmVyaWZ5IExfUHJpbWUgZmFpbGVkLiAlZFxuIiwg cmV0KTsKPj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+PiAr Cj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3RhdGljIF9fYXR0cmlidXRlX18oKHVu dXNlZCkpCj4+ICtpbnQgaGRjcDJfcHJlcGFyZV9za2V5KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPj4gKwkJICAgICAgIHN0cnVjdCBoZGNwMl9za2Vfc2VuZF9la3MgKnNrZV9k YXRhKQo+PiArewo+PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3It PmhkY3AucG9ydF9kYXRhOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ICsJc3RydWN0IGk5MTVfaGRjcF9jb21w X21hc3RlciAqY29tcDsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJbXV0ZXhfbG9jaygmZGV2X3By aXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJY29tcCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsK Pj4gKwo+PiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4+ICsJCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCX0K Pj4gKwo+PiArCXJldCA9IGNvbXAtPm9wcy0+Z2V0X3Nlc3Npb25fa2V5KGNvbXAtPm1laV9kZXYs IGRhdGEsIHNrZV9kYXRhKTsKPj4gKwlpZiAocmV0IDwgMCkKPj4gKwkJRFJNX0RFQlVHX0tNUygi R2V0IHNlc3Npb24ga2V5IGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4+ICsJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwo+PiArCXJldHVybiByZXQ7Cj4+ICt9Cj4+ ICsKPj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPj4gK2hkY3AyX3Zlcmlm eV9yZXBfdG9wb2xvZ3lfcHJlcGFyZV9hY2soc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+PiArCQkJCSAgICAgIHN0cnVjdCBoZGNwMl9yZXBfc2VuZF9yZWNlaXZlcmlkX2xpc3QK Pj4gKwkJCQkJCQkJKnJlcF90b3BvbG9neSwKPj4gKwkJCQkgICAgICBzdHJ1Y3QgaGRjcDJfcmVw X3NlbmRfYWNrICpyZXBfc2VuZF9hY2spCj4+ICt7Cj4+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRh ICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPj4gKwlz dHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICpjb21wOwo+PiArCWludCByZXQ7Cj4+ICsKPj4g KwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwljb21wID0gZGV2 X3ByaXYtPmhkY3BfbWFzdGVyOwo+PiArCj4+ICsJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsK Pj4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwkJcmV0 dXJuIC1FSU5WQUw7Cj4+ICsJfQo+PiArCj4+ICsJcmV0ID0gY29tcC0+b3BzLT5yZXBlYXRlcl9j aGVja19mbG93X3ByZXBhcmVfYWNrKGNvbXAtPm1laV9kZXYsIGRhdGEsCj4+ICsJCQkJCQkJIHJl cF90b3BvbG9neSwKPj4gKwkJCQkJCQkgcmVwX3NlbmRfYWNrKTsKPj4gKwlpZiAocmV0IDwgMCkK Pj4gKwkJRFJNX0RFQlVHX0tNUygiVmVyaWZ5IHJlcCB0b3BvbG9neSBmYWlsZWQuICVkXG4iLCBy ZXQpOwo+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsK Pj4gKwlyZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51 c2VkKSkgaW50Cj4+ICtoZGNwMl92ZXJpZnlfbXByaW1lKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPj4gKwkJICAgIHN0cnVjdCBoZGNwMl9yZXBfc3RyZWFtX3JlYWR5ICpzdHJl YW1fcmVhZHkpCj4+ICt7Cj4+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5l Y3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPj4gKwlzdHJ1Y3QgaTkxNV9oZGNw X2NvbXBfbWFzdGVyICpjb21wOwo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwltdXRleF9sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFz dGVyOwo+PiArCj4+ICsJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsKPj4gKwkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ ICsJfQo+PiArCj4+ICsJcmV0ID0gY29tcC0+b3BzLT52ZXJpZnlfbXByaW1lKGNvbXAtPm1laV9k ZXYsIGRhdGEsIHN0cmVhbV9yZWFkeSk7Cj4+ICsJaWYgKHJldCA8IDApCj4+ICsJCURSTV9ERUJV R19LTVMoIlZlcmlmeSBtcHJpbWUgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPj4gKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4g K30KPj4gKwo+PiArc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCj4+ICtpbnQgaGRjcDJf YXV0aGVudGljYXRlX3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAr ewo+PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9y dF9kYXRhOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAq Y29tcDsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3Bf Y29tcF9tdXRleCk7Cj4+ICsJY29tcCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsKPj4gKwo+PiAr CWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCX0KPj4gKwo+PiAr CXJldCA9IGNvbXAtPm9wcy0+ZW5hYmxlX2hkY3BfYXV0aGVudGljYXRpb24oY29tcC0+bWVpX2Rl diwgZGF0YSk7Cj4+ICsJaWYgKHJldCA8IDApCj4+ICsJCURSTV9ERUJVR19LTVMoIkVuYWJsZSBo ZGNwIGF1dGggZmFpbGVkLiAlZFxuIiwgcmV0KTsKPj4gKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5oZGNwX2NvbXBfbXV0ZXgpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiAr c3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCj4+ICtpbnQgaGRjcDJfY2xvc2VfbWVpX3Nl c3Npb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiArewo+PiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRl dik7Cj4+ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4gKwlpbnQgcmV0 Owo+PiArCj4+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJ Y29tcCA9IGRldl9wcml2LT5oZGNwX21hc3RlcjsKPj4gKwo+PiArCWlmICghY29tcCB8fCAhY29t cC0+b3BzKSB7Cj4+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7 Cj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCX0KPj4gKwo+PiArCXJldCA9IGNvbXAtPm9wcy0+ Y2xvc2VfaGRjcF9zZXNzaW9uKGNvbXAtPm1laV9kZXYsCj4+ICsJCQkJCSAgICAgJmNvbm5lY3Rv ci0+aGRjcC5wb3J0X2RhdGEpOwo+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29t cF9tdXRleCk7Cj4+ICsKPj4gKwlyZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgX19h dHRyaWJ1dGVfXygodW51c2VkKSkKPj4gK2ludCBoZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gK3sKPj4gKwlyZXR1cm4gaGRjcDJf Y2xvc2VfbWVpX3Nlc3Npb24oY29ubmVjdG9yKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBp OTE1X2hkY3BfY29tcG9uZW50X2JpbmQoc3RydWN0IGRldmljZSAqaTkxNV9rZGV2LAo+PiArCQkJ CSAgICBzdHJ1Y3QgZGV2aWNlICptZWlfa2Rldiwgdm9pZCAqZGF0YSkKPj4gK3sKPj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoaTkxNV9rZGV2KTsK Pj4gKwo+PiArCURSTV9ERUJVRygiSTkxNSBIRENQIGNvbXAgYmluZFxuIik7Cj4+ICsJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJZGV2X3ByaXYtPmhkY3BfbWFz dGVyID0gKHN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKilkYXRhOwo+PiArCWRldl9wcml2 LT5oZGNwX21hc3Rlci0+bWVpX2RldiA9IG1laV9rZGV2Owo+PiArCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+ PiArc3RhdGljIHZvaWQgaTkxNV9oZGNwX2NvbXBvbmVudF91bmJpbmQoc3RydWN0IGRldmljZSAq aTkxNV9rZGV2LAo+PiArCQkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlICptZWlfa2Rldiwgdm9pZCAq ZGF0YSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2 X3RvX2k5MTUoaTkxNV9rZGV2KTsKPj4gKwo+PiArCURSTV9ERUJVRygiSTkxNSBIRENQIGNvbXAg dW5iaW5kXG4iKTsKPj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsK Pj4gKwlkZXZfcHJpdi0+aGRjcF9tYXN0ZXItPm1laV9kZXYgPSBOVUxMOwo+PiArCWRldl9wcml2 LT5oZGNwX21hc3RlciA9IE5VTEw7Cj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9j b21wX211dGV4KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRf b3BzIGk5MTVfaGRjcF9jb21wb25lbnRfb3BzID0gewo+PiArCS5iaW5kICAgPSBpOTE1X2hkY3Bf Y29tcG9uZW50X2JpbmQsCj4+ICsJLnVuYmluZCA9IGk5MTVfaGRjcF9jb21wb25lbnRfdW5iaW5k LAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGludCBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gK3sKPj4gKwlzdHJ1Y3QgaW50ZWxf aGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Cj4+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRh ICpkYXRhID0gJmhkY3AtPnBvcnRfZGF0YTsKPj4gKwo+PiArCWRhdGEtPnBvcnQgPSBjb25uZWN0 b3ItPmVuY29kZXItPnBvcnQ7Cj4+ICsJZGF0YS0+cG9ydF90eXBlID0gKHU4KUhEQ1BfUE9SVF9U WVBFX0lOVEVHUkFURUQ7Cj4+ICsJZGF0YS0+cHJvdG9jb2wgPSAodTgpaGRjcC0+c2hpbS0+cHJv dG9jb2w7Cj4+ICsKPj4gKwlkYXRhLT5rID0gMTsKPj4gKwlpZiAoIWRhdGEtPnN0cmVhbXMpCj4+ ICsJCWRhdGEtPnN0cmVhbXMgPSBrY2FsbG9jKGRhdGEtPmssCj4+ICsJCQkJCXNpemVvZihzdHJ1 Y3QgaGRjcDJfc3RyZWFtaWRfdHlwZSksCj4+ICsJCQkJCUdGUF9LRVJORUwpOwo+PiArCWlmICgh ZGF0YS0+c3RyZWFtcykgewo+PiArCQlEUk1fRVJST1IoIk91dCBvZiBNZW1vcnlcbiIpOwo+PiAr CQlyZXR1cm4gLUVOT01FTTsKPj4gKwl9Cj4+ICsKPj4gKwlkYXRhLT5zdHJlYW1zWzBdLnN0cmVh bV9pZCA9IDA7Cj4+ICsJZGF0YS0+c3RyZWFtc1swXS5zdHJlYW1fdHlwZSA9IGhkY3AtPmNvbnRl bnRfdHlwZTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICAgYm9vbCBpc19oZGNw Ml9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgIHsKPj4g ICAJaWYgKCFJU19FTkFCTEVEKENPTkZJR19JTlRFTF9NRUlfSERDUCkpCj4+IEBAIC04NDUsMTAg KzExODksNDIgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4+ICAgewo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+PiAgIAlzdHJ1Y3QgaW50 ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Cj4+ICsJYm9vbCBhZGRfY29tcG9uZW50 ID0gZmFsc2U7Cj4+ICsJaW50IHJldDsKPj4gICAKPj4gICAJV0FSTl9PTighaXNfaGRjcDJfc3Vw cG9ydGVkKGRldl9wcml2KSk7Cj4+ICAgCj4+IC0JLyogVE9ETzogTUVJIGludGVyZmFjZSBuZWVk cyB0byBiZSBpbml0aWFsaXplZCBoZXJlICovCj4+ICsJcmV0ID0gaW5pdGlhbGl6ZV9oZGNwX3Bv cnRfZGF0YShjb25uZWN0b3IpOwo+PiArCWlmIChyZXQpIHsKPj4gKwkJRFJNX0RFQlVHX0tNUygi TWVpIGhkY3AgZGF0YSBpbml0IGZhaWxlZFxuIik7Cj4+ICsJCXJldHVybjsKPj4gKwl9Cj4+ICsK Pj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwkvKgo+PiAr CSAqIENvbXBvbmVudCBmb3IgbWVpIGlzIGNvbW1vbiBhY3Jvc3MgdGhlIGNvbm5lY3Rvci4KPj4g KwkgKiBBZGRpbmcgdGhlIGNvbXBvbmVudCBvbmNlIGlzIHN1ZmZpY2llbnQuCj4+ICsJICovCj4+ ICsJaWYgKCFkZXZfcHJpdi0+aGRjcF9jb21wX2FkZGVkKSB7Cj4+ICsJCWRldl9wcml2LT5oZGNw X2NvbXBfYWRkZWQgPSB0cnVlOwo+PiArCQlhZGRfY29tcG9uZW50ID0gdHJ1ZTsKPj4gKwl9Cj4+ ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4gKwo+PiArCWlm IChhZGRfY29tcG9uZW50KSB7Cj4+ICsJCXJldCA9IGNvbXBvbmVudF9hZGRfdHlwZWQoZGV2X3By aXYtPmRybS5kZXYsCj4+ICsJCQkJCSAgJmk5MTVfaGRjcF9jb21wb25lbnRfb3BzLAo+PiArCQkJ CQkgIEk5MTVfQ09NUE9ORU5UX0hEQ1ApOwo+PiArCQlpZiAocmV0IDwgMCkgewo+PiArCQkJRFJN X0RFQlVHX0tNUygiRmFpbGVkIGF0IGNvbXBvbmVudCBhZGQoJWQpXG4iLCByZXQpOwo+PiArCQkJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ICsJCQlkZXZfcHJpdi0+ aGRjcF9jb21wX2FkZGVkID0gZmFsc2U7Cj4+ICsJCQltdXRleF91bmxvY2soJmRldl9wcml2LT5o ZGNwX2NvbXBfbXV0ZXgpOwo+PiArCQkJa2ZyZWUoaGRjcC0+cG9ydF9kYXRhLnN0cmVhbXMpOwo+ PiArCQkJcmV0dXJuOwo+PiArCQl9Cj4+ICsJfQo+PiArCj4+ICAgCWhkY3AtPmhkY3AyX3N1cHBv cnRlZCA9IHRydWU7Cj4+ICAgfQo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkx NV9jb21wb25lbnQuaCBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPj4gaW5kZXggNzJm YmIwMzdmOWIzLi5mMzg1MWJhM2U0YzMgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL2k5MTVf Y29tcG9uZW50LmgKPj4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+PiBAQCAt MjQsMTAgKzI0LDEzIEBACj4+ICAgI2lmbmRlZiBfSTkxNV9DT01QT05FTlRfSF8KPj4gICAjZGVm aW5lIF9JOTE1X0NPTVBPTkVOVF9IXwo+PiAgIAo+PiArI2luY2x1ZGUgPGxpbnV4L2RldmljZS5o Pgo+PiArCj4+ICAgI2luY2x1ZGUgImRybV9hdWRpb19jb21wb25lbnQuaCIKPj4gICAKPj4gICBl bnVtIGk5MTVfY29tcG9uZW50X3R5cGUgewo+PiAgIAlJOTE1X0NPTVBPTkVOVF9BVURJTyA9IDEs Cj4+ICsJSTkxNV9DT01QT05FTlRfSERDUCwKPj4gICB9Owo+PiAgIAo+PiAgIC8qIE1BWF9QT1JU IGlzIHRoZSBudW1iZXIgb2YgcG9ydAo+PiAtLSAKPj4gMi43LjQKPj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=