From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carlos Santa Subject: Re: [PATCH 1/8] drm/i915/guc: Make the GuC fw loading helper functions general Date: Mon, 24 Oct 2016 14:46:42 -0700 Message-ID: <1477345602.27435.16.camel@intel.com> References: <1475520182-9224-1-git-send-email-anusha.srivatsa@intel.com> <1475520182-9224-2-git-send-email-anusha.srivatsa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 57B236E102 for ; Mon, 24 Oct 2016 21:45:44 +0000 (UTC) In-Reply-To: <1475520182-9224-2-git-send-email-anusha.srivatsa@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Anusha Srivatsa , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQtYnk6IENhcmxvcyBTYW50YSA8Y2FybG9zLnNhbnRhQGludGVsLmNvbT4KVGVzdGVk LWJ5OiBDYXJsb3MgU2FudGEgPGNhcmxvcy5zYW50YUBpbnRlbC5jb20+CgpPbiBNb24sIDIwMTYt MTAtMDMgYXQgMTE6NDIgLTA3MDAsIEFudXNoYSBTcml2YXRzYSB3cm90ZToKPiBGcm9tOiBQZXRl ciBBbnRvaW5lIDxwZXRlci5hbnRvaW5lQGludGVsLmNvbT4KPiAKPiBSZW5hbWUgc29tZSBvZiB0 aGUgR3VDIGZ3IGxvYWRpbmcgY29kZSB0byBtYWtlIHRoZW0gbW9yZSBnZW5lcmFsLiBXZQo+IHdp bGwgdXRpbGlzZSB0aGVtIGZvciBIdUMgbG9hZGluZyBhcyB3ZWxsLgo+IMKgwqDCoMKgwqBzL2lu dGVsX2d1Y19mdy9pbnRlbF91Y19mdy9nCj4gwqDCoMKgwqDCoHMvR1VDX0ZJUk1XQVJFL1VDX0ZJ Uk1XQVJFL2cKPiAKPiBTdHJ1Y3QgaW50ZWxfZ3VjX2Z3IGlzIHJlbmFtZWQgdG8gaW50ZWxfdWNf ZncuIFByZWZpeCBvZiB0dHMgbWVtYmVycywKPiBzdWNoIGFzICdndWMnIG9yICdndWNfZncnIGVp dGhlciBpcyByZW5hbWVkIHRvICd1Yycgb3IgcmVtb3ZlZCBmb3IKPiBzYW1lIHB1cnBvc2UuCj4g Cj4gdjI6IHJlYmFzZWQgb24gdG9wIG9mIG5pZ2h0bHkuCj4gwqDCoMKgwqByZWFwcGxpZWQgdGhl IHNlYXJjaC9yZXBsYWNlIGFzIHVwc3RyZWFtIGNvZGUgYXMgY2hhbmdlZC4KPiB2MzogcmViYXNl ZCBhZ2FpbiBvbiBkcm0tbmlnaHRseS4KPiB2NDogcmVtb3ZlZCBHIGZyb20gbWVzc2FnZXMgaW4g c2hhcmVkIGZ3IGZldGNoIGZ1bmN0aW9uLgo+IHY1OiByZWJhc2VkLgo+IHY3OiByZWJhc2VkLgo+ IHY4OiByZWJhc2VkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hh LnNyaXZhdHNhQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGlu dGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBQZXRlciBBbnRvaW5lIDxwZXRlci5hbnRvaW5lQGlu dGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVs LmNvbT4KPiAtLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jwqDCoMKg wqDCoMKgwqDCoHzCoMKgMTIgKy0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19z dWJtaXNzaW9uLmMgfMKgwqDCoDQgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Yy5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMzkgKysrKy0tLS0KPiDCoGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuY8KgwqDCoMKgfCAxNTYgKysrKysrKysrKysrKyst LS0tLQo+IC0tLS0tLS0tLS0KPiDCoDQgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyks IDEwNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4g aW5kZXggNGZiOWQ4Mi4uNDQyNThhOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gQEAgLTI0MTYsNyArMjQxNiw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sbGMoc3RydWN0IHNl cV9maWxlICptLCB2b2lkCj4gKmRhdGEpCj4gwqBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvYWRfc3Rh dHVzX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+IMKgewo+IMKgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLQo+ID5wcml2YXRl KTsKPiAtCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19m dzsKPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3 Owo+IMKgCXUzMiB0bXAsIGk7Cj4gwqAKPiDCoAlpZiAoIUhBU19HVUNfVUNPREUoZGV2X3ByaXYp KQo+IEBAIC0yNDI0LDE1ICsyNDI0LDE1IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9hZF9zdGF0 dXNfaW5mbyhzdHJ1Y3QKPiBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiDCoAo+IMKgCXNlcV9w cmludGYobSwgIkd1QyBmaXJtd2FyZSBzdGF0dXM6XG4iKTsKPiDCoAlzZXFfcHJpbnRmKG0sICJc dHBhdGg6ICVzXG4iLAo+IC0JCWd1Y19mdy0+Z3VjX2Z3X3BhdGgpOwo+ICsJCWd1Y19mdy0+dWNf ZndfcGF0aCk7Cj4gwqAJc2VxX3ByaW50ZihtLCAiXHRmZXRjaDogJXNcbiIsCj4gLQkJaW50ZWxf Z3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0KPiA+Z3VjX2Z3X2ZldGNoX3N0YXR1cykpOwo+ICsJ CWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7Cj4gwqAJc2Vx X3ByaW50ZihtLCAiXHRsb2FkOiAlc1xuIiwKPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIo Z3VjX2Z3LQo+ID5ndWNfZndfbG9hZF9zdGF0dXMpKTsKPiArCQlpbnRlbF91Y19md19zdGF0dXNf cmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7Cj4gwqAJc2VxX3ByaW50ZihtLCAiXHR2ZXJzaW9u IHdhbnRlZDogJWQuJWRcbiIsCj4gLQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBndWNf ZnctCj4gPmd1Y19md19taW5vcl93YW50ZWQpOwo+ICsJCWd1Y19mdy0+bWFqb3JfdmVyX3dhbnRl ZCwgZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKPiDCoAlzZXFfcHJpbnRmKG0sICJcdHZlcnNp b24gZm91bmQ6ICVkLiVkXG4iLAo+IC0JCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNf ZnctCj4gPmd1Y19md19taW5vcl9mb3VuZCk7Cj4gKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfZm91bmQs IGd1Y19mdy0+bWlub3JfdmVyX2ZvdW5kKTsKPiDCoAlzZXFfcHJpbnRmKG0sICJcdGhlYWRlcjog b2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCj4gwqAJCWd1Y19mdy0+aGVhZGVyX29mZnNldCwg Z3VjX2Z3LT5oZWFkZXJfc2l6ZSk7Cj4gwqAJc2VxX3ByaW50ZihtLCAiXHR1Q29kZTogb2Zmc2V0 IGlzICVkOyBzaXplID0gJWRcbiIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jCj4gaW5kZXggNDMzNThlMS4uNGI5Mjk0MyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAtMTA3Miw3ICsxMDcyLDcgQEAg aW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gwqAJc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKPiDCoAl1MzIgZGF0YVszXTsKPiDCoAo+IC0JaWYgKGd1 Yy0+Z3VjX2Z3Lmd1Y19md19sb2FkX3N0YXR1cyAhPSBHVUNfRklSTVdBUkVfU1VDQ0VTUykKPiAr CWlmIChndWMtPmd1Y19mdy5sb2FkX3N0YXR1cyAhPSBVQ19GSVJNV0FSRV9TVUNDRVNTKQo+IMKg CQlyZXR1cm4gMDsKPiDCoAo+IMKgCWN0eCA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKPiBA QCAtMTA5OCw3ICsxMDk4LDcgQEAgaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiDCoAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+IMKgCXUzMiBkYXRh WzNdOwo+IMKgCj4gLQlpZiAoZ3VjLT5ndWNfZncuZ3VjX2Z3X2xvYWRfc3RhdHVzICE9IEdVQ19G SVJNV0FSRV9TVUNDRVNTKQo+ICsJaWYgKGd1Yy0+Z3VjX2Z3LmxvYWRfc3RhdHVzICE9IFVDX0ZJ Uk1XQVJFX1NVQ0NFU1MpCj4gwqAJCXJldHVybiAwOwo+IMKgCj4gwqAJY3R4ID0gZGV2X3ByaXYt Pmtlcm5lbF9jb250ZXh0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiBpbmRleCBiMWJh ODY5Li5iMTM0YTQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Yy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiBAQCAtOTEsMjkg KzkxLDI5IEBAIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgewo+IMKgCXVpbnQ2NF90IHN1Ym1pc3Np b25zW0k5MTVfTlVNX0VOR0lORVNdOwo+IMKgfTsKPiDCoAo+IC1lbnVtIGludGVsX2d1Y19md19z dGF0dXMgewo+IC0JR1VDX0ZJUk1XQVJFX0ZBSUwgPSAtMSwKPiAtCUdVQ19GSVJNV0FSRV9OT05F ID0gMCwKPiAtCUdVQ19GSVJNV0FSRV9QRU5ESU5HLAo+IC0JR1VDX0ZJUk1XQVJFX1NVQ0NFU1MK PiArZW51bSBpbnRlbF91Y19md19zdGF0dXMgewo+ICsJVUNfRklSTVdBUkVfRkFJTCA9IC0xLAo+ ICsJVUNfRklSTVdBUkVfTk9ORSA9IDAsCj4gKwlVQ19GSVJNV0FSRV9QRU5ESU5HLAo+ICsJVUNf RklSTVdBUkVfU1VDQ0VTUwo+IMKgfTsKPiDCoAo+IMKgLyoKPiDCoCAqIFRoaXMgc3RydWN0dXJl IGVuY2Fwc3VsYXRlcyBhbGwgdGhlIGRhdGEgbmVlZGVkIGR1cmluZyB0aGUKPiBwcm9jZXNzCj4g wqAgKiBvZiBmZXRjaGluZywgY2FjaGluZywgYW5kIGxvYWRpbmcgdGhlIGZpcm13YXJlIGltYWdl IGludG8gdGhlCj4gR3VDLgo+IMKgICovCj4gLXN0cnVjdCBpbnRlbF9ndWNfZncgewo+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKgkJZ3VjX2RldjsKPiAtCWNvbnN0IGNoYXIgKgkJCWd1Y19md19wYXRo Owo+IC0Jc2l6ZV90CQkJCWd1Y19md19zaXplOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKglndWNfZndfb2JqOwo+IC0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19mZXRj aF9zdGF0dXM7Cj4gLQllbnVtIGludGVsX2d1Y19md19zdGF0dXMJZ3VjX2Z3X2xvYWRfc3RhdHVz Owo+IC0KPiAtCXVpbnQxNl90CQkJZ3VjX2Z3X21ham9yX3dhbnRlZDsKPiAtCXVpbnQxNl90CQkJ Z3VjX2Z3X21pbm9yX3dhbnRlZDsKPiAtCXVpbnQxNl90CQkJZ3VjX2Z3X21ham9yX2ZvdW5kOwo+ IC0JdWludDE2X3QJCQlndWNfZndfbWlub3JfZm91bmQ7Cj4gK3N0cnVjdCBpbnRlbF91Y19mdyB7 Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqdWNfZGV2Owo+ICsJY29uc3QgY2hhciAqdWNfZndfcGF0 aDsKPiArCXNpemVfdCB1Y19md19zaXplOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg KnVjX2Z3X29iajsKPiArCWVudW0gaW50ZWxfdWNfZndfc3RhdHVzIGZldGNoX3N0YXR1czsKPiAr CWVudW0gaW50ZWxfdWNfZndfc3RhdHVzIGxvYWRfc3RhdHVzOwo+ICsKPiArCXVpbnQxNl90IG1h am9yX3Zlcl93YW50ZWQ7Cj4gKwl1aW50MTZfdCBtaW5vcl92ZXJfd2FudGVkOwo+ICsJdWludDE2 X3QgbWFqb3JfdmVyX2ZvdW5kOwo+ICsJdWludDE2X3QgbWlub3JfdmVyX2ZvdW5kOwo+IMKgCj4g wqAJdWludDMyX3QgaGVhZGVyX3NpemU7Cj4gwqAJdWludDMyX3QgaGVhZGVyX29mZnNldDsKPiBA QCAtMTI0LDcgKzEyNCw3IEBAIHN0cnVjdCBpbnRlbF9ndWNfZncgewo+IMKgfTsKPiDCoAo+IMKg c3RydWN0IGludGVsX2d1YyB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IGd1Y19mdzsKPiArCXN0 cnVjdCBpbnRlbF91Y19mdyBndWNfZnc7Cj4gwqAJdWludDMyX3QgbG9nX2ZsYWdzOwo+IMKgCXN0 cnVjdCBpOTE1X3ZtYSAqbG9nX3ZtYTsKPiDCoAo+IEBAIC0xNTIsOSArMTUyLDEwIEBAIHN0cnVj dCBpbnRlbF9ndWMgewo+IMKgZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gwqBleHRlcm4gaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiDCoGV4dGVybiB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+IC1leHRlcm4gY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXBy KGVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cwo+IHN0YXR1cyk7Cj4gK2V4dGVybiBjb25zdCBjaGFy ICppbnRlbF91Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cwo+IHN0YXR1 cyk7Cj4gwqBleHRlcm4gaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwo+IMKgZXh0ZXJuIGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwo+ICt2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBpbnRlbF91Y19mdwo+ICp1Y19mdyk7Cj4gwqAKPiDCoC8qIGk5MTVfZ3VjX3N1Ym1pc3Np b24uYyAqLwo+IMKgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfbG9hZGVyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2Fk ZXIuYwo+IGluZGV4IDdhY2U5NmIuLjQ5MzI5NWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX2xvYWRlci5jCj4gQEAgLTgxLDE2ICs4MSwxNiBAQCBNT0RVTEVfRklSTVdBUkUo STkxNV9CWFRfR1VDX1VDT0RFKTsKPiDCoE1PRFVMRV9GSVJNV0FSRShJOTE1X0tCTF9HVUNfVUNP REUpOwo+IMKgCj4gwqAvKiBVc2VyLWZyaWVuZGx5IHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudW0g Ki8KPiAtY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfZ3Vj X2Z3X3N0YXR1cwo+IHN0YXR1cykKPiArY29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3Jl cHIoZW51bSBpbnRlbF91Y19md19zdGF0dXMgc3RhdHVzKQo+IMKgewo+IMKgCXN3aXRjaCAoc3Rh dHVzKSB7Cj4gLQljYXNlIEdVQ19GSVJNV0FSRV9GQUlMOgo+ICsJY2FzZSBVQ19GSVJNV0FSRV9G QUlMOgo+IMKgCQlyZXR1cm4gIkZBSUwiOwo+IC0JY2FzZSBHVUNfRklSTVdBUkVfTk9ORToKPiAr CWNhc2UgVUNfRklSTVdBUkVfTk9ORToKPiDCoAkJcmV0dXJuICJOT05FIjsKPiAtCWNhc2UgR1VD X0ZJUk1XQVJFX1BFTkRJTkc6Cj4gKwljYXNlIFVDX0ZJUk1XQVJFX1BFTkRJTkc6Cj4gwqAJCXJl dHVybiAiUEVORElORyI7Cj4gLQljYXNlIEdVQ19GSVJNV0FSRV9TVUNDRVNTOgo+ICsJY2FzZSBV Q19GSVJNV0FSRV9TVUNDRVNTOgo+IMKgCQlyZXR1cm4gIlNVQ0NFU1MiOwo+IMKgCWRlZmF1bHQ6 Cj4gwqAJCXJldHVybiAiVU5LTk9XTiEiOwo+IEBAIC0yNzQsNyArMjc0LDcgQEAgc3RhdGljIGlu bGluZSBib29sIGd1Y191Y29kZV9yZXNwb25zZShzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiDCoHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXJfZG1hKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAkJCcKgwqDCoMKgwqDCoHN0cnVjdCBpOTE1X3ZtYSAq dm1hKQo+IMKgewo+IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5n dWMuZ3VjX2Z3Owo+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1 Yy5ndWNfZnc7Cj4gwqAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7Cj4gwqAJc3RydWN0IHNnX3RhYmxl ICpzZyA9IHZtYS0+cGFnZXM7Cj4gwqAJdTMyIHN0YXR1cywgcnNhW1VPU19SU0FfU0NSQVRDSF9N QVhfQ09VTlRdOwo+IEBAIC0zNDYsMTggKzM0NiwxOCBAQCBzdGF0aWMgdTMyIGd1Y193b3BjbV9z aXplKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgICovCj4gwqBzdGF0 aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1 Y19mdzsKPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3Vj X2Z3Owo+IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlz dHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gLQlyZXQgPSBpOTE1X2dl bV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4oZ3VjX2Z3LT5ndWNfZndfb2JqLAo+IGZhbHNlKTsK PiArCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihndWNfZnctPnVjX2Z3 X29iaiwKPiBmYWxzZSk7Cj4gwqAJaWYgKHJldCkgewo+IMKgCQlEUk1fREVCVUdfRFJJVkVSKCJz ZXQtZG9tYWluIGZhaWxlZCAlZFxuIiwgcmV0KTsKPiDCoAkJcmV0dXJuIHJldDsKPiDCoAl9Cj4g wqAKPiAtCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihndWNfZnctPmd1Y19md19vYmos IE5VTEwsIDAsCj4gMCwgMCk7Cj4gKwl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oZ3Vj X2Z3LT51Y19md19vYmosIE5VTEwsIDAsCj4gMCwgMCk7Cj4gwqAJaWYgKElTX0VSUih2bWEpKSB7 Cj4gwqAJCURSTV9ERUJVR19EUklWRVIoInBpbiBmYWlsZWQgJWRcbiIsCj4gKGludClQVFJfRVJS KHZtYSkpOwo+IMKgCQlyZXR1cm4gUFRSX0VSUih2bWEpOwo+IEBAIC00NDgsMTQgKzQ0OCwxNCBA QCBzdGF0aWMgaW50IGd1Y19od19yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZf cHJpdikKPiDCoGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDC oHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7 Cj4gLQljb25zdCBjaGFyICpmd19wYXRoID0gZ3VjX2Z3LT5ndWNfZndfcGF0aDsKPiArCXN0cnVj dCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ICsJY29uc3Qg Y2hhciAqZndfcGF0aCA9IGd1Y19mdy0+dWNfZndfcGF0aDsKPiDCoAlpbnQgcmV0cmllcywgcmV0 LCBlcnI7Cj4gwqAKPiDCoAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3RhdHVzOiBwYXRoICVz LCBmZXRjaCAlcywgbG9hZAo+ICVzXG4iLAo+IMKgCQlmd19wYXRoLAo+IC0JCWludGVsX2d1Y19m d19zdGF0dXNfcmVwcihndWNfZnctCj4gPmd1Y19md19mZXRjaF9zdGF0dXMpLAo+IC0JCWludGVs X2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctCj4gPmd1Y19md19sb2FkX3N0YXR1cykpOwo+ICsJ CWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKPiArCQlpbnRl bF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7Cj4gwqAKPiDCoAkvKiBM b2FkaW5nIGZvcmJpZGRlbiwgb3Igbm8gZmlybXdhcmUgdG8gbG9hZD8gKi8KPiDCoAlpZiAoIWk5 MTUuZW5hYmxlX2d1Y19sb2FkaW5nKSB7Cj4gQEAgLTQ3MywyMSArNDczLDIxIEBAIGludCBpbnRl bF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDCoAl9Cj4gwqAKPiDCoAkvKiBG ZXRjaCBmYWlsZWQsIG9yIGFscmVhZHkgZmV0Y2hlZCBidXQgZmFpbGVkIHRvIGxvYWQ/ICovCj4g LQlpZiAoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNT KSB7Cj4gKwlpZiAoZ3VjX2Z3LT5mZXRjaF9zdGF0dXMgIT0gVUNfRklSTVdBUkVfU1VDQ0VTUykg ewo+IMKgCQllcnIgPSAtRUlPOwo+IMKgCQlnb3RvIGZhaWw7Cj4gLQl9IGVsc2UgaWYgKGd1Y19m dy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9GQUlMKQo+IHsKPiArCX0gZWxz ZSBpZiAoZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9PSBVQ19GSVJNV0FSRV9GQUlMKSB7Cj4gwqAJCWVy ciA9IC1FTk9FWEVDOwo+IMKgCQlnb3RvIGZhaWw7Cj4gwqAJfQo+IMKgCj4gwqAJZ3VjX2ludGVy cnVwdHNfcmVsZWFzZShkZXZfcHJpdik7Cj4gwqAKPiAtCWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3Rh dHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4gKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNf RklSTVdBUkVfUEVORElORzsKPiDCoAo+IMKgCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBzdGF0 dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAo+IC0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihn dWNfZnctCj4gPmd1Y19md19mZXRjaF9zdGF0dXMpLAo+IC0JCWludGVsX2d1Y19md19zdGF0dXNf cmVwcihndWNfZnctCj4gPmd1Y19md19sb2FkX3N0YXR1cykpOwo+ICsJCWludGVsX3VjX2Z3X3N0 YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKPiArCQlpbnRlbF91Y19md19zdGF0dXNf cmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7Cj4gwqAKPiDCoAllcnIgPSBpOTE1X2d1Y19zdWJt aXNzaW9uX2luaXQoZGV2X3ByaXYpOwo+IMKgCWlmIChlcnIpCj4gQEAgLTUxOSwxMSArNTE5LDEx IEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDCoAkJCcKg InJldHJ5ICVkIG1vcmUgdGltZShzKVxuIiwgZXJyLCByZXRyaWVzKTsKPiDCoAl9Cj4gwqAKPiAt CWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1M7Cj4gKwln dWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVfU1VDQ0VTUzsKPiDCoAo+IMKgCURSTV9E RUJVR19EUklWRVIoIkd1QyBmdyBzdGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAo+IC0JCWlu dGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctCj4gPmd1Y19md19mZXRjaF9zdGF0dXMpLAo+ IC0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctCj4gPmd1Y19md19sb2FkX3N0YXR1 cykpOwo+ICsJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwK PiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7Cj4gwqAK PiDCoAlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pIHsKPiDCoAkJZXJyID0gaTkxNV9n dWNfc3VibWlzc2lvbl9lbmFibGUoZGV2X3ByaXYpOwo+IEBAIC01MzUsOCArNTM1LDggQEAgaW50 IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCXJldHVybiAwOwo+ IMKgCj4gwqBmYWlsOgo+IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdVQ19G SVJNV0FSRV9QRU5ESU5HKQo+IC0JCWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJ Uk1XQVJFX0ZBSUw7Cj4gKwlpZiAoZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9PSBVQ19GSVJNV0FSRV9Q RU5ESU5HKQo+ICsJCWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9GQUlMOwo+IMKg Cj4gwqAJZ3VjX2ludGVycnVwdHNfcmVsZWFzZShkZXZfcHJpdik7Cj4gwqAJaTkxNV9ndWNfc3Vi bWlzc2lvbl9kaXNhYmxlKGRldl9wcml2KTsKPiBAQCAtNTgxLDcgKzU4MSw3IEBAIGZhaWw6Cj4g wqAJcmV0dXJuIHJldDsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdwo+ICpndWNfZncpCj4gK3Zv aWQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVs X3VjX2Z3Cj4gKnVjX2Z3KQo+IMKgewo+IMKgCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2LT5w ZGV2Owo+IMKgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gQEAgLTU5MCwxNyAr NTkwLDE3IEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZQo+ICpk ZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKPiDCoAlzaXplX3Qgc2l6ZTsKPiDCoAlp bnQgZXJyOwo+IMKgCj4gLQlEUk1fREVCVUdfRFJJVkVSKCJiZWZvcmUgcmVxdWVzdGluZyBmaXJt d2FyZTogR3VDIGZ3IGZldGNoCj4gc3RhdHVzICVzXG4iLAo+IC0JCWludGVsX2d1Y19md19zdGF0 dXNfcmVwcihndWNfZnctCj4gPmd1Y19md19mZXRjaF9zdGF0dXMpKTsKPiArCURSTV9ERUJVR19E UklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJlOiB1QyBmdyBmZXRjaAo+IHN0YXR1cyAl c1xuIiwKPiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcih1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7 Cj4gwqAKPiAtCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBndWNfZnctPmd1Y19md19wYXRo LCAmcGRldi0KPiA+ZGV2KTsKPiArCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCB1Y19mdy0+ dWNfZndfcGF0aCwgJnBkZXYtPmRldik7Cj4gwqAJaWYgKGVycikKPiDCoAkJZ290byBmYWlsOwo+ IMKgCWlmICghZncpCj4gwqAJCWdvdG8gZmFpbDsKPiDCoAo+IC0JRFJNX0RFQlVHX0RSSVZFUigi ZmV0Y2ggR3VDIGZ3IGZyb20gJXMgc3VjY2VlZGVkLCBmdyAlcFxuIiwKPiAtCQlndWNfZnctPmd1 Y19md19wYXRoLCBmdyk7Cj4gKwlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCB1QyBmdyBmcm9tICVz IHN1Y2NlZWRlZCwgZncgJXBcbiIsCj4gKwkJdWNfZnctPnVjX2Z3X3BhdGgsIGZ3KTsKPiDCoAo+ IMKgCS8qIENoZWNrIHRoZSBzaXplIG9mIHRoZSBibG9iIGJlZm9yZSBleGFtaW5pbmcgYnVmZmVy Cj4gY29udGVudHMgKi8KPiDCoAlpZiAoZnctPnNpemUgPCBzaXplb2Yoc3RydWN0IGd1Y19jc3Nf aGVhZGVyKSkgewo+IEBAIC02MTEsMzYgKzYxMSwzNiBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0 Y2goc3RydWN0IGRybV9kZXZpY2UKPiAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncp Cj4gwqAJY3NzID0gKHN0cnVjdCBndWNfY3NzX2hlYWRlciAqKWZ3LT5kYXRhOwo+IMKgCj4gwqAJ LyogRmlybXdhcmUgYml0cyBhbHdheXMgc3RhcnQgZnJvbSBoZWFkZXIgKi8KPiAtCWd1Y19mdy0+ aGVhZGVyX29mZnNldCA9IDA7Cj4gLQlndWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVhZGVy X3NpemVfZHcgLSBjc3MtCj4gPm1vZHVsdXNfc2l6ZV9kdyAtCj4gKwl1Y19mdy0+aGVhZGVyX29m ZnNldCA9IDA7Cj4gKwl1Y19mdy0+aGVhZGVyX3NpemUgPSAoY3NzLT5oZWFkZXJfc2l6ZV9kdyAt IGNzcy0KPiA+bW9kdWx1c19zaXplX2R3IC0KPiDCoAkJY3NzLT5rZXlfc2l6ZV9kdyAtIGNzcy0+ ZXhwb25lbnRfc2l6ZV9kdykgKgo+IHNpemVvZih1MzIpOwo+IMKgCj4gLQlpZiAoZ3VjX2Z3LT5o ZWFkZXJfc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkgewo+ICsJaWYgKHVj X2Z3LT5oZWFkZXJfc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkgewo+IMKg CQlEUk1fTk9URSgiQ1NTIGhlYWRlciBkZWZpbml0aW9uIG1pc21hdGNoXG4iKTsKPiDCoAkJZ290 byBmYWlsOwo+IMKgCX0KPiDCoAo+IMKgCS8qIHRoZW4sIHVDb2RlICovCj4gLQlndWNfZnctPnVj b2RlX29mZnNldCA9IGd1Y19mdy0+aGVhZGVyX29mZnNldCArIGd1Y19mdy0KPiA+aGVhZGVyX3Np emU7Cj4gLQlndWNfZnctPnVjb2RlX3NpemUgPSAoY3NzLT5zaXplX2R3IC0gY3NzLT5oZWFkZXJf c2l6ZV9kdykgKgo+IHNpemVvZih1MzIpOwo+ICsJdWNfZnctPnVjb2RlX29mZnNldCA9IHVjX2Z3 LT5oZWFkZXJfb2Zmc2V0ICsgdWNfZnctCj4gPmhlYWRlcl9zaXplOwo+ICsJdWNfZnctPnVjb2Rl X3NpemUgPSAoY3NzLT5zaXplX2R3IC0gY3NzLT5oZWFkZXJfc2l6ZV9kdykgKgo+IHNpemVvZih1 MzIpOwo+IMKgCj4gwqAJLyogbm93IFJTQSAqLwo+IMKgCWlmIChjc3MtPmtleV9zaXplX2R3ICE9 IFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQpIHsKPiDCoAkJRFJNX05PVEUoIlJTQSBrZXkgc2l6 ZSBpcyBiYWRcbiIpOwo+IMKgCQlnb3RvIGZhaWw7Cj4gwqAJfQo+IC0JZ3VjX2Z3LT5yc2Ffb2Zm c2V0ID0gZ3VjX2Z3LT51Y29kZV9vZmZzZXQgKyBndWNfZnctCj4gPnVjb2RlX3NpemU7Cj4gLQln dWNfZnctPnJzYV9zaXplID0gY3NzLT5rZXlfc2l6ZV9kdyAqIHNpemVvZih1MzIpOwo+ICsJdWNf ZnctPnJzYV9vZmZzZXQgPSB1Y19mdy0+dWNvZGVfb2Zmc2V0ICsgdWNfZnctPnVjb2RlX3NpemU7 Cj4gKwl1Y19mdy0+cnNhX3NpemUgPSBjc3MtPmtleV9zaXplX2R3ICogc2l6ZW9mKHUzMik7Cj4g wqAKPiDCoAkvKiBBdCBsZWFzdCwgaXQgc2hvdWxkIGhhdmUgaGVhZGVyLCB1Q29kZSBhbmQgUlNB LiBTaXplIG9mCj4gYWxsIHRocmVlLiAqLwo+IC0Jc2l6ZSA9IGd1Y19mdy0+aGVhZGVyX3NpemUg KyBndWNfZnctPnVjb2RlX3NpemUgKyBndWNfZnctCj4gPnJzYV9zaXplOwo+ICsJc2l6ZSA9IHVj X2Z3LT5oZWFkZXJfc2l6ZSArIHVjX2Z3LT51Y29kZV9zaXplICsgdWNfZnctCj4gPnJzYV9zaXpl Owo+IMKgCWlmIChmdy0+c2l6ZSA8IHNpemUpIHsKPiDCoAkJRFJNX05PVEUoIk1pc3NpbmcgZmly bXdhcmUgY29tcG9uZW50c1xuIik7Cj4gwqAJCWdvdG8gZmFpbDsKPiDCoAl9Cj4gwqAKPiDCoAkv KiBIZWFkZXIgYW5kIHVDb2RlIHdpbGwgYmUgbG9hZGVkIHRvIFdPUENNLiBTaXplIG9mIHRoZQo+ IHR3by4gKi8KPiAtCXNpemUgPSBndWNfZnctPmhlYWRlcl9zaXplICsgZ3VjX2Z3LT51Y29kZV9z aXplOwo+ICsJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6ZSArIHVjX2Z3LT51Y29kZV9zaXplOwo+ IMKgCWlmIChzaXplID4gZ3VjX3dvcGNtX3NpemUodG9faTkxNShkZXYpKSkgewo+IMKgCQlEUk1f Tk9URSgiRmlybXdhcmUgaXMgdG9vIGxhcmdlIHRvIGZpdCBpbiBXT1BDTVxuIik7Cj4gwqAJCWdv dG8gZmFpbDsKPiBAQCAtNjUyLDIxICs2NTIsMjEgQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNo KHN0cnVjdCBkcm1fZGV2aWNlCj4gKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQo+ IMKgCcKgKiBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBhbHRob3VnaCBhbGwgcG9pbnRlcnMg YW5kCj4gb2Zmc2V0cyBhcmUgZGVmaW5lZAo+IMKgCcKgKiBpbiB0ZXJtcyBvZiBieXRlcyAodTgp Lgo+IMKgCcKgKi8KPiAtCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0gY3NzLT5ndWNfc3df dmVyc2lvbiA+PiAxNjsKPiAtCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kID0gY3NzLT5ndWNf c3dfdmVyc2lvbiAmIDB4RkZGRjsKPiAtCj4gLQlpZiAoZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91 bmQgIT0gZ3VjX2Z3LQo+ID5ndWNfZndfbWFqb3Jfd2FudGVkIHx8Cj4gLQnCoMKgwqDCoGd1Y19m dy0+Z3VjX2Z3X21pbm9yX2ZvdW5kIDwgZ3VjX2Z3LQo+ID5ndWNfZndfbWlub3Jfd2FudGVkKSB7 Cj4gLQkJRFJNX05PVEUoIkd1QyBmaXJtd2FyZSB2ZXJzaW9uICVkLiVkLCByZXF1aXJlZAo+ICVk LiVkXG4iLAo+IC0JCQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCwgZ3VjX2Z3LQo+ID5ndWNf ZndfbWlub3JfZm91bmQsCj4gLQkJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3 LQo+ID5ndWNfZndfbWlub3Jfd2FudGVkKTsKPiArCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQgPSBj c3MtPmd1Y19zd192ZXJzaW9uID4+IDE2Owo+ICsJdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCA9IGNz cy0+Z3VjX3N3X3ZlcnNpb24gJiAweEZGRkY7Cj4gKwo+ICsJaWYgKHVjX2Z3LT5tYWpvcl92ZXJf Zm91bmQgIT0gdWNfZnctPm1ham9yX3Zlcl93YW50ZWQgfHwKPiArCcKgwqDCoMKgdWNfZnctPm1p bm9yX3Zlcl9mb3VuZCA8IHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKSB7Cj4gKwkJRFJNX05PVEUo InVDIGZpcm13YXJlIHZlcnNpb24gJWQuJWQsIHJlcXVpcmVkCj4gJWQuJWRcbiIsCj4gKwkJCXVj X2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LQo+ID5taW5vcl92ZXJfZm91bmQsCj4gKwkJCXVj X2Z3LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19mdy0KPiA+bWlub3JfdmVyX3dhbnRlZCk7Cj4gwqAJ CWVyciA9IC1FTk9FWEVDOwo+IMKgCQlnb3RvIGZhaWw7Cj4gwqAJfQo+IMKgCj4gwqAJRFJNX0RF QlVHX0RSSVZFUigiZmlybXdhcmUgdmVyc2lvbiAlZC4lZCBPSyAobWluaW11bQo+ICVkLiVkKVxu IiwKPiAtCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQsIGd1Y19mdy0KPiA+Z3VjX2Z3X21p bm9yX2ZvdW5kLAo+IC0JCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQsIGd1Y19mdy0KPiA+ Z3VjX2Z3X21pbm9yX3dhbnRlZCk7Cj4gKwkJCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3 LQo+ID5taW5vcl92ZXJfZm91bmQsCj4gKwkJCXVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19m dy0KPiA+bWlub3JfdmVyX3dhbnRlZCk7Cj4gwqAKPiDCoAltdXRleF9sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7Cj4gwqAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9mcm9tX2RhdGEoZGV2 LCBmdy0+ZGF0YSwgZnctCj4gPnNpemUpOwo+IEBAIC02NzYsMzEgKzY3NiwzMSBAQCBzdGF0aWMg dm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UKPiAqZGV2LCBzdHJ1Y3QgaW50ZWxf Z3VjX2Z3ICpndWNfZncpCj4gwqAJCWdvdG8gZmFpbDsKPiDCoAl9Cj4gwqAKPiAtCWd1Y19mdy0+ Z3VjX2Z3X29iaiA9IG9iajsKPiAtCWd1Y19mdy0+Z3VjX2Z3X3NpemUgPSBmdy0+c2l6ZTsKPiAr CXVjX2Z3LT51Y19md19vYmogPSBvYmo7Cj4gKwl1Y19mdy0+dWNfZndfc2l6ZSA9IGZ3LT5zaXpl Owo+IMKgCj4gLQlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgZmV0Y2ggc3RhdHVzIFNVQ0NFU1Ms IG9iaiAlcFxuIiwKPiAtCQkJZ3VjX2Z3LT5ndWNfZndfb2JqKTsKPiArCURSTV9ERUJVR19EUklW RVIoInVDIGZ3IGZldGNoIHN0YXR1cyBTVUNDRVNTLCBvYmogJXBcbiIsCj4gKwkJCXVjX2Z3LT51 Y19md19vYmopOwo+IMKgCj4gwqAJcmVsZWFzZV9maXJtd2FyZShmdyk7Cj4gLQlndWNfZnctPmd1 Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfU1VDQ0VTUzsKPiArCXVjX2Z3LT5mZXRj aF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9TVUNDRVNTOwo+IMKgCXJldHVybjsKPiDCoAo+IMKgZmFp bDoKPiAtCURSTV9XQVJOKCJGYWlsZWQgdG8gZmV0Y2ggdmFsaWQgR3VDIGZpcm13YXJlIGZyb20g JXMgKGVycm9yCj4gJWQpXG4iLAo+IC0JCcKgZ3VjX2Z3LT5ndWNfZndfcGF0aCwgZXJyKTsKPiAt CURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBmZXRjaCBzdGF0dXMgRkFJTDsgZXJyICVkLCBmdyAl cCwKPiBvYmogJXBcbiIsCj4gLQkJZXJyLCBmdywgZ3VjX2Z3LT5ndWNfZndfb2JqKTsKPiArCURS TV9XQVJOKCJGYWlsZWQgdG8gZmV0Y2ggdmFsaWQgdUMgZmlybXdhcmUgZnJvbSAlcyAoZXJyb3IK PiAlZClcbiIsCj4gKwkJwqB1Y19mdy0+dWNfZndfcGF0aCwgZXJyKTsKPiArCURSTV9ERUJVR19E UklWRVIoInVDIGZ3IGZldGNoIHN0YXR1cyBGQUlMOyBlcnIgJWQsIGZ3ICVwLAo+IG9iaiAlcFxu IiwKPiArCQllcnIsIGZ3LCB1Y19mdy0+dWNfZndfb2JqKTsKPiDCoAo+IMKgCW11dGV4X2xvY2so JmRldi0+c3RydWN0X211dGV4KTsKPiAtCW9iaiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKPiArCW9i aiA9IHVjX2Z3LT51Y19md19vYmo7Cj4gwqAJaWYgKG9iaikKPiDCoAkJaTkxNV9nZW1fb2JqZWN0 X3B1dChvYmopOwo+IC0JZ3VjX2Z3LT5ndWNfZndfb2JqID0gTlVMTDsKPiArCXVjX2Z3LT51Y19m d19vYmogPSBOVUxMOwo+IMKgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IMKg Cj4gwqAJcmVsZWFzZV9maXJtd2FyZShmdyk7CQkvKiBPSyBldmVuIGlmIGZ3IGlzCj4gTlVMTCAq Lwo+IC0JZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7Cj4g Kwl1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdBUkVfRkFJTDsKPiDCoH0KPiDCoAo+IMKg LyoqCj4gQEAgLTcxNSw3ICs3MTUsNyBAQCBmYWlsOgo+IMKgdm9pZCBpbnRlbF9ndWNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19m dyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3 ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+IMKgCWNvbnN0IGNoYXIgKmZ3X3BhdGg7Cj4gwqAK PiDCoAkvKiBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zICJ1c2UgcGxhdGZvcm0gZGVmYXVsdCIgKi8K PiBAQCAtNzI4LDI0ICs3MjgsMjQgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+IMKgCQlmd19wYXRoID0gTlVMTDsKPiDCoAl9IGVsc2UgaWYgKElTX1NLWUxB S0UoZGV2KSkgewo+IMKgCQlmd19wYXRoID0gSTkxNV9TS0xfR1VDX1VDT0RFOwo+IC0JCWd1Y19m dy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9IFNLTF9GV19NQUpPUjsKPiAtCQlndWNfZnctPmd1Y19m d19taW5vcl93YW50ZWQgPSBTS0xfRldfTUlOT1I7Cj4gKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2Fu dGVkID0gU0tMX0ZXX01BSk9SOwo+ICsJCWd1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCA9IFNLTF9G V19NSU5PUjsKPiDCoAl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+IMKgCQlmd19wYXRo ID0gSTkxNV9CWFRfR1VDX1VDT0RFOwo+IC0JCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9 IEJYVF9GV19NQUpPUjsKPiAtCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSBCWFRfRldf TUlOT1I7Cj4gKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gQlhUX0ZXX01BSk9SOwo+ICsJ CWd1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCA9IEJYVF9GV19NSU5PUjsKPiDCoAl9IGVsc2UgaWYg KElTX0tBQllMQUtFKGRldikpIHsKPiDCoAkJZndfcGF0aCA9IEk5MTVfS0JMX0dVQ19VQ09ERTsK PiAtCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgPSBLQkxfRldfTUFKT1I7Cj4gLQkJZ3Vj X2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkID0gS0JMX0ZXX01JTk9SOwo+ICsJCWd1Y19mdy0+bWFq b3JfdmVyX3dhbnRlZCA9IEtCTF9GV19NQUpPUjsKPiArCQlndWNfZnctPm1pbm9yX3Zlcl93YW50 ZWQgPSBLQkxfRldfTUlOT1I7Cj4gwqAJfSBlbHNlIHsKPiDCoAkJZndfcGF0aCA9ICIiOwkvKiB1 bmtub3duIGRldmljZSAqLwo+IMKgCX0KPiDCoAo+IC0JZ3VjX2Z3LT5ndWNfZGV2ID0gZGV2Owo+ IC0JZ3VjX2Z3LT5ndWNfZndfcGF0aCA9IGZ3X3BhdGg7Cj4gLQlndWNfZnctPmd1Y19md19mZXRj aF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKPiAtCWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3Rh dHVzID0gR1VDX0ZJUk1XQVJFX05PTkU7Cj4gKwlndWNfZnctPnVjX2RldiA9IGRldjsKPiArCWd1 Y19mdy0+dWNfZndfcGF0aCA9IGZ3X3BhdGg7Cj4gKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVD X0ZJUk1XQVJFX05PTkU7Cj4gKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVfTk9O RTsKPiDCoAo+IMKgCS8qIEVhcmx5IChhbmQgc2lsZW50KSByZXR1cm4gaWYgR3VDIGxvYWRpbmcg aXMgZGlzYWJsZWQgKi8KPiDCoAlpZiAoIWk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nKQo+IEBAIC03 NTUsOSArNzU1LDkgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+IMKgCWlmICgqZndfcGF0aCA9PSAnXDAnKQo+IMKgCQlyZXR1cm47Cj4gwqAKPiAtCWd1Y19m dy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9QRU5ESU5HOwo+ICsJZ3VjX2Z3 LT5mZXRjaF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9QRU5ESU5HOwo+IMKgCURSTV9ERUJVR19EUklW RVIoIkd1QyBmaXJtd2FyZSBwZW5kaW5nLCBwYXRoICVzXG4iLAo+IGZ3X3BhdGgpOwo+IC0JZ3Vj X2Z3X2ZldGNoKGRldiwgZ3VjX2Z3KTsKPiArCWludGVsX3VjX2Z3X2ZldGNoKGRldiwgZ3VjX2Z3 KTsKPiDCoAkvKiBzdGF0dXMgbXVzdCBub3cgYmUgRkFJTCBvciBTVUNDRVNTICovCj4gwqB9Cj4g wqAKPiBAQCAtNzY4LDE3ICs3NjgsMTcgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+IMKgdm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3Vj Lmd1Y19mdzsKPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMu Z3VjX2Z3Owo+IMKgCj4gwqAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IMKgCWd1 Y19pbnRlcnJ1cHRzX3JlbGVhc2UoZGV2X3ByaXYpOwo+IMKgCWk5MTVfZ3VjX3N1Ym1pc3Npb25f ZGlzYWJsZShkZXZfcHJpdik7Cj4gwqAJaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKGRldl9wcml2 KTsKPiDCoAo+IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X29iaikKPiAtCQlpOTE1X2dlbV9vYmplY3Rf cHV0KGd1Y19mdy0+Z3VjX2Z3X29iaik7Cj4gLQlndWNfZnctPmd1Y19md19vYmogPSBOVUxMOwo+ ICsJaWYgKGd1Y19mdy0+dWNfZndfb2JqKQo+ICsJCWk5MTVfZ2VtX29iamVjdF9wdXQoZ3VjX2Z3 LT51Y19md19vYmopOwo+ICsJZ3VjX2Z3LT51Y19md19vYmogPSBOVUxMOwo+IMKgCW11dGV4X3Vu bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IMKgCj4gLQlndWNfZnctPmd1Y19md19mZXRjaF9z dGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKPiArCWd1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNf RklSTVdBUkVfTk9ORTsKPiDCoH0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==