From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH v6 09/35] drm/i915: Initialize HDCP2.2 and its MEI interface Date: Wed, 1 Aug 2018 17:12:01 +0530 Message-ID: <7bdf6233-5cd5-9f45-e194-7e87bfece26c@intel.com> References: <1531538117-1606-1-git-send-email-ramalingam.c@intel.com> <1531538117-1606-10-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "daniel@ffwll.ch" , "seanpaul@chromium.org" , "Winkler, Tomas" , "Usyskin, Alexander" List-Id: dri-devel@lists.freedesktop.org CgpPbiBXZWRuZXNkYXkgMDEgQXVndXN0IDIwMTggMDE6MTEgQU0sIFNoYW5rYXIsIFVtYSB3cm90 ZToKPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gRnJvbTogQywgUmFtYWxpbmdhbQo+ PiBTZW50OiBTYXR1cmRheSwgSnVseSAxNCwgMjAxOCA4OjQ1IEFNCj4+IFRvOiBpbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOwo+ PiBkYW5pZWxAZmZ3bGwuY2g7IHNlYW5wYXVsQGNocm9taXVtLm9yZzsgV2lua2xlciwgVG9tYXMK Pj4gPHRvbWFzLndpbmtsZXJAaW50ZWwuY29tPjsgVXN5c2tpbiwgQWxleGFuZGVyIDxhbGV4YW5k ZXIudXN5c2tpbkBpbnRlbC5jb20+Owo+PiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVs LmNvbT4KPj4gQ2M6IFNoYXJtYSwgU2hhc2hhbmsgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+ OyBDLCBSYW1hbGluZ2FtCj4+IDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+PiBTdWJqZWN0OiBb UEFUQ0ggdjYgMDkvMzVdIGRybS9pOTE1OiBJbml0aWFsaXplIEhEQ1AyLjIgYW5kIGl0cyBNRUkg aW50ZXJmYWNlCj4+Cj4+IEluaXRpYWxpemUgSERDUDIuMiBzdXBwb3J0LiBUaGlzIGluY2x1ZGVz IHRoZSBtZWkgaW50ZXJmYWNlIGluaXRpYWxpemF0aW9uIGFsb25nIHdpdGgKPj4gcmVxdWlyZWQg Y29tcG9uZW50IHJlZ2lzdHJhdGlvbi4KPj4KPj4gdjI6Cj4+ICAgbWVpIGludGVyZmFjZSBoYW5k bGUgaXMgcHJvdGVjdGVkIHdpdGggbXV0ZXguIFtDaHJpcyBXaWxzb25dCj4+IHYzOgo+PiAgIE5v dGlmaWVycyBhcmUgdXNlZCBmb3IgdGhlIG1laSBpbnRlcmZhY2Ugc3RhdGUuCj4+IHY0Ogo+PiAg IFBvbGwgZm9yIG1laSBjbGllbnQgZGV2aWNlIHN0YXRlCj4+ICAgRXJyb3IgbXNnIGZvciBvdXQg b2YgbWVtIFtVbWFdCj4+ICAgSW5saW5lIHJlcSBmb3IgaW5pdCBmdW5jdGlvbiByZW1vdmVkIFtV bWFdCj4+IHY1Ogo+PiAgIFJlYmFzZSBhcyBQYXJ0IG9mIHJlb3JkZXJpbmcuCj4+ICAgQ29tcG9u ZW50IGlzIHVzZWQgZm9yIHRoZSBJOTE1IGFuZCBNRUlfSERDUCBpbnRlcmZhY2UgW0RhbmllbF0K Pj4gdjY6Cj4+ICAgSERDUDIuMiB1c2VzIHRoZSBJOTE1IGNvbXBvbmVudCBtYXN0ZXIgdG8gY29t bXVuaWNhdGUgd2l0aCBtZWlfaGRjcAo+PiAJLSBbRGFuaWVsXQo+PiAgIFJlcXVpcmVkIEhEQ1Ay LjIgdmFyaWFibGVzIGRlZmluZWQgW1NlYW4gUGF1bF0KPj4KPj4gU2lnbmVkLW9mZi1ieTogUmFt YWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+PiAtLS0KPj4gZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyAgIHwgIDMgKy0KPj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggIHwgMjMgKysrKysrKysrKystCj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkY3AuYyB8IDc3Cj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAgMiArLQo+PiBpbmNsdWRlL2Ry bS9pOTE1X2NvbXBvbmVudC5oICAgICAgfCA2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPj4gNSBmaWxlcyBjaGFuZ2VkLCAxNjEgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+IGluZGV4IDViZTA3ZTFkODE2ZC4uMTJlYjVi ZDMzYjdlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gQEAgLTY0MDYsNyArNjQw Niw4IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQK Pj4gKmludGVsX2RpZ19wb3J0LAo+PiAJaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoaW50ZWxfZHAs IGNvbm5lY3Rvcik7Cj4+Cj4+IAlpZiAoaXNfaGRjcF9zdXBwb3J0ZWQoZGV2X3ByaXYsIHBvcnQp ICYmICFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Cj4+IC0JCWludCByZXQgPSBpbnRlbF9o ZGNwX2luaXQoaW50ZWxfY29ubmVjdG9yLCAmaW50ZWxfZHBfaGRjcF9zaGltKTsKPj4gKwkJaW50 IHJldCA9IGludGVsX2hkY3BfaW5pdChpbnRlbF9jb25uZWN0b3IsICZpbnRlbF9kcF9oZGNwX3No aW0sCj4+ICsJCQkJCSAgZmFsc2UpOwo+PiAJCWlmIChyZXQpCj4+IAkJCURSTV9ERUJVR19LTVMo IkhEQ1AgaW5pdCBmYWlsZWQsIHNraXBwaW5nLlxuIik7Cj4+IAl9Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4+IGluZGV4IGMzMjY2NTEzNmQ1ZC4uMzgyNjI3OTI4MTNhIDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtMjksNiArMjksNyBAQAo+PiAjaW5jbHVkZSA8 bGludXgvaTJjLmg+Cj4+ICNpbmNsdWRlIDxsaW51eC9oZG1pLmg+Cj4+ICNpbmNsdWRlIDxsaW51 eC9zY2hlZC9jbG9jay5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L21laV9oZGNwLmg+Cj4+ICNpbmNs dWRlIDxkcm0vaTkxNV9kcm0uaD4KPj4gI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+ICNpbmNsdWRl IDxkcm0vZHJtX2NydGMuaD4KPj4gQEAgLTM3Niw2ICszNzcsOSBAQCBzdHJ1Y3QgaW50ZWxfaGRj cF9zaGltIHsKPj4gCS8qIERldGVjdHMgcGFuZWwncyBoZGNwIGNhcGFiaWxpdHkuIFRoaXMgaXMg b3B0aW9uYWwgZm9yIEhETUkuICovCj4+IAlpbnQgKCpoZGNwX2NhcGFibGUpKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+PiAJCQkgICAgYm9vbCAqaGRjcF9jYXBh YmxlKTsKPj4gKwo+PiArCS8qIERldGVjdHMgdGhlIEhEQ1AgcHJvdG9jb2woRFAvSERNSSkgcmVx dWlyZWQgb24gdGhlIHBvcnQgKi8KPj4gKwllbnVtIGhkY3BfcHJvdG9jb2wgKCpoZGNwX3Byb3Rv Y29sKSh2b2lkKTsKPj4gfTsKPj4KPj4gc3RydWN0IGludGVsX2hkY3Agewo+PiBAQCAtMzg1LDYg KzM4OSwyMCBAQCBzdHJ1Y3QgaW50ZWxfaGRjcCB7Cj4+IAl1aW50NjRfdCB2YWx1ZTsKPj4gCXN0 cnVjdCBkZWxheWVkX3dvcmsgY2hlY2tfd29yazsKPj4gCXN0cnVjdCB3b3JrX3N0cnVjdCBwcm9w X3dvcms7Cj4+ICsKPj4gKwkvKiBIRENQMi4yIHJlbGF0ZWQgZGVmaW5pdGlvbnMgKi8KPj4gKwkv KiBGbGFnIGluZGljYXRlcyB3aGV0aGVyIHRoaXMgY29ubmVjdG9yIHN1cHBvcnRzIEhEQ1AyLjIg b3Igbm90LiAqLwo+PiArCWJvb2wgaGRjcDJfc3VwcG9ydGVkOwo+PiArCj4+ICsJLyoKPj4gKwkg KiBDb250ZW50IFN0cmVhbSBUeXBlIGRlZmluZWQgYnkgY29udGVudCBvd25lci4gVFlQRTAoMHgw KSBjb250ZW50Cj4+IGNhbgo+PiArCSAqIGZsb3cgaW4gdGhlIGxpbmsgcHJvdGVjdGVkIGJ5IEhE Q1AyLjIgb3IgSERDUDEuNCwgd2hlcmUgYXMKPj4gVFlQRTEoMHgxKQo+PiArCSAqIGNvbnRlbnQg Y2FuIGZsb3cgb25seSB0aHJvdWdoIGEgbGluayBwcm90ZWN0ZWQgYnkgSERDUDIuMi4KPj4gKwkg Ki8KPj4gKwl1OCBjb250ZW50X3R5cGU7Cj4+ICsKPj4gKwkvKiBtZWkgaW50ZXJmYWNlIHJlbGF0 ZWQgaW5mb3JtYXRpb24gKi8KPj4gKwlzdHJ1Y3QgbWVpX2hkY3BfZGF0YSBtZWlfZGF0YTsKPj4g fTsKPj4KPj4gc3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4+IEBAIC0xOTAzLDExICsxOTIxLDE0 IEBAIHZvaWQgaW50ZWxfaGRjcF9hdG9taWNfY2hlY2soc3RydWN0Cj4+IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPj4gCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX3N0 YXRlLAo+PiAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUpOyAg aW50Cj4+IGludGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Is Cj4+IC0JCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3NoaW0pOwo+PiAr CQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqaGRjcF9zaGltLAo+PiArCQkgICAg Ym9vbCBoZGNwMl9zdXBwb3J0ZWQpOwo+PiBpbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsgIGludAo+PiBpbnRlbF9oZGNwX2Rpc2FibGUoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsgIGludAo+PiBpbnRlbF9oZGNwX2NoZWNr X2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsgIGJvb2wKPj4gaXNfaGRj cF9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCk7Cj4+ICtpbnQgaW50ZWxfaGRjcF9jb21wb25lbnRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOyBib29sCj4+ICtpc19oZGNwMl9zdXBwb3J0ZWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4KPj4gLyogaW50ZWxfcHNyLmMgKi8KPj4gI2Rl ZmluZSBDQU5fUFNSKGRldl9wcml2KSAoSEFTX1BTUihkZXZfcHJpdikgJiYgZGV2X3ByaXYtPnBz ci5zaW5rX3N1cHBvcnQpCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZGNwLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKPj4gaW5kZXgg NTViYzRkNDIzMTg3Li5jZmU5MTVjM2YzMzYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkY3AuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZGNwLmMKPj4gQEAgLTgsMTMgKzgsMTkgQEAKPj4KPj4gI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4+ ICNpbmNsdWRlIDxkcm0vZHJtX2hkY3AuaD4KPj4gKyNpbmNsdWRlIDxkcm0vaTkxNV9jb21wb25l bnQuaD4KPj4gI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+PiAjaW5jbHVkZSA8bGludXgvcmFuZG9t Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Cj4+Cj4+ICNpbmNsdWRlICJpbnRl bF9kcnYuaCIKPj4gI2luY2x1ZGUgImk5MTVfcmVnLmgiCj4+Cj4+ICNkZWZpbmUgS0VZX0xPQURf VFJJRVMJNQo+PiArI2RlZmluZSBHRVRfTUVJX0RESV9JTkRFWChwb3J0KQkJKCgocG9ydCkgPT0g UE9SVF9BKSA/IERESV9BIDogXAo+PiArCQkJCQkgKGVudW0gaGRjcF9waHlzaWNhbF9wb3J0KShw b3J0KSkKPj4gKwo+PiArc3RhdGljIGludCBpbnRlbF9oZGNwMl9pbml0KHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4+Cj4+IHN0YXRpYyBpbnQgaW50ZWxfaGRjcF9wb2xsX2tz dl9maWZvKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+PiAJCQkJ ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0pIEBAIC0KPj4gNzQ0LDExICs3 NTAsMTUgQEAgYm9vbCBpc19oZGNwX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4+IGVudW0gcG9ydCBwb3J0KSAgfQo+Pgo+PiBpbnQgaW50ZWxfaGRjcF9pbml0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4gLQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0pCj4+ICsJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRj cF9zaGltICpzaGltLAo+PiArCQkgICAgYm9vbCBoZGNwMl9zdXBwb3J0ZWQpCj4+IHsKPj4gCXN0 cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKPj4gCWludCByZXQ7Cj4+ Cj4+ICsJaWYgKCFzaGltKQo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiAJcmV0ID0gZHJt X2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KAo+PiAJCQkmY29u bmVjdG9yLT5iYXNlKTsKPj4gCWlmIChyZXQpCj4+IEBAIC03NTgsNiArNzY4LDEwIEBAIGludCBp bnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiAJbXV0 ZXhfaW5pdCgmaGRjcC0+bXV0ZXgpOwo+PiAJSU5JVF9ERUxBWUVEX1dPUksoJmhkY3AtPmNoZWNr X3dvcmssIGludGVsX2hkY3BfY2hlY2tfd29yayk7Cj4+IAlJTklUX1dPUksoJmhkY3AtPnByb3Bf d29yaywgaW50ZWxfaGRjcF9wcm9wX3dvcmspOwo+PiArCj4+ICsJaWYgKGhkY3AyX3N1cHBvcnRl ZCkKPj4gKwkJaW50ZWxfaGRjcDJfaW5pdChjb25uZWN0b3IpOwo+PiArCj4+IAlyZXR1cm4gMDsK Pj4gfQo+Pgo+PiBAQCAtODk1LDMgKzkwOSw2NCBAQCBpbnQgaW50ZWxfaGRjcF9jaGVja19saW5r KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IKPj4gKmNvbm5lY3RvcikKPj4gCW11dGV4X3VubG9jaygm aGRjcC0+bXV0ZXgpOwo+PiAJcmV0dXJuIHJldDsKPj4gfQo+PiArCj4+ICtzdGF0aWMgaW50IGk5 MTVfaGRjcF9jb21wb25lbnRfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKSB7 Cj4+ICsJcmV0dXJuICFzdHJjbXAoZGV2LT5kcml2ZXItPm5hbWUsICJtZWlfaGRjcCIpOyB9Cj4+ ICsKPj4gK3N0YXRpYyBpbnQgaW5pdGlhbGl6ZV9tZWlfaGRjcF9kYXRhKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKPj4gK3sKPj4gKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9 ICZjb25uZWN0b3ItPmhkY3A7Cj4+ICsJc3RydWN0IG1laV9oZGNwX2RhdGEgKmRhdGEgPSAmaGRj cC0+bWVpX2RhdGE7Cj4+ICsJZW51bSBwb3J0IHBvcnQ7Cj4+ICsKPj4gKwlpZiAoY29ubmVjdG9y LT5lbmNvZGVyKSB7Cj4+ICsJCXBvcnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7Cj4+ICsJ CWRhdGEtPnBvcnQgPSBHRVRfTUVJX0RESV9JTkRFWChwb3J0KTsKPj4gKwl9Cj4+ICsKPj4gKwlk YXRhLT5wb3J0X3R5cGUgPSBJTlRFR1JBVEVEOwo+PiArCWRhdGEtPnByb3RvY29sID0gaGRjcC0+ c2hpbS0+aGRjcF9wcm90b2NvbCgpOwo+PiArCj4+ICsJZGF0YS0+ayA9IDE7Cj4+ICsJaWYgKCFk YXRhLT5zdHJlYW1zKQo+PiArCQlkYXRhLT5zdHJlYW1zID0ga2NhbGxvYyhkYXRhLT5rLAo+PiAr CQkJCQlzaXplb2Yoc3RydWN0IGhkY3AyX3N0cmVhbWlkX3R5cGUpLAo+PiArCQkJCQlHRlBfS0VS TkVMKTsKPj4gKwlpZiAoIWRhdGEtPnN0cmVhbXMpIHsKPj4gKwkJRFJNX0VSUk9SKCJPdXQgb2Yg TWVtb3J5XG4iKTsKPj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+ICsJfQo+PiArCj4+ICsJZGF0YS0+ c3RyZWFtc1swXS5zdHJlYW1faWQgPSAwOwo+PiArCWRhdGEtPnN0cmVhbXNbMF0uc3RyZWFtX3R5 cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+ PiArYm9vbCBpc19oZGNwMl9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KSB7Cj4+ICsJcmV0dXJuICgoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1J TklMQUtFKGRldl9wcml2KSB8fAo+PiArCQkgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSAmJgo+PiBJ U19FTkFCTEVEKENPTkZJR19JTlRFTF9NRUlfSERDUCkpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMg aW50IGludGVsX2hkY3AyX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKSB7 Cj4gVGhlIGNhbGxlciBkb2Vzbid0IGNhcmUgZm9yIHRoZSByZXR1cm4uIEVpdGhlciBtYWtlIGl0 IHZvaWQgb3IgaGFuZGxlIHRoZSBlcnJvci4KPiBJIHJlY29tbWVuZCBsYXRlciB3b3VsZCBiZSBn b29kLgpNYWtlIHNlbnNlIHJldHVybiB2b2lkLCBhcyBubyBuZWVkIHRvIGhhbmRsZSB0aGUgZXJy b3Igc3RhdGUgYXQgY2FsbGVyLgo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ICsJc3RydWN0IGludGVsX2hkY3Ag KmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlXQVJOX09O KCFpc19oZGNwMl9zdXBwb3J0ZWQoZGV2X3ByaXYpKTsKPiBEb24ndCB0aGluayB0aGlzIGV4dHJh IGNoZWNrIGlzIHJlcXVpcmVkLCBzaW5jZSBpdCdzIGNhbGxlZCBvbmx5IGZyb20gMSBwbGFjZSB3 aXRoCj4gaGRjcDIgY2hlY2sgYWxyZWFkeSB0YWtlbiBjYXJlIG9mLiBUaGlzIGNhbiBiZSBkcm9w cGVkLgpJIGJlbGlldmUgdGhpcyBleHRyYSBjaGVjayBzaG91bGQgYmUgb2suIEJlaW5nIG1vcmUg cGFyYW5vaWQganVzdCB0byAKY2F0Y2ggaWYgd2UgYXJlIGhlcmUgYnkgbWlzdGFrZS4KPgo+PiAr CXJldCA9IGluaXRpYWxpemVfbWVpX2hkY3BfZGF0YShjb25uZWN0b3IpOwo+PiArCWlmIChyZXQp Cj4+ICsJCWdvdG8gZXhpdDsKPj4gKwo+PiArCWNvbXBvbmVudF9tYXRjaF9hZGQoZGV2X3ByaXYt PmRybS5kZXYsICZkZXZfcHJpdi0+bWFzdGVyX21hdGNoLAo+PiArCQkJICAgIGk5MTVfaGRjcF9j b21wb25lbnRfbWF0Y2gsIGRldl9wcml2KTsKPj4gKwo+PiArCWhkY3AtPmhkY3AyX3N1cHBvcnRl ZCA9IHRydWU7Cj4+ICsKPj4gK2V4aXQ6Cj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+PiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+PiBpbmRleCA4MzYzZmJkMThlZTguLjc5ODhmOTU4ZDgz NSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+PiBAQCAtMjM2Niw3ICsyMzY2 LDcgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdAo+PiBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+Pgo+PiAJaWYgKGlzX2hkY3Bfc3VwcG9ydGVkKGRl dl9wcml2LCBwb3J0KSkgewo+PiAJCWludCByZXQgPSBpbnRlbF9oZGNwX2luaXQoaW50ZWxfY29u bmVjdG9yLAo+PiAtCQkJCQkgICZpbnRlbF9oZG1pX2hkY3Bfc2hpbSk7Cj4+ICsJCQkJCSAgJmlu dGVsX2hkbWlfaGRjcF9zaGltLCBmYWxzZSk7Cj4gQSBjb21tZW50IG1lbnRpb25pbmcgdGhlIHJl YXNvbiBmb3IgaGRjcDIgc3VwcG9ydGVkIHRvIGJlIGZhbHNlIHdvdWxkIGJlIGdvb2QuClRoaXMg aXMganVzdCBpbnRlcm1lZGlhdGUgc3RhdGUuIGxhdGVyIHBhdGNoIHdpbGwgcmVwbGFjZSB0aGlz IHdpdGggCmNvbm5lY3RvcidzIGhkY3AyLjIgY2FwYWJpbGl0eS4KU28gSSBndWVzcyBJIHdpbGwg c2tpcCB0aGlzIGNvbW1lbnQuCgotLVJhbQo+Cj4+IAkJaWYgKHJldCkKPj4gCQkJRFJNX0RFQlVH X0tNUygiSERDUCBpbml0IGZhaWxlZCwgc2tpcHBpbmcuXG4iKTsKPj4gCX0KPj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBv bmVudC5oCj4+IGluZGV4IDUyMzEzYmMyMjdiMi4uZjIwOGE4M2VhMmM5IDEwMDY0NAo+PiAtLS0g YS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2k5MTVf Y29tcG9uZW50LmgKPj4gQEAgLTI0LDYgKzI0LDEwIEBACj4+ICNpZm5kZWYgX0k5MTVfQ09NUE9O RU5UX0hfCj4+ICNkZWZpbmUgX0k5MTVfQ09NUE9ORU5UX0hfCj4+Cj4+ICsjaW5jbHVkZSA8bGlu dXgvbWVpX2NsX2J1cy5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L21laV9oZGNwLmg+Cj4+ICsjaW5j bHVkZSA8ZHJtL2RybV9oZGNwLmg+Cj4+ICsKPj4gLyogTUFYX1BPUlQgaXMgdGhlIG51bWJlciBv ZiBwb3J0Cj4+ICAgKiBJdCBtdXN0IGJlIHN5bmMgd2l0aCBJOTE1X01BWF9QT1JUUyBkZWZpbmVk IGk5MTVfZHJ2LmgKPj4gICAqLwo+PiBAQCAtMTIxLDYgKzEyNSw1NCBAQCBzdHJ1Y3QgaTkxNV9h dWRpb19jb21wb25lbnQgewo+PiAJY29uc3Qgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1 ZGlvX29wcyAqYXVkaW9fb3BzOyAgfTsKPj4KPj4gK3N0cnVjdCBpOTE1X2hkY3BfY29tcG9uZW50 X29wcyB7Cj4+ICsJLyoqCj4+ICsJICogQG93bmVyOiBtZWlfaGRjcCBtb2R1bGUKPj4gKwkgKi8K Pj4gKwlzdHJ1Y3QgbW9kdWxlICpvd25lcjsKPj4gKwlpbnQgKCppbml0aWF0ZV9oZGNwMl9zZXNz aW9uKShzdHJ1Y3QgbWVpX2NsX2RldmljZSAqY2xkZXYsCj4+ICsJCQkJICAgICAgc3RydWN0IG1l aV9oZGNwX2RhdGEgKmRhdGEsCj4+ICsJCQkJICAgICAgc3RydWN0IGhkY3AyX2FrZV9pbml0ICph a2VfZGF0YSk7Cj4+ICsJaW50Cj4+ICsJKCp2ZXJpZnlfcmVjZWl2ZXJfY2VydF9wcmVwYXJlX2tt KShzdHJ1Y3QgbWVpX2NsX2RldmljZSAqY2xkZXYsCj4+ICsJCQkJCSAgIHN0cnVjdCBtZWlfaGRj cF9kYXRhICpkYXRhLAo+PiArCQkJCQkgICBzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfY2VydCAqcnhf Y2VydCwKPj4gKwkJCQkJICAgYm9vbCAqa21fc3RvcmVkLAo+PiArCQkJCQkgICBzdHJ1Y3QgaGRj cDJfYWtlX25vX3N0b3JlZF9rbQo+PiArCQkJCQkJCQkqZWtfcHViX2ttLAo+PiArCQkJCQkgICBz aXplX3QgKm1zZ19zeik7Cj4+ICsJaW50ICgqdmVyaWZ5X2hwcmltZSkoc3RydWN0IG1laV9jbF9k ZXZpY2UgKmNsZGV2LAo+PiArCQkJICAgICBzdHJ1Y3QgbWVpX2hkY3BfZGF0YSAqZGF0YSwKPj4g KwkJCSAgICAgc3RydWN0IGhkY3AyX2FrZV9zZW5kX2hwcmltZSAqcnhfaHByaW1lKTsKPj4gKwlp bnQgKCpzdG9yZV9wYWlyaW5nX2luZm8pKHN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRldiwKPj4g KwkJCQkgIHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhLAo+PiArCQkJCSAgc3RydWN0IGhkY3Ay X2FrZV9zZW5kX3BhaXJpbmdfaW5mbwo+PiArCQkJCQkJCQkqcGFpcmluZ19pbmZvKTsKPj4gKwlp bnQgKCppbml0aWF0ZV9sb2NhbGl0eV9jaGVjaykoc3RydWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2 LAo+PiArCQkJCSAgICAgICBzdHJ1Y3QgbWVpX2hkY3BfZGF0YSAqZGF0YSwKPj4gKwkJCQkgICAg ICAgc3RydWN0IGhkY3AyX2xjX2luaXQgKmxjX2luaXRfZGF0YSk7Cj4+ICsJaW50ICgqdmVyaWZ5 X2xwcmltZSkoc3RydWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2LAo+PiArCQkJICAgICBzdHJ1Y3Qg bWVpX2hkY3BfZGF0YSAqZGF0YSwKPj4gKwkJCSAgICAgc3RydWN0IGhkY3AyX2xjX3NlbmRfbHBy aW1lICpyeF9scHJpbWUpOwo+PiArCWludCAoKmdldF9zZXNzaW9uX2tleSkoc3RydWN0IG1laV9j bF9kZXZpY2UgKmNsZGV2LAo+PiArCQkJICAgICAgIHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRh LAo+PiArCQkJICAgICAgIHN0cnVjdCBoZGNwMl9za2Vfc2VuZF9la3MgKnNrZV9kYXRhKTsKPj4g KwlpbnQKPj4gKwkoKnJlcGVhdGVyX2NoZWNrX2Zsb3dfcHJlcGFyZV9hY2spKHN0cnVjdCBtZWlf Y2xfZGV2aWNlICpjbGRldiwKPj4gKwkJCQkJICAgc3RydWN0IG1laV9oZGNwX2RhdGEgKmRhdGEs Cj4+ICsJCQkJCSAgIHN0cnVjdCBoZGNwMl9yZXBfc2VuZF9yZWNlaXZlcmlkX2xpc3QKPj4gKwkJ CQkJCQkJKnJlcF90b3BvbG9neSwKPj4gKwkJCQkJICAgc3RydWN0IGhkY3AyX3JlcF9zZW5kX2Fj awo+PiArCj4+IAkqcmVwX3NlbmRfYWNrKTsKPj4gKwlpbnQgKCp2ZXJpZnlfbXByaW1lKShzdHJ1 Y3QgbWVpX2NsX2RldmljZSAqY2xkZXYsCj4+ICsJCQkgICAgIHN0cnVjdCBtZWlfaGRjcF9kYXRh ICpkYXRhLAo+PiArCQkJICAgICBzdHJ1Y3QgaGRjcDJfcmVwX3N0cmVhbV9yZWFkeSAqc3RyZWFt X3JlYWR5KTsKPj4gKwlpbnQgKCplbmFibGVfaGRjcF9hdXRoZW50aWNhdGlvbikoc3RydWN0IG1l aV9jbF9kZXZpY2UgKmNsZGV2LAo+PiArCQkJCQkgIHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRh KTsKPj4gKwlpbnQgKCpjbG9zZV9oZGNwX3Nlc3Npb24pKHN0cnVjdCBtZWlfY2xfZGV2aWNlICpj bGRldiwKPj4gKwkJCQkgIHN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhKTsKPj4gK307Cj4+ICsK Pj4gLyoqCj4+ICAgKiBzdHJ1Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyIC0gVXNlZCBmb3IgY29t bXVuaWNhdGlvbiBiZXR3ZWVuIGk5MTUKPj4gICAqIGFuZCBhbnkgb3RoZXIgZHJpdmVycyBmb3Ig dGhlIHNlcnZpY2VzIG9mIGRpZmZlcmVudCBmZWF0dXJlLgo+PiBAQCAtMTMxLDYgKzE4MywxNCBA QCBzdHJ1Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyIHsKPj4gCSAqIHJlbW92aW5nIHRoZSByZWZl cmVuY2UgdG8gbWVpX2NsZGV2Lgo+PiAJICovCj4+IAlzdHJ1Y3QgZGV2aWNlICppOTE1X2tkZXY7 Cj4+ICsJLyoqCj4+ICsJICogQG1laV9jbGRldjogbWVpIGNsaWVudCBkZXZpY2UsIHVzZWQgYXMg cGFyYW1ldGVyIGZvciBvcHMKPj4gKwkgKi8KPj4gKwlzdHJ1Y3QgbWVpX2NsX2RldmljZSAqbWVp X2NsZGV2Owo+PiArCS8qKgo+PiArCSAqIEBvcHM6IE9wcyBpbXBsZW1lbnRlZCBieSBtZWlfaGRj cCBkcml2ZXIsIHVzZWQgYnkgaTkxNSBkcml2ZXIuCj4+ICsJICovCj4+ICsJY29uc3Qgc3RydWN0 IGk5MTVfaGRjcF9jb21wb25lbnRfb3BzICpoZGNwX29wczsKPj4KPj4gCS8qCj4+IAkgKiBBZGQg aGVyZSB0aGUgaW50ZXJmYWNlIGRldGFpbHMgYmV0d2VlbiBJOTE1IGFuZCBpbnRlcmVzdGVkIG1v ZHVsZXMuCj4+IC0tCj4+IDIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK