From mboxrd@z Thu Jan 1 00:00:00 1970 From: "C, Ramalingam" Subject: Re: [PATCH v11 08/42] drm/i915: MEI interface definition Date: Fri, 8 Feb 2019 14:18:19 +0530 Message-ID: References: <1549487071-15343-1-git-send-email-ramalingam.c@intel.com> <1549487071-15343-9-git-send-email-ramalingam.c@intel.com> <20190207194007.GC3271@phenom.ffwll.local> <20190207194834.GD3271@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: <20190207194834.GD3271@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter 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: dri-devel@lists.freedesktop.org CgpPbiAyLzgvMjAxOSAxOjE4IEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IE9uIFRodSwgRmVi IDA3LCAyMDE5IGF0IDA4OjQwOjA4UE0gKzAxMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4+IE9u IFRodSwgRmViIDA3LCAyMDE5IGF0IDAyOjMzOjU3QU0gKzA1MzAsIFJhbWFsaW5nYW0gQyB3cm90 ZToKPj4+IERlZmluaW5nIHRoZSBtZWktaTkxNSBpbnRlcmZhY2UgZnVuY3Rpb25zIGFuZCBpbml0 aWFsaXphdGlvbiBvZgo+Pj4gdGhlIGludGVyZmFjZS4KPj4+Cj4+PiB2MjoKPj4+ICAgIEFkanVz dCB0byB0aGUgbmV3IGludGVyZmFjZSBjaGFuZ2VzLiBbVG9tYXNdCj4+PiAgICBBZGRlZCBmdXJ0 aGVyIGRlYnVnIGxvZ3MgZm9yIHRoZSBmYWlsdXJlcyBhdCBNRUkgaS9mLgo+Pj4gICAgcG9ydCBp biBoZGNwX3BvcnQgZGF0YSBpcyBlcXVpcHBlZCB0byBoYW5kbGUgLXZlIHZhbHVlcy4KPj4+IHYz Ogo+Pj4gICAgbWVpIGNvbXAgaXMgbWF0Y2hlZCBmb3IgZ2xvYmFsIGk5MTUgY29tcCBtYXN0ZXIu IFtEYW5pZWxdCj4+PiAgICBJbiBoZGNwX3NoaW0gaGRjcF9wcm90b2NvbCgpIGlzIHJlcGxhY2Vk IHdpdGggY29uc3QgdmFyaWFibGUuIFtEYW5pZWxdCj4+PiAgICBtZWkgd3JhcHBlcnMgYXJlIGFk anVzdGVkIGFzIHBlciB0aGUgaS9mIGNoYW5nZSBbRGFuaWVsXQo+Pj4gdjQ6Cj4+PiAgICBwb3J0 IGluaXRpYWxpemF0aW9uIGlzIGRvbmUgb25seSBhdCBoZGNwMl9pbml0IG9ubHkgW0RhbnZldF0K Pj4+IHY1Ogo+Pj4gICAgSTkxNSByZWdpc3RlcnMgYSBzdWJjb21wb25lbnQgdG8gYmUgbWF0Y2hl ZCB3aXRoIG1laV9oZGNwIFtEYW5pZWxdCj4+PiB2NjoKPj4+ICAgIEhEQ1BfZGlzYWJsZSBmb3Ig YWxsIGNvbm5lY3RvcnMgaW5jYXNlIG9mIGNvbXBfdW5iaW5kLgo+Pj4gICAgVGVhciBkb3duIEhE Q1AgY29tcCBpbnRlcmZhY2UgYXQgaTkxNV91bmxvYWQgW0RhbmllbF0KPj4+Cj4+PiBTaWduZWQt b2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4+PiAtLS0KPj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgfCAgIDEgKwo+Pj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICB8ICAgNyArCj4+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nvbm5lY3Rvci5jIHwgICAyICsKPj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgfCAgIDYgKwo+Pj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZGNwLmMgICAgICB8IDQyMyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0KPj4+ICAgaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCAgICAgICAgICAgfCAg IDMgKwo+Pj4gICA2IGZpbGVzIGNoYW5nZWQsIDQ0MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+PiBpbmRleCA3ZGU5MDcwMWY2ZjEu LjljNDIxOGI1ZDE1MyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4+IEBAIC05 MDQsNiArOTA0LDcgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4+ICAgCW11dGV4X2luaXQoJmRldl9wcml2LT5h dl9tdXRleCk7Cj4+PiAgIAltdXRleF9pbml0KCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwo+Pj4g ICAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4+PiArCW11dGV4X2luaXQoJmRl dl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gICAKPj4+ICAgCWk5MTVfbWVtY3B5X2luaXRf ZWFybHkoZGV2X3ByaXYpOwo+Pj4gICAJaW50ZWxfcnVudGltZV9wbV9pbml0X2Vhcmx5KGRldl9w cml2KTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gaW5kZXggYTIyOTMxNTJjYjZhLi5l M2QwMzBiNzNiNWIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+PiBAQCAtNTUs NiArNTUsNyBAQAo+Pj4gICAjaW5jbHVkZSA8ZHJtL2RybV91dGlsLmg+Cj4+PiAgICNpbmNsdWRl IDxkcm0vZHJtX2RzYy5oPgo+Pj4gICAjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KPj4+ ICsjaW5jbHVkZSA8ZHJtL2k5MTVfbWVpX2hkY3BfaW50ZXJmYWNlLmg+Cj4+PiAgIAo+Pj4gICAj aW5jbHVkZSAiaTkxNV9maXhlZC5oIgo+Pj4gICAjaW5jbHVkZSAiaTkxNV9wYXJhbXMuaCIKPj4+ IEBAIC0yMDQzLDYgKzIwNDQsMTIgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+Pj4gICAK Pj4+ICAgCXN0cnVjdCBpOTE1X3BtdSBwbXU7Cj4+PiAgIAo+Pj4gKwlzdHJ1Y3QgaTkxNV9oZGNw X2NvbXBfbWFzdGVyICpoZGNwX21hc3RlcjsKPj4+ICsJYm9vbCBoZGNwX2NvbXBfYWRkZWQ7Cj4+ PiArCj4+PiArCS8qIE11dGV4IHRvIHByb3RlY3QgdGhlIGFib3ZlIGhkY3AgY29tcG9uZW50IHJl bGF0ZWQgdmFsdWVzLiAqLwo+Pj4gKwlzdHJ1Y3QgbXV0ZXggaGRjcF9jb21wX211dGV4Owo+Pj4g Kwo+Pj4gICAJLyoKPj4+ICAgCSAqIE5PVEU6IFRoaXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24s IGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCj4+PiAgIAkgKiB3aWxsIGJlIHJlamVj dGVkLiBJbnN0ZWFkIGxvb2sgZm9yIGEgYmV0dGVyIHBsYWNlLgo+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY29ubmVjdG9yLmMKPj4+IGluZGV4IGVlMTY3NTg3NDdjNS4uNjZlZDNlZTU5OThh IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29ubmVjdG9yLmMK Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nvbm5lY3Rvci5jCj4+PiBAQCAt ODgsNiArODgsOCBAQCB2b2lkIGludGVsX2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCj4+PiAgIAo+Pj4gICAJa2ZyZWUoaW50ZWxfY29ubmVjdG9yLT5k ZXRlY3RfZWRpZCk7Cj4+PiAgIAo+Pj4gKwlpbnRlbF9oZGNwX2NsZWFudXAoaW50ZWxfY29ubmVj dG9yKTsKPj4+ICsKPj4+ICAgCWlmICghSVNfRVJSX09SX05VTEwoaW50ZWxfY29ubmVjdG9yLT5l ZGlkKSkKPj4+ICAgCQlrZnJlZShpbnRlbF9jb25uZWN0b3ItPmVkaWQpOwo+Pj4gICAKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+PiBpbmRleCAwMzBkOTYyNjk3ZGQuLmI1YzU0YzY4ODI1 NiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+Pj4gQEAgLTQxLDYgKzQxLDcg QEAKPj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fcmVjdC5oPgo+Pj4gICAjaW5jbHVkZSA8ZHJtL2Ry bV92YmxhbmsuaD4KPj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+Cj4+PiArI2luY2x1 ZGUgPGRybS9pOTE1X21laV9oZGNwX2ludGVyZmFjZS5oPgo+Pj4gICAjaW5jbHVkZSA8bWVkaWEv Y2VjLW5vdGlmaWVyLmg+Cj4+PiAgIAo+Pj4gICBzdHJ1Y3QgZHJtX3ByaW50ZXI7Cj4+PiBAQCAt Mzg1LDYgKzM4Niw5IEBAIHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gewo+Pj4gICAJLyogRGV0ZWN0 cyBwYW5lbCdzIGhkY3AgY2FwYWJpbGl0eS4gVGhpcyBpcyBvcHRpb25hbCBmb3IgSERNSS4gKi8K Pj4+ICAgCWludCAoKmhkY3BfY2FwYWJsZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsCj4+PiAgIAkJCSAgICBib29sICpoZGNwX2NhcGFibGUpOwo+Pj4gKwo+Pj4g KwkvKiBIRENQIGFkYXB0YXRpb24oRFAvSERNSSkgcmVxdWlyZWQgb24gdGhlIHBvcnQgKi8KPj4+ ICsJZW51bSBoZGNwX3dpcmVkX3Byb3RvY29sIHByb3RvY29sOwo+Pj4gICB9Owo+Pj4gICAKPj4+ ICAgc3RydWN0IGludGVsX2hkY3Agewo+Pj4gQEAgLTQwNSw2ICs0MDksNyBAQCBzdHJ1Y3QgaW50 ZWxfaGRjcCB7Cj4+PiAgIAkgKiBjb250ZW50IGNhbiBmbG93IG9ubHkgdGhyb3VnaCBhIGxpbmsg cHJvdGVjdGVkIGJ5IEhEQ1AyLjIuCj4+PiAgIAkgKi8KPj4+ICAgCXU4IGNvbnRlbnRfdHlwZTsK Pj4+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhIHBvcnRfZGF0YTsKPj4+ICAgfTsKPj4+ICAgCj4+ PiAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3Igewo+Pj4gQEAgLTIwNzAsNiArMjA3NSw3IEBAIGlu dCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsK Pj4+ICAgaW50IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpOwo+Pj4gICBib29sIGlzX2hkY3Bfc3VwcG9ydGVkKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpOwo+Pj4gICBib29sIGludGVsX2hkY3Bf Y2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwo+Pj4gK3ZvaWQgaW50 ZWxfaGRjcF9jbGVhbnVwKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4+PiAg IAo+Pj4gICAvKiBpbnRlbF9wc3IuYyAqLwo+Pj4gICAjZGVmaW5lIENBTl9QU1IoZGV2X3ByaXYp IChIQVNfUFNSKGRldl9wcml2KSAmJiBkZXZfcHJpdi0+cHNyLnNpbmtfc3VwcG9ydCkKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKPj4+IGluZGV4IDdiMTA5N2Q3OWZiOC4uNzlmODk3OWI5 MTUwIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKPj4+IEBAIC03LDggKzcs MTAgQEAKPj4+ICAgICovCj4+PiAgIAo+Pj4gICAjaW5jbHVkZSA8ZHJtL2RybV9oZGNwLmg+Cj4+ PiArI2luY2x1ZGUgPGRybS9pOTE1X2NvbXBvbmVudC5oPgo+Pj4gICAjaW5jbHVkZSA8bGludXgv aTJjLmg+Cj4+PiAgICNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KPj4+ICsjaW5jbHVkZSA8bGlu dXgvY29tcG9uZW50Lmg+Cj4+PiAgIAo+Pj4gICAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4+PiAg ICNpbmNsdWRlICJpOTE1X3JlZy5oIgo+Pj4gQEAgLTgzMiw2ICs4MzQsMzYwIEBAIGJvb2wgaXNf aGRjcF9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBv cnQgcG9ydCkKPj4+ICAgCXJldHVybiBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgJiYgcG9ydCA8 IFBPUlRfRTsKPj4+ICAgfQo+Pj4gICAKPj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2Vk KSkgaW50Cj4+PiAraGRjcDJfcHJlcGFyZV9ha2VfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsCj4+PiArCQkgICAgICAgc3RydWN0IGhkY3AyX2FrZV9pbml0ICpha2VfZGF0 YSkKPj4+ICt7Cj4+PiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3It PmhkY3AucG9ydF9kYXRhOwo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+Pj4gKwlzdHJ1Y3QgaTkxNV9oZGNwX2Nv bXBfbWFzdGVyICpjb21wOwo+Pj4gKwlpbnQgcmV0Owo+Pj4gKwo+Pj4gKwltdXRleF9sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4+ICsJY29tcCA9IGRldl9wcml2LT5oZGNwX21h c3RlcjsKPj4+ICsKPj4+ICsJaWYgKCFjb21wIHx8ICFjb21wLT5vcHMpIHsKPj4+ICsJCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCQlyZXR1cm4gLUVJTlZB TDsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlyZXQgPSBjb21wLT5vcHMtPmluaXRpYXRlX2hkY3AyX3Nl c3Npb24oY29tcC0+bWVpX2RldiwgZGF0YSwgYWtlX2RhdGEpOwo+Pj4gKwlpZiAocmV0KQo+Pj4g KwkJRFJNX0RFQlVHX0tNUygiUHJlcGFyZV9ha2VfaW5pdCBmYWlsZWQuICVkXG4iLCByZXQpOwo+ Pj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwo+Pj4g KwlyZXR1cm4gcmV0Owo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51 c2VkKSkgaW50Cj4+PiAraGRjcDJfdmVyaWZ5X3J4X2NlcnRfcHJlcGFyZV9rbShzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4+PiArCQkJCXN0cnVjdCBoZGNwMl9ha2Vfc2VuZF9j ZXJ0ICpyeF9jZXJ0LAo+Pj4gKwkJCQlib29sICpwYWlyZWQsCj4+PiArCQkJCXN0cnVjdCBoZGNw Ml9ha2Vfbm9fc3RvcmVkX2ttICpla19wdWJfa20sCj4+PiArCQkJCXNpemVfdCAqbXNnX3N6KQo+ Pj4gK3sKPj4+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRj cC5wb3J0X2RhdGE7Cj4+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+PiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9t YXN0ZXIgKmNvbXA7Cj4+PiArCWludCByZXQ7Cj4+PiArCj4+PiArCW11dGV4X2xvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVy Owo+Pj4gKwo+Pj4gKwlpZiAoIWNvbXAgfHwgIWNvbXAtPm9wcykgewo+Pj4gKwkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4+ICsJCXJldHVybiAtRUlOVkFMOwo+ Pj4gKwl9Cj4+PiArCj4+PiArCXJldCA9IGNvbXAtPm9wcy0+dmVyaWZ5X3JlY2VpdmVyX2NlcnRf cHJlcGFyZV9rbShjb21wLT5tZWlfZGV2LCBkYXRhLAo+Pj4gKwkJCQkJCQkgcnhfY2VydCwgcGFp cmVkLAo+Pj4gKwkJCQkJCQkgZWtfcHViX2ttLCBtc2dfc3opOwo+Pj4gKwlpZiAocmV0IDwgMCkK Pj4+ICsJCURSTV9ERUJVR19LTVMoIlZlcmlmeSByeF9jZXJ0IGZhaWxlZC4gJWRcbiIsIHJldCk7 Cj4+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCj4+ PiArCXJldHVybiByZXQ7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1 bnVzZWQpKSBpbnQKPj4+ICtoZGNwMl92ZXJpZnlfaHByaW1lKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPj4+ICsJCSAgICBzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfaHByaW1lICpy eF9ocHJpbWUpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29u bmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKPj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPj4+ICsJc3RydWN0IGk5MTVf aGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4+ICsJaW50IHJldDsKPj4+ICsKPj4+ICsJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCWNvbXAgPSBkZXZfcHJpdi0+ aGRjcF9tYXN0ZXI7Cj4+PiArCj4+PiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4+PiAr CQltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4+PiArCX0KPj4+ICsKPj4+ICsJcmV0ID0gY29tcC0+b3BzLT52ZXJpZnlfaHBy aW1lKGNvbXAtPm1laV9kZXYsIGRhdGEsIHJ4X2hwcmltZSk7Cj4+PiArCWlmIChyZXQgPCAwKQo+ Pj4gKwkJRFJNX0RFQlVHX0tNUygiVmVyaWZ5IGhwcmltZSBmYWlsZWQuICVkXG4iLCByZXQpOwo+ Pj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwo+Pj4g KwlyZXR1cm4gcmV0Owo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51 c2VkKSkgaW50Cj4+PiAraGRjcDJfc3RvcmVfcGFpcmluZ19pbmZvKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPj4+ICsJCQkgc3RydWN0IGhkY3AyX2FrZV9zZW5kX3BhaXJpbmdf aW5mbyAqcGFpcmluZ19pbmZvKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpk YXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4+PiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+PiArCXN0 cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7Cj4+PiArCWludCByZXQ7Cj4+PiArCj4+ PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwljb21wID0g ZGV2X3ByaXYtPmhkY3BfbWFzdGVyOwo+Pj4gKwo+Pj4gKwlpZiAoIWNvbXAgfHwgIWNvbXAtPm9w cykgewo+Pj4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4+ ICsJCXJldHVybiAtRUlOVkFMOwo+Pj4gKwl9Cj4+PiArCj4+PiArCXJldCA9IGNvbXAtPm9wcy0+ c3RvcmVfcGFpcmluZ19pbmZvKGNvbXAtPm1laV9kZXYsIGRhdGEsIHBhaXJpbmdfaW5mbyk7Cj4+ PiArCWlmIChyZXQgPCAwKQo+Pj4gKwkJRFJNX0RFQlVHX0tNUygiU3RvcmUgcGFpcmluZyBpbmZv IGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3Bf Y29tcF9tdXRleCk7Cj4+PiArCj4+PiArCXJldHVybiByZXQ7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0 YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPj4+ICtoZGNwMl9wcmVwYXJlX2xjX2lu aXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4gKwkJICAgICAgc3RydWN0 IGhkY3AyX2xjX2luaXQgKmxjX2luaXQpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgaGRjcF9wb3J0X2Rh dGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKPj4+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPj4+ ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4+ICsJaW50IHJldDsKPj4+ ICsKPj4+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCWNv bXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4+PiArCj4+PiArCWlmICghY29tcCB8fCAhY29t cC0+b3BzKSB7Cj4+PiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgp Owo+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+PiArCX0KPj4+ICsKPj4+ICsJcmV0ID0gY29tcC0+ b3BzLT5pbml0aWF0ZV9sb2NhbGl0eV9jaGVjayhjb21wLT5tZWlfZGV2LCBkYXRhLCBsY19pbml0 KTsKPj4+ICsJaWYgKHJldCA8IDApCj4+PiArCQlEUk1fREVCVUdfS01TKCJQcmVwYXJlIGxjX2lu aXQgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRj cF9jb21wX211dGV4KTsKPj4+ICsKPj4+ICsJcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArCj4+PiAr c3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+Pj4gK2hkY3AyX3ZlcmlmeV9scHJp bWUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4gKwkJICAgIHN0cnVjdCBo ZGNwMl9sY19zZW5kX2xwcmltZSAqcnhfbHByaW1lKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGhkY3Bf cG9ydF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4+PiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRl dik7Cj4+PiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7Cj4+PiArCWludCBy ZXQ7Cj4+PiArCj4+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+ Pj4gKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVyOwo+Pj4gKwo+Pj4gKwlpZiAoIWNvbXAg fHwgIWNvbXAtPm9wcykgewo+Pj4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21w X211dGV4KTsKPj4+ICsJCXJldHVybiAtRUlOVkFMOwo+Pj4gKwl9Cj4+PiArCj4+PiArCXJldCA9 IGNvbXAtPm9wcy0+dmVyaWZ5X2xwcmltZShjb21wLT5tZWlfZGV2LCBkYXRhLCByeF9scHJpbWUp Owo+Pj4gKwlpZiAocmV0IDwgMCkKPj4+ICsJCURSTV9ERUJVR19LTVMoIlZlcmlmeSBMX1ByaW1l IGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3Bf Y29tcF9tdXRleCk7Cj4+PiArCj4+PiArCXJldHVybiByZXQ7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0 YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+Pj4gK2ludCBoZGNwMl9wcmVwYXJlX3NrZXko c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4gKwkJICAgICAgIHN0cnVjdCBo ZGNwMl9za2Vfc2VuZF9la3MgKnNrZV9kYXRhKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGhkY3BfcG9y dF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4+PiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7 Cj4+PiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7Cj4+PiArCWludCByZXQ7 Cj4+PiArCj4+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4g Kwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVyOwo+Pj4gKwo+Pj4gKwlpZiAoIWNvbXAgfHwg IWNvbXAtPm9wcykgewo+Pj4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211 dGV4KTsKPj4+ICsJCXJldHVybiAtRUlOVkFMOwo+Pj4gKwl9Cj4+PiArCj4+PiArCXJldCA9IGNv bXAtPm9wcy0+Z2V0X3Nlc3Npb25fa2V5KGNvbXAtPm1laV9kZXYsIGRhdGEsIHNrZV9kYXRhKTsK Pj4+ICsJaWYgKHJldCA8IDApCj4+PiArCQlEUk1fREVCVUdfS01TKCJHZXQgc2Vzc2lvbiBrZXkg ZmFpbGVkLiAlZFxuIiwgcmV0KTsKPj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9j b21wX211dGV4KTsKPj4+ICsKPj4+ICsJcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArCj4+PiArc3Rh dGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+Pj4gK2hkY3AyX3ZlcmlmeV9yZXBfdG9w b2xvZ3lfcHJlcGFyZV9hY2soc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4g KwkJCQkgICAgICBzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRfcmVjZWl2ZXJpZF9saXN0Cj4+PiArCQkJ CQkJCQkqcmVwX3RvcG9sb2d5LAo+Pj4gKwkJCQkgICAgICBzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRf YWNrICpyZXBfc2VuZF9hY2spCj4+PiArewo+Pj4gKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRh dGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKPj4+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPj4+ICsJc3Ry dWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4+ICsJaW50IHJldDsKPj4+ICsKPj4+ ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCWNvbXAgPSBk ZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4+PiArCj4+PiArCWlmICghY29tcCB8fCAhY29tcC0+b3Bz KSB7Cj4+PiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4g KwkJcmV0dXJuIC1FSU5WQUw7Cj4+PiArCX0KPj4+ICsKPj4+ICsJcmV0ID0gY29tcC0+b3BzLT5y ZXBlYXRlcl9jaGVja19mbG93X3ByZXBhcmVfYWNrKGNvbXAtPm1laV9kZXYsIGRhdGEsCj4+PiAr CQkJCQkJCSByZXBfdG9wb2xvZ3ksCj4+PiArCQkJCQkJCSByZXBfc2VuZF9hY2spOwo+Pj4gKwlp ZiAocmV0IDwgMCkKPj4+ICsJCURSTV9ERUJVR19LTVMoIlZlcmlmeSByZXAgdG9wb2xvZ3kgZmFp bGVkLiAlZFxuIiwgcmV0KTsKPj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21w X211dGV4KTsKPj4+ICsKPj4+ICsJcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGlj IF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGludAo+Pj4gK2hkY3AyX3ZlcmlmeV9tcHJpbWUoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4gKwkJICAgIHN0cnVjdCBoZGNwMl9y ZXBfc3RyZWFtX3JlYWR5ICpzdHJlYW1fcmVhZHkpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgaGRjcF9w b3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKPj4+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2 KTsKPj4+ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29tcDsKPj4+ICsJaW50IHJl dDsKPj4+ICsKPj4+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+ PiArCWNvbXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4+PiArCj4+PiArCWlmICghY29tcCB8 fCAhY29tcC0+b3BzKSB7Cj4+PiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBf bXV0ZXgpOwo+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+PiArCX0KPj4+ICsKPj4+ICsJcmV0ID0g Y29tcC0+b3BzLT52ZXJpZnlfbXByaW1lKGNvbXAtPm1laV9kZXYsIGRhdGEsIHN0cmVhbV9yZWFk eSk7Cj4+PiArCWlmIChyZXQgPCAwKQo+Pj4gKwkJRFJNX0RFQlVHX0tNUygiVmVyaWZ5IG1wcmlt ZSBmYWlsZWQuICVkXG4iLCByZXQpOwo+Pj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5oZGNw X2NvbXBfbXV0ZXgpOwo+Pj4gKwo+Pj4gKwlyZXR1cm4gcmV0Owo+Pj4gK30KPj4+ICsKPj4+ICtz dGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKPj4+ICtpbnQgaGRjcDJfYXV0aGVudGljYXRl X3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+Pj4gK3sKPj4+ICsJc3Ry dWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4+ PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9y LT5iYXNlLmRldik7Cj4+PiArCXN0cnVjdCBpOTE1X2hkY3BfY29tcF9tYXN0ZXIgKmNvbXA7Cj4+ PiArCWludCByZXQ7Cj4+PiArCj4+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5oZGNwX2NvbXBf bXV0ZXgpOwo+Pj4gKwljb21wID0gZGV2X3ByaXYtPmhkY3BfbWFzdGVyOwo+Pj4gKwo+Pj4gKwlp ZiAoIWNvbXAgfHwgIWNvbXAtPm9wcykgewo+Pj4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ aGRjcF9jb21wX211dGV4KTsKPj4+ICsJCXJldHVybiAtRUlOVkFMOwo+Pj4gKwl9Cj4+PiArCj4+ PiArCXJldCA9IGNvbXAtPm9wcy0+ZW5hYmxlX2hkY3BfYXV0aGVudGljYXRpb24oY29tcC0+bWVp X2RldiwgZGF0YSk7Cj4+PiArCWlmIChyZXQgPCAwKQo+Pj4gKwkJRFJNX0RFQlVHX0tNUygiRW5h YmxlIGhkY3AgYXV0aCBmYWlsZWQuICVkXG4iLCByZXQpOwo+Pj4gKwltdXRleF91bmxvY2soJmRl dl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwo+Pj4gKwlyZXR1cm4gcmV0Owo+Pj4gK30K Pj4+ICsKPj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKPj4+ICtpbnQgaGRjcDJf Y2xvc2VfbWVpX3Nlc3Npb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+Pj4g K3sKPj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25u ZWN0b3ItPmJhc2UuZGV2KTsKPj4+ICsJc3RydWN0IGk5MTVfaGRjcF9jb21wX21hc3RlciAqY29t cDsKPj4+ICsJaW50IHJldDsKPj4+ICsKPj4+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhkY3Bf Y29tcF9tdXRleCk7Cj4+PiArCWNvbXAgPSBkZXZfcHJpdi0+aGRjcF9tYXN0ZXI7Cj4+PiArCj4+ PiArCWlmICghY29tcCB8fCAhY29tcC0+b3BzKSB7Cj4+PiArCQltdXRleF91bmxvY2soJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+PiArCX0KPj4+ ICsKPj4+ICsJcmV0ID0gY29tcC0+b3BzLT5jbG9zZV9oZGNwX3Nlc3Npb24oY29tcC0+bWVpX2Rl diwKPj4+ICsJCQkJCSAgICAgJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGEpOwo+Pj4gKwltdXRl eF91bmxvY2soJmRldl9wcml2LT5oZGNwX2NvbXBfbXV0ZXgpOwo+Pj4gKwo+Pj4gKwlyZXR1cm4g cmV0Owo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKPj4+ ICtpbnQgaGRjcDJfZGVhdXRoZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCj4+PiArewo+Pj4gKwlyZXR1cm4gaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24oY29u bmVjdG9yKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGludCBpOTE1X2hkY3BfY29tcG9uZW50 X2JpbmQoc3RydWN0IGRldmljZSAqaTkxNV9rZGV2LAo+Pj4gKwkJCQkgICAgc3RydWN0IGRldmlj ZSAqbWVpX2tkZXYsIHZvaWQgKmRhdGEpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoaTkxNV9rZGV2KTsKPj4+ICsKPj4+ICsJRFJN X0RFQlVHKCJJOTE1IEhEQ1AgY29tcCBiaW5kXG4iKTsKPj4+ICsJbXV0ZXhfbG9jaygmZGV2X3By aXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCWRldl9wcml2LT5oZGNwX21hc3RlciA9IChzdHJ1 Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICopZGF0YTsKPj4+ICsJZGV2X3ByaXYtPmhkY3BfbWFz dGVyLT5tZWlfZGV2ID0gbWVpX2tkZXY7Cj4+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhk Y3BfY29tcF9tdXRleCk7Cj4+PiArCj4+PiArCXJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtz dGF0aWMgdm9pZCBpOTE1X2hkY3BfY29tcG9uZW50X3VuYmluZChzdHJ1Y3QgZGV2aWNlICppOTE1 X2tkZXYsCj4+PiArCQkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlICptZWlfa2Rldiwgdm9pZCAqZGF0 YSkKPj4+ICt7Cj4+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZf dG9faTkxNShpOTE1X2tkZXYpOwo+Pj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9w cml2LT5kcm07Cj4+PiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcjsK Pj4+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPj4+ICsJc3RydWN0IGRybV9j b25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPj4+ICsKPj4+ICsJRFJNX0RFQlVHKCJJOTE1 IEhEQ1AgY29tcCB1bmJpbmRcbiIpOwo+Pj4gKwo+Pj4gKwkvKiBPbmNlIHRoZSBjb21wb25lbnQg aXMgdW5iaW5kLCBEaXNhYmxlIEhEQ1AyLjIgb24gYWxsIGNvbm5lY3RvcnMgKi8KPj4+ICsJZHJt X2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmY29ubl9pdGVyKTsKPj4+ICsJZHJtX2Zv cl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgewo+Pj4gKwkJaW50 ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4+PiArCQkJaW50 ZWxfaGRjcF9kaXNhYmxlKGludGVsX2Nvbm5lY3Rvcik7Cj4+PiArCX0KPj4+ICsJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwo+PiBJIHBsYXllZCB0aGlzIHRocm91Z2gs IGFuZCBJIHRoaW5rIHdlIGhhdmUgYSBidWcgaGVyZS4KPj4KPj4gMS4gVXNlcnNwYWNlIGFza3Mg Zm9yIGhkY3AsIHNldHMgY29ubmVjdG9yX3N0YXRlLT5jb250ZW50X3Byb3RlY3Rpb24gdG8KPj4g REVTSVJFRAo+PiAyLiBoZGNwIGlzIGVuYWJsZWQsIHVzZXJzcGFjZSB2aXNpYmxlIHZhbHVlIGlz IG5vdyBFTkFCTEVECj4+IDIuIG1laSB1bmxvYWRzCj4+IDMuIHdlIGRpc2FibGUgY29udGVudCBw cm90ZWN0aW9uIGhlcmUKPj4gNC4gaGRjcC0+dmFsdWUgaXMgc2V0IHRvIFVOREVTSVJFRAo+PiA1 LiBpbnRlbF9oZGNwX3Byb3Bfd29yayBkb2VzIF9ub3RfIHVwZGF0ZQo+PiBjb25uZWN0b3Jfc3Rh dGUtPmNvbnRlbnRfcHJvdGVjdGlvbiAodGhpcyBpcyBjb3JyZWN0LCBiZWNhdXNlIG90aGVyd2lz ZQo+PiBkcG1zIG9mZi9vbiB3b3VsZCBicmVhayBhbmQgd2Ugd291bGQgbm90IHRyeSB0byByZXN0 b3JlKQo+PiA2LiBVc2Vyc3BhY2Ugc3RpbGwgc2VlcyBFTkFCTEVELCB3aGljaCBpcyB3cm9uZwo+ Pgo+PiBJIHRoaW5rIHRoZSBiZXR0ZXIgc29sdXRpb24gaXMgdG8gbm90IGNhbGwgaW50ZWxfaGRj cF9kaXNhYmxlIGhlcmUgYXQgYWxsLAo+PiBidXQgaW5zdGVhZCB3YWl0IGZvciB0aGUgbGluayBz dGF0dXMgY2hlY2sgd29yayB0byBub3RpY2UgdGhhdCBNRSBpcyBnb25lLAo+PiB3aGljaCB3aWxs IHRoZSBjb3JyZWN0bHkgY2hhbmdlIHN0YXR1cyBmcm9tIEVOQUJMRUQgdG8gREVTSVJFRC4KRGFu aWVsLAoKSXQgaXMgYSBlbWJhcnJhc3NpbmcgbWlzcyBmcm9tIG15IHNpZGUuCkJ1dCBjYW4gYmUg Zml4ZWQgdXNpbmcgdGhlIF9faW50ZWxfaGRjcCgxLzIpX2Rpc2FibGUgYW5kIHNldHRpbmcgdGhl IApoZGNwLT52YWwgdG8gZGVzaXJlZCBhbmQgaW52b2tpbmcgdGhlIHByb3Bfd29yay4KClBlcmhh cHMsIGFzIHlvdSBtZW50aW9uZWQgd2UgY291bGQgbGVhdmUgaXQgdG8gdGhlIGxpbmsgaW50ZWdy aXR5IGNoZWNrIAphbHNvIHRvIGRvIHRoZSBzYW1lLiBCdXQgaXQgd2lsbCBiZSBuZWVkIHRvIGtp bGwgaXQgaGVyZS4KCi1SYW0KPj4KPj4gU28ganVzdCB0aGUgYmVsb3cgY29kZSBpcyBuZWVkZWQg SSB0aGluawo+Pgo+PiBPdGhlcndpc2UgbG9va3MgZ29vZCB0byBtZSwgd2l0aCB0aGUgZWJvdmUg bG9vcCByZW1vdmVkOgo+Pgo+PiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KPj4KPj4KPj4+ICsKPj4+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhk Y3BfY29tcF9tdXRleCk7Cj4+PiArCWRldl9wcml2LT5oZGNwX21hc3RlciA9IE5VTEw7Cj4+PiAr CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArfQo+Pj4gKwo+ Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyBpOTE1X2hkY3BfY29tcG9uZW50 X29wcyA9IHsKPj4+ICsJLmJpbmQgICA9IGk5MTVfaGRjcF9jb21wb25lbnRfYmluZCwKPj4+ICsJ LnVuYmluZCA9IGk5MTVfaGRjcF9jb21wb25lbnRfdW5iaW5kLAo+Pj4gK307Cj4+PiArCj4+PiAr c3RhdGljIGludCBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPj4+ICt7Cj4+PiArCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNv bm5lY3Rvci0+aGRjcDsKPj4+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmhkY3At PnBvcnRfZGF0YTsKPj4+ICsKPj4+ICsJZGF0YS0+cG9ydCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+ cG9ydDsKPj4+ICsJZGF0YS0+cG9ydF90eXBlID0gKHU4KUhEQ1BfUE9SVF9UWVBFX0lOVEVHUkFU RUQ7Cj4+PiArCWRhdGEtPnByb3RvY29sID0gKHU4KWhkY3AtPnNoaW0tPnByb3RvY29sOwo+Pj4g Kwo+Pj4gKwlkYXRhLT5rID0gMTsKPj4+ICsJaWYgKCFkYXRhLT5zdHJlYW1zKQo+Pj4gKwkJZGF0 YS0+c3RyZWFtcyA9IGtjYWxsb2MoZGF0YS0+aywKPj4+ICsJCQkJCXNpemVvZihzdHJ1Y3QgaGRj cDJfc3RyZWFtaWRfdHlwZSksCj4+PiArCQkJCQlHRlBfS0VSTkVMKTsKPj4+ICsJaWYgKCFkYXRh LT5zdHJlYW1zKSB7Cj4+PiArCQlEUk1fRVJST1IoIk91dCBvZiBNZW1vcnlcbiIpOwo+Pj4gKwkJ cmV0dXJuIC1FTk9NRU07Cj4+PiArCX0KPj4+ICsKPj4+ICsJZGF0YS0+c3RyZWFtc1swXS5zdHJl YW1faWQgPSAwOwo+Pj4gKwlkYXRhLT5zdHJlYW1zWzBdLnN0cmVhbV90eXBlID0gaGRjcC0+Y29u dGVudF90eXBlOwo+Pj4gKwo+Pj4gKwlyZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiAgIHN0YXRp YyBib29sIGlzX2hkY3AyX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+PiAgIHsKPj4+ICAgCWlmICghSVNfRU5BQkxFRChDT05GSUdfSU5URUxfTUVJX0hEQ1Ap KQo+Pj4gQEAgLTg0Myw5ICsxMTk5LDQyIEBAIHN0YXRpYyBib29sIGlzX2hkY3AyX3N1cHBvcnRl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+PiAgIAo+Pj4gICBzdGF0aWMg dm9pZCBpbnRlbF9oZGNwMl9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK Pj4+ICAgewo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+Pj4gICAJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAm Y29ubmVjdG9yLT5oZGNwOwo+Pj4gKwlib29sIGFkZF9jb21wb25lbnQgPSBmYWxzZTsKPj4+ICsJ aW50IHJldDsKPj4+ICsKPj4+ICsJcmV0ID0gaW5pdGlhbGl6ZV9oZGNwX3BvcnRfZGF0YShjb25u ZWN0b3IpOwo+Pj4gKwlpZiAocmV0KSB7Cj4+PiArCQlEUk1fREVCVUdfS01TKCJNZWkgaGRjcCBk YXRhIGluaXQgZmFpbGVkXG4iKTsKPj4+ICsJCXJldHVybjsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlt dXRleF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4+ICsJLyoKPj4+ICsJICog Q29tcG9uZW50IGZvciBtZWkgaXMgY29tbW9uIGFjcm9zcyB0aGUgY29ubmVjdG9yLgo+Pj4gKwkg KiBBZGRpbmcgdGhlIGNvbXBvbmVudCBvbmNlIGlzIHN1ZmZpY2llbnQuCj4+PiArCSAqLwo+Pj4g KwlpZiAoIWRldl9wcml2LT5oZGNwX2NvbXBfYWRkZWQpIHsKPj4+ICsJCWRldl9wcml2LT5oZGNw X2NvbXBfYWRkZWQgPSB0cnVlOwo+Pj4gKwkJYWRkX2NvbXBvbmVudCA9IHRydWU7Cj4+PiArCX0K Pj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4+ICsKPj4+ ICsJaWYgKGFkZF9jb21wb25lbnQpIHsKPiBUaGlzIG9uZSAoYW5kIHRoZSBzaW1pbGFyIGNvZGUg aW4gdGhlIGRlc3Ryb3kgcGF0aCkgaXMgYSBiaXQgYXdrd2FyZCBmb3IKPiB0d28gcmVhc29uczoK PiAtIEJlY2F1c2Ugb2YgZHAgbXN0IGhvdHBsdWcvdW5wbHVnIHlvdSBuZWVkIGEgbG9jayB0byBt YWtlIHN1cmUgd2UKPiAgICByZWdpc3RlciBvbmx5IG9uY2UsIHVzdWFsbHkgc2V0dXAgJiB0ZWFy ZG93biBjb2RlIGRvZXNuJ3QgbmVlZCBhbnkKPiAgICBsb2NraW5nIGF0IGFsbCBiZWNhdXNlIGl0 J3MgYWxsIHNpbmdsZS10aHJlYWRlZC4KPiAtIC0+aGRjcF9jb21wX2FkZGVkIGJvaWxzIGRvd24g dG8gImhhdmUgd2UgbG9hZGVkIGk5MTUiLgpBZGRlZCBiZWNhdXNlIG9mIHRoZSBwbGFjZSB3ZSBh cmUgYWRkaW5nIHRoZSBjb21wb25lbnQgLiBpLmUgCmNvbm5lY3Rvcl9pbml0IHdoaWNoIGhhcHBl bnMgcGVyIGNvbm5lY3Rvci4gSWYgd2UgbW92ZSB0aGlzIG91dCBvZiAKY29ubmVjdG9yX2luaXQg d2UgZG9udCBuZWVkIHRoaXMgZmxhZy4KPgo+IEkgdGhpbmsgaXQgd291bGQgYmUgbmljZSB0byBo YXZlIGEgc2VwYXJhdGUgaW50ZWxfaGRjcF9tZWlfY29tcF9pbml0L2ZpbmksCj4gd2hpY2ggaXMg Y2FsbGVkIG9ubHkgb25jZSAoZnJvbSBtb2RlX2NvbmZpZyBzZXR1cC90ZWFyZG93biBmdW5jdGlv bnMKPiBwZXJoYXBzKSBpbiB0aGUgZHJpdmVyIGxvYWQvdW5sb2FkIGNvZGUsIHdoaWNoIHdvdWxk IGF2b2lkIGJvdGggaXNzdWVzLgpTdXJlIEkgd2lsbCBtb3ZlIGl0IG91dC4KClRoYW5rcwotUmFt Lgo+Cj4gQmVjYXVzZSB0aGUgY29kZSBpcyBhbHJlYWR5IHByb3RlY3RlZCB3aXRoIHRoZSBtdXRl eCBhZ2FpbnN0IHRoZSBtZWkgaGRjcAo+IGRyaXZlciBhcHBlYXJpbmcvZGlzYXBwZWFyaW5nIGFu eSB0aW1lIGl0IHdhbnRzIHRvIHRoaXMgd2lsbCBub3QgY2F1c2UgYW4KPiBhZGRpdGlvbmFsIHBy b2JsZW0uIFNvIHdvdWxkIGJlIG5pY2UgdG8gc2ltcGxpZnkuCj4KPiBDaGVlcnMsIERhbmllbAo+ Cj4+PiArCQlyZXQgPSBjb21wb25lbnRfYWRkX3R5cGVkKGRldl9wcml2LT5kcm0uZGV2LAo+Pj4g KwkJCQkJICAmaTkxNV9oZGNwX2NvbXBvbmVudF9vcHMsCj4+PiArCQkJCQkgIEk5MTVfQ09NUE9O RU5UX0hEQ1ApOwo+Pj4gKwkJaWYgKHJldCA8IDApIHsKPj4+ICsJCQlEUk1fREVCVUdfS01TKCJG YWlsZWQgYXQgY29tcG9uZW50IGFkZCglZClcbiIsIHJldCk7Cj4+PiArCQkJbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCQkJZGV2X3ByaXYtPmhkY3BfY29tcF9h ZGRlZCA9IGZhbHNlOwo+Pj4gKwkJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmhkY3BfY29tcF9t dXRleCk7Cj4+PiArCQkJa2ZyZWUoaGRjcC0+cG9ydF9kYXRhLnN0cmVhbXMpOwo+Pj4gKwkJCXJl dHVybjsKPj4+ICsJCX0KPj4+ICsJfQo+Pj4gICAKPj4+IC0JLyogVE9ETzogTUVJIGludGVyZmFj ZSBuZWVkcyB0byBiZSBpbml0aWFsaXplZCBoZXJlICovCj4+PiAgIAloZGNwLT5oZGNwMl9zdXBw b3J0ZWQgPSB0cnVlOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gQEAgLTkxNyw2ICsxMzA2LDM4IEBAIGlu dCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ Pj4gICAJcmV0dXJuIHJldDsKPj4+ICAgfQo+Pj4gICAKPj4+ICt2b2lkIGludGVsX2hkY3BfY2xl YW51cChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+PiArewo+Pj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5k ZXYpOwo+Pj4gKwo+Pj4gKwlpZiAoIWNvbm5lY3Rvci0+aGRjcC5zaGltKQo+Pj4gKwkJcmV0dXJu Owo+Pj4gKwo+Pj4gKwltdXRleF9sb2NrKCZjb25uZWN0b3ItPmhkY3AubXV0ZXgpOwo+Pj4gKwlp ZiAoIWNvbm5lY3Rvci0+aGRjcC5oZGNwMl9zdXBwb3J0ZWQpIHsKPj4+ICsJCW11dGV4X3VubG9j aygmY29ubmVjdG9yLT5oZGNwLm11dGV4KTsKPj4+ICsJCXJldHVybjsKPj4+ICsJfQo+Pj4gKwo+ Pj4gKwlrZnJlZShjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhLnN0cmVhbXMpOwo+Pj4gKwltdXRl eF9sb2NrKCZkZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4+ICsJLyoKPj4+ICsJICogQ29t cG9uZW50IGZvciBtZWkgaXMgY29tbW9uIGFjcm9zcyB0aGUgY29ubmVjdG9yLgo+Pj4gKwkgKiBS ZW1vdmluZyB0aGUgY29tcG9uZW50IG9uY2UgaXMgc3VmZmljaWVudC4KPj4+ICsJICovCj4+PiAr CWlmICghZGV2X3ByaXYtPmhkY3BfY29tcF9hZGRlZCkgewo+Pj4gKwkJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+aGRjcF9jb21wX211dGV4KTsKPj4+ICsJCW11dGV4X3VubG9jaygmY29ubmVjdG9y LT5oZGNwLm11dGV4KTsKPj4+ICsJCXJldHVybjsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlkZXZfcHJp di0+aGRjcF9jb21wX2FkZGVkID0gZmFsc2U7Cj4+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmhkY3BfY29tcF9tdXRleCk7Cj4+PiArCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5oZGNwLm11 dGV4KTsKPj4+ICsKPj4+ICsJY29tcG9uZW50X2RlbChkZXZfcHJpdi0+ZHJtLmRldiwgJmk5MTVf aGRjcF9jb21wb25lbnRfb3BzKTsKPj4+ICt9Cj4+PiArCj4+PiAgIHZvaWQgaW50ZWxfaGRjcF9h dG9taWNfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4+ICAgCQkJICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX3N0YXRlLAo+Pj4gICAJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUpCj4+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgK Pj4+IGluZGV4IDcyZmJiMDM3ZjliMy4uZjM4NTFiYTNlNGMzIDEwMDY0NAo+Pj4gLS0tIGEvaW5j bHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21w b25lbnQuaAo+Pj4gQEAgLTI0LDEwICsyNCwxMyBAQAo+Pj4gICAjaWZuZGVmIF9JOTE1X0NPTVBP TkVOVF9IXwo+Pj4gICAjZGVmaW5lIF9JOTE1X0NPTVBPTkVOVF9IXwo+Pj4gICAKPj4+ICsjaW5j bHVkZSA8bGludXgvZGV2aWNlLmg+Cj4+PiArCj4+PiAgICNpbmNsdWRlICJkcm1fYXVkaW9fY29t cG9uZW50LmgiCj4+PiAgIAo+Pj4gICBlbnVtIGk5MTVfY29tcG9uZW50X3R5cGUgewo+Pj4gICAJ STkxNV9DT01QT05FTlRfQVVESU8gPSAxLAo+Pj4gKwlJOTE1X0NPTVBPTkVOVF9IRENQLAo+Pj4g ICB9Owo+Pj4gICAKPj4+ICAgLyogTUFYX1BPUlQgaXMgdGhlIG51bWJlciBvZiBwb3J0Cj4+PiAt LSAKPj4+IDIuNy40Cj4+Pgo+PiAtLSAKPj4gRGFuaWVsIFZldHRlcgo+PiBTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=