From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/6] drm/i915/kbl: Introduce Kabylake platform defition. Date: Wed, 28 Oct 2015 13:39:41 +0200 Message-ID: <87611rp6gy.fsf@intel.com> References: <1445966099-1640-1-git-send-email-rodrigo.vivi@intel.com> <1445966099-1640-3-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 887166E46A for ; Wed, 28 Oct 2015 04:38:32 -0700 (PDT) In-Reply-To: <1445966099-1640-3-git-send-email-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyNyBPY3QgMjAxNSwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PiB3cm90ZToKPiBLYWJ5bGFrZSBpcyBhIEludGVswq4gUHJvY2Vzc29yIGNvbnRhaW5pbmcgSW50 ZWzCriBIRCBHcmFwaGljcwo+IGZvbGxvd2luZyBTa3lsYWtlLgo+Cj4gSXQgaXMgR2VuOXA1LCBz byBpdCBpbmhlcml0cyBldmVyeXRoaW5nIGZyb20gU2t5bGFrZS4KPgo+IEZpcnN0IHZlcnNpb24g YWRkaW5nIFBDSSBJRHMgd2FzIGFsc28gZGVmaW5pbmcgdGhlIHBsYXRmb3JtCj4gd2l0aCBpc19z a3lsYWtlPTEuIEJ1dCB0aGlzIHdhcyBicmluZ2luZyBldmVuIG1vcmUgY29uZnVzaW9uCj4gdG8g dGhlIHBsYXRmb3JtIGRlZmluaXRpb25zLgo+Cj4gU28gbGV0J3Mgc3RhcnQgYnkgYWRkaW5nIHRo ZSBwbGF0Zm9ybSBzZXBhcmF0ZWQgZnJvbSBTa3lsYWtlCj4gYnV0IHJldXNpbmcgbW9zdCBvZiBh bGwgZmVhdHVyZXMsIGZ1bmN0aW9ucyBldGMuIExhdGVyIHdlCj4gcmViYXNlIHRoZSBQQ0ktSUQg cGF0Y2ggc28gd2UgZG9uJ3QgcmVwbGFjZSB3aGF0IG9yaWdpbmFsCj4gQXV0aG9yIGRpZCB0aGVy ZS4KPgo+IEZldyBJU19TS1lMQUtFcyBpZiBzdGF0ZW1lbnRzIGFyZSBub3QgYmVpbmcgY292ZXJl ZCBieSB0aGlzIHBhdGNoCj4gb24gcHVycG9zZToKPiAgICAtIFdvcmthcm91bmRzOiBLYWJ5bGFr ZSBpcyBkZXJpdmF0ZWQgZnJvbSBTa3lsYWtlIEgwIHNvIG5vCj4gICAgICAJCSAgVy9BcyBhcHBs eSBoZXJlLiBBbHNvIEphbmkgYWxyZWFkeSByZXdvcmtlZAo+IAkJICB0aGUgUkVWSUQgaW4gYSB3 YXkgdGhhdCB0aGV5IHdpbGwgYmUgb25seQo+IAkJICBhcHBsaWVkIHRvIHRoZSByaWdodCBwbGF0 Zm9ybSBhbmQgc3RlcHBpbmcKPiAJCSAgd2l0aG91dCBhbnkgZXh0cmEgd29yayByZXF1aXJlZCBo ZXJlLgo+ICAgIC0gR3VDOiBBIGZvbGxvd2luZyBwYXRjaCByZW1vdmVzIEthYnlsYWtlIHN1cHBv cnQgd2l0aCBhbgo+ICAgICAgCSAgZXhwbGFuYXRpb246IE5vIGZpcm13YXJlIGF2YWlsYWJsZSB5 ZXQuCj4gICAgLSBETUMvQ1NSOiBEb25lIGluIGEgc2VwYXJhdGVkIHBhdGNoIHNpbmNlIHdlIG5l ZWQgdG8gYmUgY2FyZWZ1bGwKPiAgICAgIAkgICAgICBhbmQgbG9hZCB0aGUgdmVyc2lvbiBmb3Ig cmV2aXNpb24gNyBzaW5jZQo+IAkgICAgICBLYWJ5bGFrZSBpcyBTa3lsYWtlIEgwLgoKSSB0aGlu ayBpbiB0aGlzIGNhc2UgdGhlIGNvbW1pdCBtZXNzYWdlIGNvdWxkIGJlIGNsZWFuZXIgd2l0aG91 dCBhbGwgb2YKdGhlIGhpc3RvcnkuCgpJIHRoaW5rIHlvdSd2ZSBtaXNzZWQgdXBkYXRlcyB0byBp bnRlbF9pMmMuYy4KCk90aGVyd2lzZSBMR1RNLgoKQlIsCkphbmkuCgoKPgo+IFNpZ25lZC1vZmYt Ynk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgMTYgKysrKysrKy0tLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgICAgICB8ICAzICsrLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAg IHwgIDYgKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgIHwg IDMgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgICAgICB8ICA5ICsr KystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICAgIHwgMTYgKysr KysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8IDEy ICsrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgfCAg NiArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAgICAgfCAgMyAr Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jICAgICAgIHwgIDIgKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgIHwgMTEgKysrKystLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8ICAyICstCj4gIDEzIGZp bGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBlY2E5NGQwLi41MTI1YWE1IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMTI1MiwxOCArMTI1MiwyMSBAQCBz dGF0aWMgaW50IGk5MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpCj4gIAo+ICAJCW1heF9mcmVxID0gKElTX0JST1hUT04oZGV2KSA/IHJwX3N0YXRlX2Nh cCA+PiAwIDoKPiAgCQkJICAgIHJwX3N0YXRlX2NhcCA+PiAxNikgJiAweGZmOwo+IC0JCW1heF9m cmVxICo9IChJU19TS1lMQUtFKGRldikgPyBHRU45X0ZSRVFfU0NBTEVSIDogMSk7Cj4gKwkJbWF4 X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpID8KPiArCQkJICAg ICBHRU45X0ZSRVFfU0NBTEVSIDogMSk7Cj4gIAkJc2VxX3ByaW50ZihtLCAiTG93ZXN0IChSUE4p IGZyZXF1ZW5jeTogJWRNSHpcbiIsCj4gIAkJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2LCBt YXhfZnJlcSkpOwo+ICAKPiAgCQltYXhfZnJlcSA9IChycF9zdGF0ZV9jYXAgJiAweGZmMDApID4+ IDg7Cj4gLQkJbWF4X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2KSA/IEdFTjlfRlJFUV9TQ0FMRVIg OiAxKTsKPiArCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRl dikgPwo+ICsJCQkgICAgIEdFTjlfRlJFUV9TQ0FMRVIgOiAxKTsKPiAgCQlzZXFfcHJpbnRmKG0s ICJOb21pbmFsIChSUDEpIGZyZXF1ZW5jeTogJWRNSHpcbiIsCj4gIAkJCSAgIGludGVsX2dwdV9m cmVxKGRldl9wcml2LCBtYXhfZnJlcSkpOwo+ICAKPiAgCQltYXhfZnJlcSA9IChJU19CUk9YVE9O KGRldikgPyBycF9zdGF0ZV9jYXAgPj4gMTYgOgo+ICAJCQkgICAgcnBfc3RhdGVfY2FwID4+IDAp ICYgMHhmZjsKPiAtCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFLRShkZXYpID8gR0VOOV9GUkVRX1ND QUxFUiA6IDEpOwo+ICsJCW1heF9mcmVxICo9IChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxB S0UoZGV2KSA/Cj4gKwkJCSAgICAgR0VOOV9GUkVRX1NDQUxFUiA6IDEpOwo+ICAJCXNlcV9wcmlu dGYobSwgIk1heCBub24tb3ZlcmNsb2NrZWQgKFJQMCkgZnJlcXVlbmN5OiAlZE1IelxuIiwKPiAg CQkJICAgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9mcmVxKSk7Cj4gIAkJc2VxX3ByaW50 ZihtLCAiTWF4IG92ZXJjbG9ja2VkIGZyZXF1ZW5jeTogJWRNSHpcbiIsCj4gQEAgLTE4MDEsNyAr MTgwNCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5nX2ZyZXFfdGFibGUoc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICp1bnVzZWQpCj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAtCWlm IChJU19TS1lMQUtFKGRldikpIHsKPiArCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxB S0UoZGV2KSkgewo+ICAJCS8qIENvbnZlcnQgR1QgZnJlcXVlbmN5IHRvIDUwIEhaIHVuaXRzICov Cj4gIAkJbWluX2dwdV9mcmVxID0KPiAgCQkJZGV2X3ByaXYtPnJwcy5taW5fZnJlcV9zb2Z0bGlt aXQgLyBHRU45X0ZSRVFfU0NBTEVSOwo+IEBAIC0xODIxLDcgKzE4MjQsOCBAQCBzdGF0aWMgaW50 IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ ICAJCQkJICAgICAgICZpYV9mcmVxKTsKPiAgCQlzZXFfcHJpbnRmKG0sICIlZFx0XHQlZFx0XHRc dFx0JWRcbiIsCj4gIAkJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2LCAoZ3B1X2ZyZXEgKgo+ IC0JCQkJKElTX1NLWUxBS0UoZGV2KSA/IEdFTjlfRlJFUV9TQ0FMRVIgOiAxKSkpLAo+ICsJCQkJ KElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpID8KPiArCQkJCSBHRU45X0ZSRVFf U0NBTEVSIDogMSkpKSwKPiAgCQkJICAgKChpYV9mcmVxID4+IDApICYgMHhmZikgKiAxMDAsCj4g IAkJCSAgICgoaWFfZnJlcSA+PiA4KSAmIDB4ZmYpICogMTAwKTsKPiAgCX0KPiBAQCAtNTAyOSw3 ICs1MDMzLDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAgCj4gIAkJc3RhdC0+c2xpY2VfdG90YWwrKzsKPiAgCj4gLQkJaWYg KElTX1NLWUxBS0UoZGV2KSkKPiArCQlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtF KGRldikpCj4gIAkJCXNzX2NudCA9IElOVEVMX0lORk8oZGV2KS0+c3Vic2xpY2VfcGVyX3NsaWNl Owo+ICAKPiAgCQlmb3IgKHNzID0gMDsgc3MgPCBzc19tYXg7IHNzKyspIHsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZG1hLmMKPiBpbmRleCAyMzM2YWY5Li5kZGQxZDQ2IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RtYS5jCj4gQEAgLTY2OCw3ICs2NjgsOCBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5m b19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkgKiBzdXBwb3J0cyBFVSBwb3dlciBn YXRpbmcgb24gZGV2aWNlcyB3aXRoIG1vcmUgdGhhbiBvbmUgRVUKPiAgCSAqIHBhaXIgcGVyIHN1 YnNsaWNlLgo+ICAJKi8KPiAtCWluZm8tPmhhc19zbGljZV9wZyA9IChJU19TS1lMQUtFKGRldikg JiYgKGluZm8tPnNsaWNlX3RvdGFsID4gMSkpOwo+ICsJaW5mby0+aGFzX3NsaWNlX3BnID0gKChJ U19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgJiYKPiArCQkJICAgICAgIChpbmZv LT5zbGljZV90b3RhbCA+IDEpKTsKPiAgCWluZm8tPmhhc19zdWJzbGljZV9wZyA9IChJU19CUk9Y VE9OKGRldikgJiYgKGluZm8tPnN1YnNsaWNlX3RvdGFsID4gMSkpOwo+ICAJaW5mby0+aGFzX2V1 X3BnID0gKGluZm8tPmV1X3Blcl9zdWJzbGljZSA+IDIpOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCj4gaW5kZXggNzBmOWQzZC4uYzllODBmYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwo+IEBAIC0zOTUsNiArMzk1LDM2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2 aWNlX2luZm8gaW50ZWxfYnJveHRvbl9pbmZvID0gewo+ICAJSVZCX0NVUlNPUl9PRkZTRVRTLAo+ ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9r YWJ5bGFrZV9pbmZvID0gewo+ICsJLmlzX3ByZWxpbWluYXJ5ID0gMSwKPiArCS5pc19rYWJ5bGFr ZSA9IDEsCj4gKwkuZ2VuID0gOSwKPiArCS5udW1fcGlwZXMgPSAzLAo+ICsJLm5lZWRfZ2Z4X2h3 cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBC U0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORywKPiArCS5oYXNfbGxjID0gMSwKPiArCS5o YXNfZGRpID0gMSwKPiArCS5oYXNfZnBnYV9kYmcgPSAxLAo+ICsJLmhhc19mYmMgPSAxLAo+ICsJ R0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gKwlJVkJfQ1VSU09SX09GRlNFVFMsCj4gK307Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2thYnlsYWtl X2d0M19pbmZvID0gewo+ICsJLmlzX3ByZWxpbWluYXJ5ID0gMSwKPiArCS5pc19rYWJ5bGFrZSA9 IDEsCj4gKwkuZ2VuID0gOSwKPiArCS5udW1fcGlwZXMgPSAzLAo+ICsJLm5lZWRfZ2Z4X2h3cyA9 IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkucmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0Rf UklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORyB8IEJTRDJfUklORywKPiArCS5oYXNfbGxjID0g MSwKPiArCS5oYXNfZGRpID0gMSwKPiArCS5oYXNfZnBnYV9kYmcgPSAxLAo+ICsJLmhhc19mYmMg PSAxLAo+ICsJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gKwlJVkJfQ1VSU09SX09GRlNFVFMs Cj4gK307Cj4gKwo+ICAvKgo+ICAgKiBNYWtlIHN1cmUgYW55IGRldmljZSBtYXRjaGVzIGhlcmUg YXJlIGZyb20gbW9zdCBzcGVjaWZpYyB0byBtb3N0Cj4gICAqIGdlbmVyYWwuICBGb3IgZXhhbXBs ZSwgc2luY2UgdGhlIFF1YW50YSBtYXRjaCBpcyBiYXNlZCBvbiB0aGUgc3Vic3lzdGVtCj4gQEAg LTQ2NCw3ICs0OTQsNyBAQCBzdGF0aWMgZW51bSBpbnRlbF9wY2ggaW50ZWxfdmlydF9kZXRlY3Rf cGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2 KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+ICAJCXJldCA9IFBDSF9MUFQ7Cj4gIAkJRFJNX0RF QlVHX0tNUygiQXNzdW1pbmcgTHlueFBvaW50IFBDSFxuIik7Cj4gLQl9IGVsc2UgaWYgKElTX1NL WUxBS0UoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxB S0UoZGV2KSkgewo+ICAJCXJldCA9IFBDSF9TUFQ7Cj4gIAkJRFJNX0RFQlVHX0tNUygiQXNzdW1p bmcgU3VucmlzZVBvaW50IFBDSFxuIik7Cj4gIAl9Cj4gQEAgLTUyNywxMSArNTU3LDEzIEBAIHZv aWQgaW50ZWxfZGV0ZWN0X3BjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQl9IGVsc2Ug aWYgKGlkID09IElOVEVMX1BDSF9TUFRfREVWSUNFX0lEX1RZUEUpIHsKPiAgCQkJCWRldl9wcml2 LT5wY2hfdHlwZSA9IFBDSF9TUFQ7Cj4gIAkJCQlEUk1fREVCVUdfS01TKCJGb3VuZCBTdW5yaXNl UG9pbnQgUENIXG4iKTsKPiAtCQkJCVdBUk5fT04oIUlTX1NLWUxBS0UoZGV2KSk7Cj4gKwkJCQlX QVJOX09OKCFJU19TS1lMQUtFKGRldikgJiYKPiArCQkJCQkhSVNfS0FCWUxBS0UoZGV2KSk7Cj4g IAkJCX0gZWxzZSBpZiAoaWQgPT0gSU5URUxfUENIX1NQVF9MUF9ERVZJQ0VfSURfVFlQRSkgewo+ ICAJCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX1NQVDsKPiAgCQkJCURSTV9ERUJVR19LTVMo IkZvdW5kIFN1bnJpc2VQb2ludCBMUCBQQ0hcbiIpOwo+IC0JCQkJV0FSTl9PTighSVNfU0tZTEFL RShkZXYpKTsKPiArCQkJCVdBUk5fT04oIUlTX1NLWUxBS0UoZGV2KSAmJgo+ICsJCQkJCSFJU19L QUJZTEFLRShkZXYpKTsKPiAgCQkJfSBlbHNlIGlmIChpZCA9PSBJTlRFTF9QQ0hfUDJYX0RFVklD RV9JRF9UWVBFKSB7Cj4gIAkJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBpbnRlbF92aXJ0X2RldGVj dF9wY2goZGV2KTsKPiAgCQkJfSBlbHNlCj4gQEAgLTgzOSw3ICs4NzEsNyBAQCBzdGF0aWMgaW50 IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAKPiAgCWlm IChJU19CUk9YVE9OKGRldikpCj4gIAkJcmV0ID0gYnh0X3Jlc3VtZV9wcmVwYXJlKGRldl9wcml2 KTsKPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ICsJZWxzZSBpZiAoSVNfU0tZ TEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICAJCXJldCA9IHNrbF9y ZXN1bWVfcHJlcGFyZShkZXZfcHJpdik7Cj4gIAllbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2 KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCWhzd19kaXNhYmxlX3BjOChkZXZfcHJp dik7Cj4gQEAgLTE1ODYsNyArMTYxOCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9yZXN1 bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKQo+ICAKPiAgCWlmIChJU19CUk9YVE9OKGRldikpCj4g IAkJcmV0ID0gYnh0X3Jlc3VtZV9wcmVwYXJlKGRldl9wcml2KTsKPiAtCWVsc2UgaWYgKElTX1NL WUxBS0UoZGV2KSkKPiArCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShk ZXYpKQo+ICAJCXJldCA9IHNrbF9yZXN1bWVfcHJlcGFyZShkZXZfcHJpdik7Cj4gIAllbHNlIGlm IChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCWhz d19kaXNhYmxlX3BjOChkZXZfcHJpdik7Cj4gQEAgLTE2MzAsNyArMTY2Miw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfc3VzcGVuZF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAo+ICAJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJCXJldCA9IGJ4dF9zdXNw ZW5kX2NvbXBsZXRlKGRldl9wcml2KTsKPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYp KQo+ICsJZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3By aXYpKQo+ICAJCXJldCA9IHNrbF9zdXNwZW5kX2NvbXBsZXRlKGRldl9wcml2KTsKPiAgCWVsc2Ug aWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gIAkJ cmV0ID0gaHN3X3N1c3BlbmRfY29tcGxldGUoZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IDU2NWU2M2EuLjM5ODJkMWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtNzY2LDYgKzc2Niw3IEBAIHN0cnVjdCBpbnRlbF9jc3Igewo+ICAJZnVuYyhpc19o YXN3ZWxsKSBzZXAgXAo+ICAJZnVuYyhpc19za3lsYWtlKSBzZXAgXAo+ICAJZnVuYyhpc19icm94 dG9uKSBzZXAgXAo+ICsJZnVuYyhpc19rYWJ5bGFrZSkgc2VwIFwKPiAgCWZ1bmMoaXNfcHJlbGlt aW5hcnkpIHNlcCBcCj4gIAlmdW5jKGhhc19mYmMpIHNlcCBcCj4gIAlmdW5jKGhhc19waXBlX2N4 c3IpIHNlcCBcCj4gQEAgLTI0NzcsNiArMjQ3OCw3IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFi bGUgewo+ICAjZGVmaW5lIElTX0JST0FEV0VMTChkZXYpCSghSU5URUxfSU5GTyhkZXYpLT5pc192 YWxsZXl2aWV3ICYmIElTX0dFTjgoZGV2KSkKPiAgI2RlZmluZSBJU19TS1lMQUtFKGRldikJKElO VEVMX0lORk8oZGV2KS0+aXNfc2t5bGFrZSkKPiAgI2RlZmluZSBJU19CUk9YVE9OKGRldikJCShJ TlRFTF9JTkZPKGRldiktPmlzX2Jyb3h0b24pCj4gKyNkZWZpbmUgSVNfS0FCWUxBS0UoZGV2KQko SU5URUxfSU5GTyhkZXYpLT5pc19rYWJ5bGFrZSkKPiAgI2RlZmluZSBJU19NT0JJTEUoZGV2KQkJ KElOVEVMX0lORk8oZGV2KS0+aXNfbW9iaWxlKQo+ICAjZGVmaW5lIElTX0hTV19FQVJMWV9TRFYo ZGV2KQkoSVNfSEFTV0VMTChkZXYpICYmIFwKPiAgCQkJCSAoSU5URUxfREVWSUQoZGV2KSAmIDB4 RkYwMCkgPT0gMHgwQzAwKQo+IEBAIC0yNTk3LDEwICsyNTk5LDEwIEBAIHN0cnVjdCBkcm1faTkx NV9jbWRfdGFibGUgewo+ICAjZGVmaW5lIEhBU19GUEdBX0RCR19VTkNMQUlNRUQoZGV2KQkoSU5U RUxfSU5GTyhkZXYpLT5oYXNfZnBnYV9kYmcpCj4gICNkZWZpbmUgSEFTX1BTUihkZXYpCQkoSVNf SEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpIHx8IFwKPiAgCQkJCSBJU19WQUxMRVlW SUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpIHx8IFwKPiAtCQkJCSBJU19TS1lMQUtFKGRl dikpCj4gKwkJCQkgSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gICNkZWZp bmUgSEFTX1JVTlRJTUVfUE0oZGV2KQkoSVNfR0VONihkZXYpIHx8IElTX0hBU1dFTEwoZGV2KSB8 fCBcCj4gIAkJCQkgSVNfQlJPQURXRUxMKGRldikgfHwgSVNfVkFMTEVZVklFVyhkZXYpIHx8IFwK PiAtCQkJCSBJU19TS1lMQUtFKGRldikpCj4gKwkJCQkgSVNfU0tZTEFLRShkZXYpIHx8IElTX0tB QllMQUtFKGRldikpCj4gICNkZWZpbmUgSEFTX1JDNihkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gNikKPiAgI2RlZmluZSBIQVNfUkM2cChkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5nZW4g PT0gNiB8fCBJU19JVllCUklER0UoZGV2KSkKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fc3RvbGVuLmMKPiBpbmRleCBjZGFjZjNmLi41OThlZDJmIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiBAQCAtNDMzLDcgKzQzMyw4IEBAIGludCBpOTE1X2dl bV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQkJCSAmcmVzZXJ2ZWRf c2l6ZSk7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IC0JCWlmIChJU19CUk9BRFdFTEwoZGV2 X3ByaXYpIHx8IElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ICsJCWlmIChJU19CUk9BRFdFTEwoZGV2 X3ByaXYpIHx8Cj4gKwkJICAgIElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRl dikpCj4gIAkJCWJkd19nZXRfc3RvbGVuX3Jlc2VydmVkKGRldl9wcml2LCAmcmVzZXJ2ZWRfYmFz ZSwKPiAgCQkJCQkJJnJlc2VydmVkX3NpemUpOwo+ICAJCWVsc2UKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmMKPiBpbmRleCA0ZGNjZDliLi42M2Q0NzA2IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdWRpby5jCj4gQEAgLTU5MSw3ICs1OTEsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9jb2RlY193YWtlX292ZXJyaWRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7Cj4g IAl1MzIgdG1wOwo+ICAKPiAtCWlmICghSVNfU0tZTEFLRShkZXZfcHJpdikpCj4gKwlpZiAoIUlT X1NLWUxBS0UoZGV2X3ByaXYpICYmICFJU19LQUJZTEFLRShkZXZfcHJpdikpCj4gIAkJcmV0dXJu Owo+ICAKPiAgCS8qCj4gQEAgLTY0MiwxMCArNjQyLDExIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRp b19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgCXUzMiB0 bXA7Cj4gIAlpbnQgbjsKPiAgCj4gLQkvKiBIU1csIEJEVyBTS0wgbmVlZCB0aGlzIGZpeCAqLwo+ ICsJLyogSFNXLCBCRFcsIFNLTCwgS0JMIG5lZWQgdGhpcyBmaXggKi8KPiAgCWlmICghSVNfU0tZ TEFLRShkZXZfcHJpdikgJiYKPiAtCQkhSVNfQlJPQURXRUxMKGRldl9wcml2KSAmJgo+IC0JCSFJ U19IQVNXRUxMKGRldl9wcml2KSkKPiArCSAgICAhSVNfS0FCWUxBS0UoZGV2X3ByaXYpICYmCj4g KwkgICAgIUlTX0JST0FEV0VMTChkZXZfcHJpdikgJiYKPiArCSAgICAhSVNfSEFTV0VMTChkZXZf cHJpdikpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211 dGV4KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGExNjM3NDEuLjhkZDlmYWUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC00NDgsNyArNDQ4LDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBlbnVtIHBvcnQgcG9ydCwKPiAgCQlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXYsIGhkbWlf bGV2ZWwsIHBvcnQsCj4gIAkJCQkJSU5URUxfT1VUUFVUX0hETUkpOwo+ICAJCXJldHVybjsKPiAt CX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKElTX1NLWUxBS0Uo ZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKSB7Cj4gIAkJZGRpX3RyYW5zbGF0aW9uc19mZGkgPSBO VUxMOwo+ICAJCWRkaV90cmFuc2xhdGlvbnNfZHAgPQo+ICAJCQkJc2tsX2dldF9idWZfdHJhbnNf ZHAoZGV2LCAmbl9kcF9lbnRyaWVzKTsKPiBAQCAtMTE4NCw3ICsxMTg0LDcgQEAgdm9pZCBpbnRl bF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCWlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA4KQo+ICAJCWhzd19kZGlfY2xvY2tfZ2V0KGVuY29k ZXIsIHBpcGVfY29uZmlnKTsKPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkKPiArCWVsc2Ug aWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKQo+ICAJCXNrbF9kZGlfY2xv Y2tfZ2V0KGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiAgCWVsc2UgaWYgKElTX0JST1hUT04oZGV2 KSkKPiAgCQlieHRfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gQEAgLTE3 NjgsNyArMTc2OCw3IEBAIGJvb2wgaW50ZWxfZGRpX3BsbF9zZWxlY3Qoc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9 Cj4gIAkJaW50ZWxfZGRpX2dldF9jcnRjX25ld19lbmNvZGVyKGNydGNfc3RhdGUpOwo+ICAKPiAt CWlmIChJU19TS1lMQUtFKGRldikpCj4gKwlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllM QUtFKGRldikpCj4gIAkJcmV0dXJuIHNrbF9kZGlfcGxsX3NlbGVjdChpbnRlbF9jcnRjLCBjcnRj X3N0YXRlLAo+ICAJCQkJCSAgaW50ZWxfZW5jb2Rlcik7Cj4gIAllbHNlIGlmIChJU19CUk9YVE9O KGRldikpCj4gQEAgLTIyNTEsNyArMjI1MSw3IEBAIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxz KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICAJbGV2ZWwgPSB0cmFuc2xhdGVfc2ln bmFsX2xldmVsKHNpZ25hbF9sZXZlbHMpOwo+ICAKPiAtCWlmIChJU19TS1lMQUtFKGRldikpCj4g KwlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gIAkJc2tsX2RkaV9z ZXRfaWJvb3N0KGRldiwgbGV2ZWwsIHBvcnQsIGVuY29kZXItPnR5cGUpOwo+ICAJZWxzZSBpZiAo SVNfQlJPWFRPTihkZXYpKQo+ICAJCWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldiwgbGV2ZWws IHBvcnQsIGVuY29kZXItPnR5cGUpOwo+IEBAIC0yMjc0LDcgKzIyNzQsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl cikKPiAgCQlpbnRlbF9lZHBfcGFuZWxfb24oaW50ZWxfZHApOwo+ICAJfQo+ICAKPiAtCWlmIChJ U19TS1lMQUtFKGRldikpIHsKPiArCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0Uo ZGV2KSkgewo+ICAJCXVpbnQzMl90IGRwbGwgPSBjcnRjLT5jb25maWctPmRkaV9wbGxfc2VsOwo+ ICAJCXVpbnQzMl90IHZhbDsKPiAgCj4gQEAgLTIzNjksNyArMjM2OSw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2RkaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIpCj4gIAkJaW50ZWxfZWRwX3BhbmVsX29mZihpbnRlbF9kcCk7Cj4gIAl9Cj4gIAo+IC0JaWYg KElTX1NLWUxBS0UoZGV2KSkKPiArCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0Uo ZGV2KSkKPiAgCQlJOTE1X1dSSVRFKERQTExfQ1RSTDIsIChJOTE1X1JFQUQoRFBMTF9DVFJMMikg fAo+ICAJCQkJCURQTExfQ1RSTDJfRERJX0NMS19PRkYocG9ydCkpKTsKPiAgCWVsc2UgaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuIDwgOSkKPiBAQCAtMjkzNywxNCArMjkzNywxNCBAQCB2b2lkIGlu dGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXVpbnQzMl90IHZh bCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+ICAKPiAtCWlmIChJU19TS1lMQUtFKGRldikpCj4g KwlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gIAkJc2tsX3NoYXJl ZF9kcGxsc19pbml0KGRldl9wcml2KTsKPiAgCWVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkKPiAg CQlieHRfc2hhcmVkX2RwbGxzX2luaXQoZGV2X3ByaXYpOwo+ICAJZWxzZQo+ICAJCWhzd19zaGFy ZWRfZHBsbHNfaW5pdChkZXZfcHJpdik7Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ ICsJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKSB7Cj4gIAkJaW50IGNk Y2xrX2ZyZXE7Cj4gIAo+ICAJCWNkY2xrX2ZyZXEgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlz cGxheV9jbG9ja19zcGVlZChkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiBpbmRleCAzMzkwZmNjLi5mMTliMzA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC01MzAxLDcgKzUzMDEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVf bWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0JaWYgKElTX1NL WUxBS0UoZGV2KSkgewo+ICsJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYp KSB7Cj4gIAkJdTMyIGxpbWl0ID0gSTkxNV9SRUFEKFNLTF9ERlNNKSAmIFNLTF9ERlNNX0NEQ0xL X0xJTUlUX01BU0s7Cj4gIAo+ICAJCWlmIChsaW1pdCA9PSBTS0xfREZTTV9DRENMS19MSU1JVF82 NzUpCj4gQEAgLTk3NDcsNyArOTc0Nyw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9w b3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgCXBvcnQgPSAodG1wICYg VFJBTlNfRERJX1BPUlRfTUFTSykgPj4gVFJBTlNfRERJX1BPUlRfU0hJRlQ7Cj4gIAo+IC0JaWYg KElTX1NLWUxBS0UoZGV2KSkKPiArCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0Uo ZGV2KSkKPiAgCQlza3lsYWtlX2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZp Zyk7Cj4gIAllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCj4gIAkJYnh0X2dldF9kZGlfcGxsKGRl dl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7Cj4gQEAgLTEyMDMxLDcgKzEyMDMxLDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK PiAgCQkJICAgICAgcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUucGxsOSwKPiAgCQkJICAgICAg cGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUucGxsMTAsCj4gIAkJCSAgICAgIHBpcGVfY29uZmln LT5kcGxsX2h3X3N0YXRlLnBjc2R3MTIpOwo+IC0JfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikp IHsKPiArCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsK PiAgCQlEUk1fREVCVUdfS01TKCJkZGlfcGxsX3NlbDogJXU7IGRwbGxfaHdfc3RhdGU6ICIKPiAg CQkJICAgICAgImN0cmwxOiAweCV4LCBjZmdjcjE6IDB4JXgsIGNmZ2NyMjogMHgleFxuIiwKPiAg CQkJICAgICAgcGlwZV9jb25maWctPmRkaV9wbGxfc2VsLAo+IEBAIC0xNDA5MCw3ICsxNDA5MCw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgCQkgKi8KPiAgCQlmb3VuZCA9IEk5MTVfUkVBRChERElfQlVGX0NUTChQT1JUX0EpKSAm IERESV9JTklUX0RJU1BMQVlfREVURUNURUQ7Cj4gIAkJLyogV2FJZ25vcmVERElBU3RyYXA6IHNr bCAqLwo+IC0JCWlmIChmb3VuZCB8fCBJU19TS1lMQUtFKGRldikpCj4gKwkJaWYgKGZvdW5kIHx8 IElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKQo+ICAJCQlpbnRlbF9kZGlfaW5p dChkZXYsIFBPUlRfQSk7Cj4gIAo+ICAJCS8qIERESSBCLCBDIGFuZCBEIGRldGVjdGlvbiBpcyBp bmRpY2F0ZWQgYnkgdGhlIFNGVVNFX1NUUkFQCj4gQEAgLTE0MTA2LDcgKzE0MTA2LDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJ CS8qCj4gIAkJICogT24gU0tMIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gZGV0ZWN0IERESS1FIHNv IHdlIHJlbHkgb24gVkJULgo+ICAJCSAqLwo+IC0JCWlmIChJU19TS1lMQUtFKGRldikgJiYKPiAr CQlpZiAoKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKSAmJgo+ICAJCSAgICAo ZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRfRV0uc3VwcG9ydHNfZHAgfHwKPiAgCQkg ICAgIGRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1tQT1JUX0VdLnN1cHBvcnRzX2R2aSB8fAo+ ICAJCSAgICAgZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRfRV0uc3VwcG9ydHNfaGRt aSkpCj4gQEAgLTE0NTUxLDcgKzE0NTUxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNw bGF5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAl9Cj4gIAo+ICAJLyogUmV0dXJucyB0aGUg Y29yZSBkaXNwbGF5IGNsb2NrIHNwZWVkICovCj4gLQlpZiAoSVNfU0tZTEFLRShkZXYpKQo+ICsJ aWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKQo+ICAJCWRldl9wcml2LT5k aXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiAgCQkJc2t5bGFrZV9nZXRfZGlzcGxh eV9jbG9ja19zcGVlZDsKPiAgCWVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiBpbmRleCA4Mjg3ZGY0Li4xY2IxZjNmIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gQEAgLTEwMjMsNyArMTAyMyw3IEBAIGludGVsX2RwX2F1eF9pbml0KHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK PiAgCS8qIE9uIFNLTCB3ZSBkb24ndCBoYXZlIEF1eCBmb3IgcG9ydCBFIHNvIHdlIHJlbHkgb24g VkJUIHRvIHNldAo+ICAJICogYSBwcm9wZXIgYWx0ZXJuYXRlIGF1eCBjaGFubmVsLgo+ICAJICov Cj4gLQlpZiAoSVNfU0tZTEFLRShkZXYpICYmIHBvcnQgPT0gUE9SVF9FKSB7Cj4gKwlpZiAoKElT X1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKSAmJiBwb3J0ID09IFBPUlRfRSkgewo+ ICAJCXN3aXRjaCAoaW5mby0+YWx0ZXJuYXRlX2F1eF9jaGFubmVsKSB7Cj4gIAkJY2FzZSBEUF9B VVhfQjoKPiAgCQkJcG9ydGVfYXV4X2N0bF9yZWcgPSBEUEJfQVVYX0NIX0NUTDsKPiBAQCAtMTIx MCw3ICsxMjEwLDcgQEAgaW50ZWxfZHBfc291cmNlX3JhdGVzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGNvbnN0IGludCAqKnNvdXJjZV9yYXRlcykKPiAgCWlmIChJU19CUk9YVE9OKGRldikpIHsK PiAgCQkqc291cmNlX3JhdGVzID0gYnh0X3JhdGVzOwo+ICAJCXNpemUgPSBBUlJBWV9TSVpFKGJ4 dF9yYXRlcyk7Cj4gLQl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ICsJfSBlbHNlIGlm IChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+ICAJCSpzb3VyY2VfcmF0 ZXMgPSBza2xfcmF0ZXM7Cj4gIAkJc2l6ZSA9IEFSUkFZX1NJWkUoc2tsX3JhdGVzKTsKPiAgCX0g ZWxzZSB7Cj4gQEAgLTE1MzAsNyArMTUzMCw3IEBAIGZvdW5kOgo+ICAJCQkJJnBpcGVfY29uZmln LT5kcF9tMl9uMik7Cj4gIAl9Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2KSAmJiBpc19lZHAo aW50ZWxfZHApKQo+ICsJaWYgKChJU19TS1lMQUtFKGRldikgIHx8IElTX0tBQllMQUtFKGRldikp ICYmIGlzX2VkcChpbnRlbF9kcCkpCj4gIAkJc2tsX2VkcF9zZXRfcGxsX2NvbmZpZyhwaXBlX2Nv bmZpZyk7Cj4gIAllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCj4gIAkJLyogaGFuZGxlZCBpbiBk ZGkgKi87Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBpbmRleCBjZjQ3MzUyLi5mZGE1ZmM1 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBAQCAtNTgxLDcgKzU4MSw4IEBAIHN0 YXRpYyBpbnQgZmluZF9jb21wcmVzc2lvbl90aHJlc2hvbGQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJICogcmVzZXJ2ZWQgcmFuZ2Ugc2l6ZSwgc28gaXQgYWx3YXlzIGFz c3VtZXMgdGhlIG1heGltdW0gKDhtYikgaXMgdXNlZC4KPiAgCSAqIElmIHdlIGVuYWJsZSBGQkMg dXNpbmcgYSBDRkIgb24gdGhhdCBtZW1vcnkgcmFuZ2Ugd2UnbGwgZ2V0IEZJRk8KPiAgCSAqIHVu ZGVycnVucywgZXZlbiBpZiB0aGF0IHJhbmdlIGlzIG5vdCByZXNlcnZlZCBieSB0aGUgQklPUy4g Ki8KPiAtCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX1NLWUxBS0UoZGV2X3ByaXYp KQo+ICsJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwKPiArCSAgICBJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCj4gIAkJZW5kID0gZGV2X3ByaXYtPmd0 dC5zdG9sZW5fc2l6ZSAtIDggKiAxMDI0ICogMTAyNDsKPiAgCWVsc2UKPiAgCQllbmQgPSBkZXZf cHJpdi0+Z3R0LnN0b2xlbl91c2FibGVfc2l6ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5j Cj4gaW5kZXggNmQzYzZjMC4uYjI1OGEyYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9tb2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2Nz LmMKPiBAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBib29sIGdldF9tb2NzX3NldHRpbmdzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIHsKPiAgCWJvb2wgcmVzdWx0ID0gZmFsc2U7Cj4gIAo+ IC0JaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ICsJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19L QUJZTEFLRShkZXYpKSB7Cj4gIAkJdGFibGUtPnNpemUgID0gQVJSQVlfU0laRShza3lsYWtlX21v Y3NfdGFibGUpOwo+ICAJCXRhYmxlLT50YWJsZSA9IHNreWxha2VfbW9jc190YWJsZTsKPiAgCQly ZXN1bHQgPSB0cnVlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IDdiMTEwY2QuLmRk NjNiYmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtNDU2Nyw3ICs0NTY3LDgg QEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0X3Jwc19mcmVxdWVuY2llcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJZGV2X3ByaXYtPnJwcy5tYXhfZnJlcQkJPSBkZXZfcHJpdi0+cnBzLnJwMF9m cmVxOwo+ICAKPiAgCWRldl9wcml2LT5ycHMuZWZmaWNpZW50X2ZyZXEgPSBkZXZfcHJpdi0+cnBz LnJwMV9mcmVxOwo+IC0JaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSB8 fCBJU19TS1lMQUtFKGRldikpIHsKPiArCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURX RUxMKGRldikgfHwKPiArCSAgICBJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkg ewo+ICAJCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3JlYWQoZGV2X3ByaXYsCj4gIAkJCQkJSFNX X1BDT0RFX0RZTkFNSUNfRFVUWV9DWUNMRV9DT05UUk9MLAo+ICAJCQkJCSZkZGNjX3N0YXR1cyk7 Cj4gQEAgLTQ1NzksNyArNDU4MCw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfaW5pdF9ycHNfZnJlcXVl bmNpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJCQlkZXZfcHJpdi0+cnBzLm1heF9m cmVxKTsKPiAgCX0KPiAgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXYpKSB7Cj4gKwlpZiAoSVNfU0tZ TEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKPiAgCQkvKiBTdG9yZSB0aGUgZnJlcXVl bmN5IHZhbHVlcyBpbiAxNi42NiBNSFogdW5pdHMsIHdoaWNoIGlzCj4gIAkJICAgdGhlIG5hdHVy YWwgaGFyZHdhcmUgdW5pdCBmb3IgU0tMICovCj4gIAkJZGV2X3ByaXYtPnJwcy5ycDBfZnJlcSAq PSBHRU45X0ZSRVFfU0NBTEVSOwo+IEBAIC00OTM1LDcgKzQ5MzYsNyBAQCBzdGF0aWMgdm9pZCBf X2dlbjZfdXBkYXRlX3JpbmdfZnJlcShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJLyogY29u dmVydCBERFIgZnJlcXVlbmN5IGZyb20gdW5pdHMgb2YgMjY2LjZNSHogdG8gYmFuZHdpZHRoICov Cj4gIAltaW5fcmluZ19mcmVxID0gbXVsdF9mcmFjKG1pbl9yaW5nX2ZyZXEsIDgsIDMpOwo+ICAK PiAtCWlmIChJU19TS1lMQUtFKGRldikpIHsKPiArCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNf S0FCWUxBS0UoZGV2KSkgewo+ICAJCS8qIENvbnZlcnQgR1QgZnJlcXVlbmN5IHRvIDUwIEhaIHVu aXRzICovCj4gIAkJbWluX2dwdV9mcmVxID0gZGV2X3ByaXYtPnJwcy5taW5fZnJlcSAvIEdFTjlf RlJFUV9TQ0FMRVI7Cj4gIAkJbWF4X2dwdV9mcmVxID0gZGV2X3ByaXYtPnJwcy5tYXhfZnJlcSAv IEdFTjlfRlJFUV9TQ0FMRVI7Cj4gQEAgLTQ5NTMsNyArNDk1NCw3IEBAIHN0YXRpYyB2b2lkIF9f Z2VuNl91cGRhdGVfcmluZ19mcmVxKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJaW50IGRp ZmYgPSBtYXhfZ3B1X2ZyZXEgLSBncHVfZnJlcTsKPiAgCQl1bnNpZ25lZCBpbnQgaWFfZnJlcSA9 IDAsIHJpbmdfZnJlcSA9IDA7Cj4gIAo+IC0JCWlmIChJU19TS1lMQUtFKGRldikpIHsKPiArCQlp ZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKPiAgCQkJLyoKPiAgCQkJ ICogcmluZ19mcmVxID0gMiAqIEdULiByaW5nX2ZyZXEgaXMgaW4gMTAwTUh6IHVuaXRzCj4gIAkJ CSAqIE5vIGZsb29yIHJlcXVpcmVkIGZvciByaW5nIGZyZXF1ZW5jeSBvbiBTS0wuCj4gQEAgLTYw ODEsNyArNjA4Miw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2dlbjZfcG93ZXJzYXZlX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA5KSB7Cj4gIAkJZ2VuOV9lbmFibGVfcmM2KGRldik7Cj4gIAkJZ2VuOV9lbmFibGVfcnBz KGRldik7Cj4gLQkJaWYgKElTX1NLWUxBS0UoZGV2KSkKPiArCQlpZiAoSVNfU0tZTEFLRShkZXYp IHx8IElTX0tBQllMQUtFKGRldikpCj4gIAkJCV9fZ2VuNl91cGRhdGVfcmluZ19mcmVxKGRldik7 Cj4gIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKSB7Cj4gIAkJZ2VuOF9lbmFibGVfcnBz KGRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVf cG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IGU1 MGNjODguLjEwMTc1NTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cnVudGltZV9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jCj4gQEAgLTE4MzIsNyArMTgzMiw3IEBAIGludCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCXNldF9wb3dlcl93ZWxscyhw b3dlcl9kb21haW5zLCBoc3dfcG93ZXJfd2VsbHMpOwo+ICAJfSBlbHNlIGlmIChJU19CUk9BRFdF TEwoZGV2X3ByaXYtPmRldikpIHsKPiAgCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywg YmR3X3Bvd2VyX3dlbGxzKTsKPiAtCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdi0+ZGV2 KSkgewo+ICsJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2LT5kZXYpIHx8IElTX0tBQllM QUtFKGRldl9wcml2LT5kZXYpKSB7Cj4gIAkJc2V0X3Bvd2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMs IHNrbF9wb3dlcl93ZWxscyk7Cj4gIAl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYtPmRl dikpIHsKPiAgCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgYnh0X3Bvd2VyX3dlbGxz KTsKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK