From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v8 04/35] drm/i915: Initialize HDCP2.2 Date: Thu, 6 Dec 2018 11:03:17 +0100 Message-ID: <20181206100317.GN21184@phenom.ffwll.local> References: <1543315413-24302-1-git-send-email-ramalingam.c@intel.com> <1543315413-24302-5-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id A9D3F6E56E for ; Thu, 6 Dec 2018 10:03:21 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id y56so233980edd.11 for ; Thu, 06 Dec 2018 02:03:21 -0800 (PST) Content-Disposition: inline In-Reply-To: <1543315413-24302-5-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ramalingam C 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 T24gVHVlLCBOb3YgMjcsIDIwMTggYXQgMDQ6MTM6MDJQTSArMDUzMCwgUmFtYWxpbmdhbSBDIHdy b3RlOgo+IEFkZCB0aGUgSERDUDIuMiBpbml0aWFsaXphdGlvbiB0byB0aGUgZXhpc3RpbmcgSERD UDEuNCBzdGFjay4KCldpdGggdGhlIGNvbW1lbnRzIGJlbG93IGFkZHJlc3NlZCB0aGUgY29tbWl0 IG1lc3NhZ2UgaXMgYSBiaXQgdW50cnVlLApzaW5jZSB0aGlzIGp1c3Qgd2lyZXMgdXAgYSBiYXNp YyBoZGNwMl9zdXBwb3J0ZWQgZmxhZyBpbiBhIGZldyBwbGFjZXMuClBsZWFzZSBtYWtlIHRoYXQg Y2xlYXIuCgo+IAo+IHYyOgo+ICAgbWVpIGludGVyZmFjZSBoYW5kbGUgaXMgcHJvdGVjdGVkIHdp dGggbXV0ZXguIFtDaHJpcyBXaWxzb25dCj4gdjM6Cj4gICBOb3RpZmllcnMgYXJlIHVzZWQgZm9y IHRoZSBtZWkgaW50ZXJmYWNlIHN0YXRlLgo+IHY0Ogo+ICAgUG9sbCBmb3IgbWVpIGNsaWVudCBk ZXZpY2Ugc3RhdGUKPiAgIEVycm9yIG1zZyBmb3Igb3V0IG9mIG1lbSBbVW1hXQo+ICAgSW5saW5l IHJlcSBmb3IgaW5pdCBmdW5jdGlvbiByZW1vdmVkIFtVbWFdCj4gdjU6Cj4gICBSZWJhc2UgYXMg UGFydCBvZiByZW9yZGVyaW5nLgo+ICAgQ29tcG9uZW50IGlzIHVzZWQgZm9yIHRoZSBJOTE1IGFu ZCBNRUlfSERDUCBpbnRlcmZhY2UgW0RhbmllbF0KPiB2NjoKPiAgIEhEQ1AyLjIgdXNlcyB0aGUg STkxNSBjb21wb25lbnQgbWFzdGVyIHRvIGNvbW11bmljYXRlIHdpdGggbWVpX2hkY3AKPiAJLSBb RGFuaWVsXQo+ICAgUmVxdWlyZWQgSERDUDIuMiB2YXJpYWJsZXMgZGVmaW5lZCBbU2VhbiBQYXVs XQo+IHY3Ogo+ICAgaW50ZWxfaGRjcDIuMl9pbml0IHJldHVybnMgdm9pZCBbVW1hXQo+ICAgUmVh bGlnbmluZyB0aGUgY29kZXMuCj4gdjg6Cj4gICBBdm9pZCB1c2luZyBib29sIHN0cnVjdHVyZSBt ZW1iZXJzLgo+ICAgTUVJIGludGVyZmFjZSByZWxhdGVkIGNoYW5nZXMgYXJlIG1vdmVkIGludG8g c2VwYXJhdGUgcGF0Y2guCj4gICBDb21taXQgbXNnIGlzIHVwZGF0ZWQgYWNjb3JkaW5nbHkuCj4g ICBpbnRlbF9oZGNwX2V4aXQgaXMgZGVmaW5lZCBhbmQgdXNlZCBmcm9tIGk5MTVfdW5sb2FkCj4g Cj4gU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgfCAgIDIgKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgfCAgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggIHwgIDE2ICsrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jIHwgMTcyICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8ICAgMiArLQo+ICA1IGZpbGVzIGNo YW5nZWQsIDEzMCBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKPiBpbmRleCBiMWQyM2M3M2MxNDcuLmZiZWRkNTAyNGFmZSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0xNzU1LDYgKzE3NTUsOCBAQCB2b2lkIGk5MTVfZHJp dmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAKPiAgCWRpc2FibGVfcnBtX3dh a2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7Cj4gIAo+ICsJaW50ZWxfaGRjcF9leGl0KGRldl9wcml2 KTsKClRoaXMgc21lbGxzIGxpa2UgYSBzZXBhcmF0ZSBwYXRjaC4gTmVlZHMgdG8gYmUgc3BsaXQg b3V0LiBMb29raW5nIGF0IHRoZQppbXBsZW1lbnRhdGlvbiBvZiBpbnRlbF9oZGNwX2V4aXQgSSB0 aGluayBpdCdzIHBhcGVyaW5nIG92ZXIgc29tZSB1bmxvYWQKdHJvdWJsZS4gV2Ugc2hvdWxkIGJl IHNodXR0aW5nIGRvd24gYWxsIHRoZSBvdXRwdXRzIG9uIGRyaXZlciB1bmxvYWQsCndoaWNoIG1l aSBzaG91bGQgYmUgdHJpZ2dlcmluZyAod2l0aCB0aGUgY29tcG9uZW50IHN0dWZmKSwgd2hpY2gg bWVhbnMKdGhpcyBjb2RlIHNob3VsZCBiZSB1bmVjZXNzYXJ5LiBCdXQgSSdtIG5vdCBzdXJlLgoK RWl0aGVyIHdheSBuZWVkcyB0byBiZSBzcGxpdCBvdXQsIGJ1dCBJIHRoaW5rIHByb3BlciBzb2x1 dGlvbiBpcyB0byBkcm9wCml0LgoKPiArCj4gIAlpOTE1X2RyaXZlcl91bnJlZ2lzdGVyKGRldl9w cml2KTsKPiAgCj4gIAlpZiAoaTkxNV9nZW1fc3VzcGVuZChkZXZfcHJpdikpCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gaW5kZXggMThlM2E1YTNkODczLi5hYzYyYWYwNzM2ODggMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNjY3NSw3ICs2Njc1LDggQEAgaW50ZWxfZHBfaW5p dF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4g IAlpbnRlbF9kcF9hZGRfcHJvcGVydGllcyhpbnRlbF9kcCwgY29ubmVjdG9yKTsKPiAgCj4gIAlp ZiAoaXNfaGRjcF9zdXBwb3J0ZWQoZGV2X3ByaXYsIHBvcnQpICYmICFpbnRlbF9kcF9pc19lZHAo aW50ZWxfZHApKSB7Cj4gLQkJaW50IHJldCA9IGludGVsX2hkY3BfaW5pdChpbnRlbF9jb25uZWN0 b3IsICZpbnRlbF9kcF9oZGNwX3NoaW0pOwo+ICsJCWludCByZXQgPSBpbnRlbF9oZGNwX2luaXQo aW50ZWxfY29ubmVjdG9yLCAmaW50ZWxfZHBfaGRjcF9zaGltLAo+ICsJCQkJCSAgZmFsc2UpOwo+ ICAJCWlmIChyZXQpCj4gIAkJCURSTV9ERUJVR19LTVMoIkhEQ1AgaW5pdCBmYWlsZWQsIHNraXBw aW5nLlxuIik7Cj4gIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBhNjJkNzdi NzYyOTEuLjg1YTUyNjU5ODA5NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAg LTM4OCw2ICszODgsMTcgQEAgc3RydWN0IGludGVsX2hkY3Agewo+ICAJdTY0IHZhbHVlOwo+ICAJ c3RydWN0IGRlbGF5ZWRfd29yayBjaGVja193b3JrOwo+ICAJc3RydWN0IHdvcmtfc3RydWN0IHBy b3Bfd29yazsKPiArCj4gKwkvKiBIRENQMi4yIHJlbGF0ZWQgZGVmaW5pdGlvbnMgKi8KPiArCS8q IEZsYWcgaW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBjb25uZWN0b3Igc3VwcG9ydHMgSERDUDIuMiBv ciBub3QuICovCj4gKwl1OCBoZGNwMl9zdXBwb3J0ZWQ7Cj4gKwo+ICsJLyoKPiArCSAqIENvbnRl bnQgU3RyZWFtIFR5cGUgZGVmaW5lZCBieSBjb250ZW50IG93bmVyLiBUWVBFMCgweDApIGNvbnRl bnQgY2FuCj4gKwkgKiBmbG93IGluIHRoZSBsaW5rIHByb3RlY3RlZCBieSBIRENQMi4yIG9yIEhE Q1AxLjQsIHdoZXJlIGFzIFRZUEUxKDB4MSkKPiArCSAqIGNvbnRlbnQgY2FuIGZsb3cgb25seSB0 aHJvdWdoIGEgbGluayBwcm90ZWN0ZWQgYnkgSERDUDIuMi4KPiArCSAqLwo+ICsJdTggY29udGVu dF90eXBlOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4gQEAgLTIwMTYs MTIgKzIwMjcsMTUgQEAgdm9pZCBpbnRlbF9oZGNwX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpvbGRfc3RhdGUsCj4gIAkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19z dGF0ZSk7Cj4gIGludCBpbnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+IC0JCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3NoaW0p Owo+ICsJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3NoaW0sCj4gKwkJ ICAgIGJvb2wgaGRjcDJfc3VwcG9ydGVkKTsKPiAgaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gIGludCBpbnRlbF9oZGNwX2Rpc2FibGUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAgaW50IGludGVsX2hkY3BfY2hl Y2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICBib29sIGlzX2hk Y3Bfc3VwcG9ydGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0 IHBvcnQpOwo+ICBib29sIGludGVsX2hkY3BfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpOwo+ICtib29sIGlzX2hkY3AyX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGludGVsX2hkY3BfZXhpdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAKPiAgLyogaW50ZWxfcHNyLmMgKi8KPiAgI2RlZmlu ZSBDQU5fUFNSKGRldl9wcml2KSAoSEFTX1BTUihkZXZfcHJpdikgJiYgZGV2X3ByaXYtPnBzci5z aW5rX3N1cHBvcnQpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk Y3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+IGluZGV4IDA0YmE2YzEz ZTcxNS4uOTlkZGRiNTQwOTU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkY3AuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+IEBA IC03MzAsNiArNzMwLDY1IEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2hkY3BfdG9f Y29ubmVjdG9yKHN0cnVjdCBpbnRlbF9oZGNwICpoZGNwKQo+ICAJcmV0dXJuIGNvbnRhaW5lcl9v ZihoZGNwLCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBoZGNwKTsKPiAgfQo+ICAKPiArLyogSW1w bGVtZW50cyBQYXJ0IDMgb2YgdGhlIEhEQ1AgYXV0aG9yaXphdGlvbiBwcm9jZWR1cmUgKi8KPiAr aW50IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCgpTcHVyaW91cyBtb3ZlbWVudCBvZiB0aGlzIGZ1bmN0aW9uLiBQbGVhc2UgZHJvcCwgb3Ig aWYgeW91IG5lZWQgdGhpcwpmdW5jdGlvbiBtb3ZlZCwgc3BsaXQgaXQgb3V0IGludG8gYSBzZXBh cmF0ZSBwYXRjaCB0aGF0IG9ubHkgbW92ZXMgdGhlCmZ1bmN0aW9uIGFyb3VuZC4KCj4gK3sKPiAr CXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldl9wcml2 YXRlOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25u X3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19w b3J0LT5iYXNlLnBvcnQ7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlpZiAoIWhkY3AtPnNoaW0p Cj4gKwkJcmV0dXJuIC1FTk9FTlQ7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmaGRjcC0+bXV0ZXgpOwo+ ICsKPiArCWlmIChoZGNwLT52YWx1ZSA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5E RVNJUkVEKQo+ICsJCWdvdG8gb3V0Owo+ICsKPiArCWlmICghKEk5MTVfUkVBRChQT1JUX0hEQ1Bf U1RBVFVTKHBvcnQpKSAmIEhEQ1BfU1RBVFVTX0VOQykpIHsKPiArCQlEUk1fRVJST1IoIiVzOiVk IEhEQ1AgY2hlY2sgZmFpbGVkOiBsaW5rIGlzIG5vdCBlbmNyeXB0ZWQsJXhcbiIsCj4gKwkJCSAg Y29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAo+ICsJCQkgIEk5 MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSk7Cj4gKwkJcmV0ID0gLUVOWElPOwo+ICsJ CWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7Cj4gKwkJ c2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiAr Cj4gKwlpZiAoaGRjcC0+c2hpbS0+Y2hlY2tfbGluayhpbnRlbF9kaWdfcG9ydCkpIHsKPiArCQlp ZiAoaGRjcC0+dmFsdWUgIT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCkg ewo+ICsJCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9FTkFCTEVE Owo+ICsJCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwo+ICsJCX0KPiArCQlnb3Rv IG91dDsKPiArCX0KPiArCj4gKwlEUk1fREVCVUdfS01TKCJbJXM6JWRdIEhEQ1AgbGluayBmYWls ZWQsIHJldHJ5aW5nIGF1dGhlbnRpY2F0aW9uXG4iLAo+ICsJCSAgICAgIGNvbm5lY3Rvci0+YmFz ZS5uYW1lLCBjb25uZWN0b3ItPmJhc2UuYmFzZS5pZCk7Cj4gKwo+ICsJcmV0ID0gX2ludGVsX2hk Y3BfZGlzYWJsZShjb25uZWN0b3IpOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9FUlJPUigiRmFp bGVkIHRvIGRpc2FibGUgaGRjcCAoJWQpXG4iLCByZXQpOwo+ICsJCWhkY3AtPnZhbHVlID0gRFJN X01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7Cj4gKwkJc2NoZWR1bGVfd29yaygmaGRj cC0+cHJvcF93b3JrKTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gKwlyZXQgPSBfaW50ZWxf aGRjcF9lbmFibGUoY29ubmVjdG9yKTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIkZh aWxlZCB0byBlbmFibGUgaGRjcCAoJWQpXG4iLCByZXQpOwo+ICsJCWhkY3AtPnZhbHVlID0gRFJN X01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7Cj4gKwkJc2NoZWR1bGVfd29yaygmaGRj cC0+cHJvcF93b3JrKTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gK291dDoKPiArCW11dGV4 X3VubG9jaygmaGRjcC0+bXV0ZXgpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgc3RhdGlj IHZvaWQgaW50ZWxfaGRjcF9jaGVja193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAg ewo+ICAJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSBjb250YWluZXJfb2YodG9fZGVsYXllZF93 b3JrKHdvcmspLAo+IEBAIC03NzQsMTQgKzgzMywzNCBAQCBib29sIGlzX2hkY3Bfc3VwcG9ydGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gIAkJ IUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmIHBvcnQgPCBQT1JUX0UpOwo+ICB9Cj4gIAo+ICti b29sIGlzX2hkY3AyX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gK3sKPiArCXJldHVybiAoKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5J TEFLRShkZXZfcHJpdikgfHwKPiArCQkgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSAmJiBJU19FTkFC TEVEKENPTkZJR19JTlRFTF9NRUlfSERDUCkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbnRl bF9oZGNwMl9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJh c2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsK PiArCj4gKwlXQVJOX09OKCFpc19oZGNwMl9zdXBwb3J0ZWQoZGV2X3ByaXYpKTsKPiArCj4gKwkv KiBUT0RPOiBNRUkgaW50ZXJmYWNlIG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIGhlcmUgKi8KPiAr CWhkY3AtPmhkY3AyX3N1cHBvcnRlZCA9IDE7Cj4gK30KPiArCj4gIGludCBpbnRlbF9oZGNwX2lu aXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IC0JCSAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfaGRjcF9zaGltICpzaGltKQo+ICsJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRj cF9zaGltICpzaGltLAo+ICsJCSAgICBib29sIGhkY3AyX3N1cHBvcnRlZCkKPiAgewo+ICAJc3Ry dWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+ICAJaW50IHJldDsKPiAg Cj4gLQlyZXQgPSBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3RlY3Rpb25fcHJvcGVy dHkoCj4gLQkJCSZjb25uZWN0b3ItPmJhc2UpOwo+ICsJaWYgKCFzaGltKQo+ICsJCXJldHVybiAt RUlOVkFMOwo+ICsKPiArCXJldCA9IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfcHJvdGVj dGlvbl9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJu IHJldDsKPiAgCj4gQEAgLTc4OSw5ICs4NjgsMzcgQEAgaW50IGludGVsX2hkY3BfaW5pdChzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAltdXRleF9pbml0KCZoZGNwLT5tdXRl eCk7Cj4gIAlJTklUX0RFTEFZRURfV09SSygmaGRjcC0+Y2hlY2tfd29yaywgaW50ZWxfaGRjcF9j aGVja193b3JrKTsKPiAgCUlOSVRfV09SSygmaGRjcC0+cHJvcF93b3JrLCBpbnRlbF9oZGNwX3By b3Bfd29yayk7Cj4gKwo+ICsJaWYgKGhkY3AyX3N1cHBvcnRlZCkKPiArCQlpbnRlbF9oZGNwMl9p bml0KGNvbm5lY3Rvcik7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3ZvaWQgaW50ZWxf aGRjcF9leGl0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ICsJc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7Cj4gKwo+ ICsJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmY29ubl9pdGVyKTsKPiArCWRy bV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiArCQlp bnRlbF9jb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiArCj4gKwkJ aWYgKCFpbnRlbF9jb25uZWN0b3ItPmhkY3Auc2hpbSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJ CWludGVsX2hkY3BfZGlzYWJsZShpbnRlbF9jb25uZWN0b3IpOwo+ICsKPiArCQltdXRleF9sb2Nr KCZpbnRlbF9jb25uZWN0b3ItPmhkY3AubXV0ZXgpOwo+ICsJCWludGVsX2Nvbm5lY3Rvci0+aGRj cC5oZGNwMl9zdXBwb3J0ZWQgPSAwOwo+ICsJCWludGVsX2Nvbm5lY3Rvci0+aGRjcC5zaGltID0g TlVMTDsKPiArCQltdXRleF91bmxvY2soJmludGVsX2Nvbm5lY3Rvci0+aGRjcC5tdXRleCk7Cj4g Kwl9Cj4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7Cj4gK30KPiAr Cj4gIGludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsK PiBAQCAtODY3LDYyICs5NzQsMyBAQCB2b2lkIGludGVsX2hkY3BfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkJCSAgIG5ld19zdGF0ZS0+Y3J0Yyk7 Cj4gIAljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ICB9Cj4gLQo+IC0vKiBJbXBs ZW1lbnRzIFBhcnQgMyBvZiB0aGUgSERDUCBhdXRob3JpemF0aW9uIHByb2NlZHVyZSAqLwo+IC1p bnQgaW50ZWxfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv cikKPiAtewo+IC0Jc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRl di0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKPiAtCWVudW0gcG9ydCBwb3J0ID0g aW50ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsKPiAtCWludCByZXQgPSAwOwo+IC0KPiAtCWlmICgh aGRjcC0+c2hpbSkKPiAtCQlyZXR1cm4gLUVOT0VOVDsKPiAtCj4gLQltdXRleF9sb2NrKCZoZGNw LT5tdXRleCk7Cj4gLQo+IC0JaWYgKGhkY3AtPnZhbHVlID09IERSTV9NT0RFX0NPTlRFTlRfUFJP VEVDVElPTl9VTkRFU0lSRUQpCj4gLQkJZ290byBvdXQ7Cj4gLQo+IC0JaWYgKCEoSTkxNV9SRUFE KFBPUlRfSERDUF9TVEFUVVMocG9ydCkpICYgSERDUF9TVEFUVVNfRU5DKSkgewo+IC0JCURSTV9F UlJPUigiJXM6JWQgSERDUCBjaGVjayBmYWlsZWQ6IGxpbmsgaXMgbm90IGVuY3J5cHRlZCwleFxu IiwKPiAtCQkJICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQs Cj4gLQkJCSAgSTkxNV9SRUFEKFBPUlRfSERDUF9TVEFUVVMocG9ydCkpKTsKPiAtCQlyZXQgPSAt RU5YSU87Cj4gLQkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVT SVJFRDsKPiAtCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwo+IC0JCWdvdG8gb3V0 Owo+IC0JfQo+IC0KPiAtCWlmIChoZGNwLT5zaGltLT5jaGVja19saW5rKGludGVsX2RpZ19wb3J0 KSkgewo+IC0JCWlmIChoZGNwLT52YWx1ZSAhPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05f VU5ERVNJUkVEKSB7Cj4gLQkJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNU SU9OX0VOQUJMRUQ7Cj4gLQkJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7Cj4gLQkJ fQo+IC0JCWdvdG8gb3V0Owo+IC0JfQo+IC0KPiAtCURSTV9ERUJVR19LTVMoIlslczolZF0gSERD UCBsaW5rIGZhaWxlZCwgcmV0cnlpbmcgYXV0aGVudGljYXRpb25cbiIsCj4gLQkJICAgICAgY29u bmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkKTsKPiAtCj4gLQlyZXQg PSBfaW50ZWxfaGRjcF9kaXNhYmxlKGNvbm5lY3Rvcik7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJRFJN X0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBoZGNwICglZClcbiIsIHJldCk7Cj4gLQkJaGRjcC0+ dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKPiAtCQlzY2hlZHVs ZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwo+IC0JCWdvdG8gb3V0Owo+IC0JfQo+IC0KPiAtCXJl dCA9IF9pbnRlbF9oZGNwX2VuYWJsZShjb25uZWN0b3IpOwo+IC0JaWYgKHJldCkgewo+IC0JCURS TV9ERUJVR19LTVMoIkZhaWxlZCB0byBlbmFibGUgaGRjcCAoJWQpXG4iLCByZXQpOwo+IC0JCWhk Y3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7Cj4gLQkJc2No ZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKPiAtCQlnb3RvIG91dDsKPiAtCX0KPiAtCj4g LW91dDoKPiAtCW11dGV4X3VubG9jaygmaGRjcC0+bXV0ZXgpOwo+IC0JcmV0dXJuIHJldDsKPiAt fQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBpbmRleCBlMmM2YTJiM2U4ZjIuLmU3NTVh MzM3MGJjYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBAQCAtMjQxNyw3ICsy NDE3LDcgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAKPiAgCWlmIChpc19oZGNwX3N1cHBvcnRlZChk ZXZfcHJpdiwgcG9ydCkpIHsKPiAgCQlpbnQgcmV0ID0gaW50ZWxfaGRjcF9pbml0KGludGVsX2Nv bm5lY3RvciwKPiAtCQkJCQkgICZpbnRlbF9oZG1pX2hkY3Bfc2hpbSk7Cj4gKwkJCQkJICAmaW50 ZWxfaGRtaV9oZGNwX3NoaW0sIGZhbHNlKTsKPiAgCQlpZiAocmV0KQo+ICAJCQlEUk1fREVCVUdf S01TKCJIRENQIGluaXQgZmFpbGVkLCBza2lwcGluZy5cbiIpOwoKVGhlIGFjdHVhbCBjaGFuZ2Ug bGVmdCB0byB3aXJlIGhkY3AyX3N1cHBvcnRlZCBzZWVtcyBvayB3aXRoIG1lLCBidXQgaGFyZAp0 byB0ZWxsIHdpdGhvdXQgc2VlaW5nIG1vcmUgeWV0IDotKQotRGFuaWVsCgo+ICAJfQo+IC0tIAo+ IDIuNy40Cj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==