From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCHv6 5/5] drm/i915/dp: Enable Upfront link training for typeC DP support on BXT Date: Tue, 24 May 2016 10:40:17 +0300 Message-ID: <1464075617.2930.4.camel@gmail.com> References: <1463734742-13088-1-git-send-email-durgadoss.r@intel.com> <1463734742-13088-6-git-send-email-durgadoss.r@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-x242.google.com (mail-pa0-x242.google.com [IPv6:2607:f8b0:400e:c03::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9C2296E675 for ; Tue, 24 May 2016 07:40:23 +0000 (UTC) Received: by mail-pa0-x242.google.com with SMTP id gp3so1214764pac.2 for ; Tue, 24 May 2016 00:40:23 -0700 (PDT) In-Reply-To: <1463734742-13088-6-git-send-email-durgadoss.r@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Durgadoss R , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE2LTA1LTIwIGF0IDE0OjI5ICswNTMwLCBEdXJnYWRvc3MgUiB3cm90ZToKPiBU byBzdXBwb3J0IFVTQiB0eXBlIEMgYWx0ZXJuYXRlIERQIG1vZGUsIHRoZSBkaXNwbGF5IGRyaXZl ciBuZWVkcyB0bwo+IGtub3cgdGhlIG51bWJlciBvZiBsYW5lcyByZXF1aXJlZCBieSB0aGUgRFAg cGFuZWwgYXMgd2VsbCBhcyBudW1iZXIKPiBvZiBsYW5lcyB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQg YnkgdGhlIHR5cGUtQyBjYWJsZS4gU29tZXRpbWVzLCB0aGUKPiB0eXBlLUMgY2FibGUgbWF5IGxp bWl0IHRoZSBiYW5kd2lkdGggZXZlbiBpZiBQYW5lbCBjYW4gc3VwcG9ydAo+IG1vcmUgbGFuZXMu IFRvIGFkZHJlc3MgdGhlc2Ugc2NlbmFyaW9zLCB0aGUgZGlzcGxheSBkcml2ZXIgd2lsbAo+IHN0 YXJ0IGxpbmsgdHJhaW5pbmcgd2l0aCBtYXggbGFuZXMsIGFuZCBpZiB0aGF0IGZhaWxzLCB0aGUg ZHJpdmVyCj4gZmFsbHMgYmFjayB0byB4MiBsYW5lczsgYW5kIHJlcGVhdHMgdGhpcyBwcm9jZWR1 cmUgZm9yIGFsbAo+IGJhbmR3aWR0aC9sYW5lIGNvbmZpZ3VyYXRpb25zLgo+IAo+ICogU2luY2Ug bGluayB0cmFpbmluZyBpcyBkb25lIGJlZm9yZSBtb2Rlc2V0IG9ubHkgdGhlIHBvcnQKPiDCoCAo YW5kIG5vdCBwaXBlL3BsYW5lcykgYW5kIGl0cyBhc3NvY2lhdGVkIFBMTHMgYXJlIGVuYWJsZWQu Cj4gKiBPbiBEUCBob3RwbHVnOiBEaXJlY3RseSBzdGFydCBsaW5rIHRyYWluaW5nIG9uIHRoZSBE UCBlbmNvZGVyLgo+ICogT24gQ29ubmVjdGVkIGJvb3Qgc2NlbmFyaW9zOiBXaGVuIGJvb3RlZCB3 aXRoIGFuIExGUCBhbmQgYSBEUCwKPiDCoCBzb21ldGltZXMgQklPUyBicmluZ3MgdXAgRFAuIElu IHRoZXNlIGNhc2VzLCB3ZSBkaXNhYmxlIHRoZQo+IMKgIGNydGMgYW5kIHRoZW4gZG8gdXBmcm9u dCBsaW5rIHRyYWluaW5nOyBhbmQgYnJpbmcgaXQgYmFjayB1cC4KPiAqIEFsbCBsb2NhbCBjaGFu Z2VzIG1hZGUgZm9yIHVwZnJvbnQgbGluayB0cmFpbmluZyBhcmUgcmVzZXQKPiDCoCB0byB0aGVp ciBwcmV2aW91cyB2YWx1ZXMgb25jZSBpdCBpcyBkb25lOyBzbyB0aGF0IHRoZQo+IMKgIHN1YnNl cXVlbnQgbW9kZXNldCBpcyBub3QgYXdhcmUgb2YgdGhlc2UgY2hhbmdlcy4KPiAKPiBDaGFuZ2Vz IHNpbmNlIHY1Ogo+ICogTW92ZWQgcmV0cnkgbG9naWMgaW4gdXBmcm9udCB0byBpbnRlbF9kcC5j IHNvIHRoYXQgaXQKPiDCoCBjYW4gYmUgdXNlZCBmb3IgYWxsIHBsYXRmb3Jtcy4KPiBDaGFuZ2Vz IHNpbmNlIHY0Ogo+ICogUmVtb3ZlZCB1c2FnZSBvZiBjcnRjX3N0YXRlIGluIHVwZnJvbnQgbGlu ayB0cmFpbmluZzsKPiDCoCBIZW5jZSBubyBuZWVkIHRvIGZpbmQgZnJlZSBjcnRjIHRvIGRvIHVw ZnJvbnQgbm93Lgo+ICogUmUtZW5hYmxlIGNydGMgaWYgaXQgd2FzIGRpc2FibGVkIGZvciB1cGZy b250Lgo+ICogVXNlIHNlcGFyYXRlIHZhcmlhYmxlcyB0byB0cmFjayBtYXggbGFuZSBjb3VudAo+ IMKgIGFuZCBsaW5rIHJhdGUgZm91bmQgYnkgdXBmcm9udCwgd2l0aG91dCBtb2RpZnlpbmcKPiDC oCB0aGUgb3JpZ2luYWwgRFBDRCByZWFkIGZyb20gcGFuZWwuCj4gQ2hhbmdlcyBzaW5jZSB2MzoK PiAqIEZpeGVkIGEgcmV0dXJuIHZhbHVlIG9uIEJYVCBjaGVjawo+ICogUmV3b3JrZWQgb24gdG9w IG9mIGJ4dF9kZGlfcGxsX3NlbGVjdCBzcGxpdCBmcm9tIEFuZGVyCj4gKiBSZW5hbWVkIGZyb20g ZGRpX3VwZnJvbnQgdG8gYnh0X3VwZnJvbnQgc2luY2UgdGhlCj4gwqAgdXBmcm9udCBsb2dpYyBp bmNsdWRlcyBCWFQgc3BlY2lmaWMgZnVuY3Rpb25zIGZvciBub3cuCj4gQ2hhbmdlcyBzaW5jZSB2 MjoKPiAqIFJlYmFzZWQgb24gdG9wIG9mIGxhdGVzdCBkcGxsX21nci5jIGNvZGUgYW5kCj4gwqAg bGF0ZXN0IEhQRCByZWxhdGVkIGNsZWFuIHVwcy4KPiAqIENvcnJlY3RlZCByZXR1cm4gdmFsdWVz IGZyb20gdXBmcm9udCAoQW5kZXIpCj4gKiBDb3JyZWN0ZWQgYXRvbWljIGxvY2tpbmcgZm9yIHVw ZnJvbnQgaW4gaW50ZWxfZHAuYyAoVmlsbGUpCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAqwqDCoGFs bCBwbGwgcmVsYXRlZCBmdW5jdGlvbnMgaW5zaWRlIGRkaS5jCj4gCj4gU2lnbmVkLW9mZi1ieTog RHVyZ2Fkb3NzIFIgPGR1cmdhZG9zcy5yQGludGVsLmNvbT4KCkkgaGF2ZSBvbmUgY29tbWVudCBi ZWxvdywgYnV0IHRoaXMgaXMKClJldmlld2VkLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVp cmEgPGNvbnNlbHZhbjJAZ21haWwuY29tCgpJJ2Qgc3RpbGwgbGlrZSBhbiBhY2sgZnJvbSBWaWxs ZSBhbmQvb3IgSmFuaSBiZWZvcmUgbWVyZ2luZywgdGhvdWdoLiBBbmQgb2YKY291cnNlLCBpdCBu ZWVkcyB0byBwYXNzIENJLgoKPiAtLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jIHzCoMKgNDUgKysrKysrKysrKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Y8KgwqB8IDE3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+IC0KPiDC oGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHzCoMKgwqA4ICsrCj4gwqAzIGZpbGVz IGNoYW5nZWQsIDIyNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCA3ZTYzMzFhLi44ZDIyNGJmIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMjMzMCw2ICsyMzMwLDUxIEBAIGludGVsX2RkaV9pbml0 X2hkbWlfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPiAqaW50ZWxfZGlnX3Bv cnQpCj4gwqAJcmV0dXJuIGNvbm5lY3RvcjsKPiDCoH0KPiDCoAo+ICtib29sIGludGVsX2J4dF91 cGZyb250X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCWludCBj bG9jaywgdWludDhfdCBsYW5lX2NvdW50KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ICsJc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAr CXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ICsJc3RydWN0IGludGVsX3NoYXJlZF9k cGxsX2NvbmZpZyB0bXBfcGxsX2NvbmZpZzsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICsJZW51bSBpbnRlbF9kcGxs X2lkIGRwbGxfaWQgPSAoZW51bSBpbnRlbF9kcGxsX2lkKWRpZ19wb3J0LT5wb3J0Owo+ICsKPiAr CS8qCj4gKwnCoCogRklYTUU6IFdvcmtzIG9ubHkgZm9yIEJYVC4KPiArCcKgKiBTZWxlY3QgdGhl IHJlcXVpcmVkIFBMTC4gVGhpcyB3b3JrcyBmb3IgcGxhdGZvcm1zIHdoZXJlCj4gKwnCoCogdGhl cmUgaXMgbm8gc2hhcmVkIERQTEwuCj4gKwnCoCovCj4gKwlwbGwgPSAmZGV2X3ByaXYtPnNoYXJl ZF9kcGxsc1tkcGxsX2lkXTsKPiArCWlmIChXQVJOX09OKHBsbC0+YWN0aXZlX21hc2spKSB7Cj4g KwkJRFJNX0VSUk9SKCJTaGFyZWQgRFBMTCBhbHJlYWR5IGluIHVzZS4gYWN0aXZlX21hc2s6JXhc biIsCj4gcGxsLT5hY3RpdmVfbWFzayk7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiAr CXRtcF9wbGxfY29uZmlnID0gcGxsLT5jb25maWc7Cj4gKwo+ICsJaWYgKCFieHRfZGRpX2RwX3Nl dF9kcGxsX2h3X3N0YXRlKGNsb2NrLCAmcGxsLT5jb25maWcuaHdfc3RhdGUpKSB7Cj4gKwkJRFJN X0VSUk9SKCJDb3VsZCBub3Qgc2V0dXAgRFBMTFxuIik7Cj4gKwkJcGxsLT5jb25maWcgPSB0bXBf cGxsX2NvbmZpZzsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJLyogRW5hYmxlIFBM TCBmb2xsb3dlZCBieSBwb3J0ICovCj4gKwlwbGwtPmZ1bmNzLmVuYWJsZShkZXZfcHJpdiwgcGxs KTsKPiArCWludGVsX2RkaV9wcmVfZW5hYmxlX2RwKGVuY29kZXIsIGNsb2NrLCBsYW5lX2NvdW50 LCBwbGwpOwo+ICsKPiArCURSTV9ERUJVR19LTVMoIlVwZnJvbnQgbGluayB0cmFpbiAlczogbGlu a19jbG9jazolZCBsYW5lczolZFxuIiwKPiArCWludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQgPyAi UGFzc2VkIiA6ICJGYWlsZWQiLCBjbG9jaywgbGFuZV9jb3VudCk7Cj4gKwo+ICsJLyogRGlzYWJs ZSBwb3J0IGZvbGxvd2VkIGJ5IFBMTCBmb3IgbmV4dCByZXRyeS9jbGVhbiB1cCAqLwo+ICsJaW50 ZWxfZGRpX3Bvc3RfZGlzYWJsZShlbmNvZGVyKTsKPiArCXBsbC0+ZnVuY3MuZGlzYWJsZShkZXZf cHJpdiwgcGxsKTsKPiArCj4gKwlwbGwtPmNvbmZpZyA9IHRtcF9wbGxfY29uZmlnOwo+ICsJcmV0 dXJuIGludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQ7Cj4gK30KPiArCj4gwqB2b2lkIGludGVsX2Rk aV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KQo+IMKgewo+IMKg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggOTViYTVhYS4uNmVjYWEzMCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0xNDcsMTggKzE0NywyOCBAQCBpbnRlbF9kcF9tYXhf bGlua19idyhzdHJ1Y3QgaW50ZWxfZHDCoMKgKmludGVsX2RwKQo+IMKgCQltYXhfbGlua19idyA9 IERQX0xJTktfQldfMV82MjsKPiDCoAkJYnJlYWs7Cj4gwqAJfQo+IC0JcmV0dXJuIG1heF9saW5r X2J3Owo+ICsJLyoKPiArCcKgKiBMaW1pdCBtYXggbGluayBidyB3LnIudCB0byB0aGUgbWF4IHZh bHVlIGZvdW5kCj4gKwnCoCogdXNpbmcgVXBmcm9udCBsaW5rIHRyYWluaW5nIGFsc28uCj4gKwnC oCovCj4gKwlyZXR1cm4gbWluKG1heF9saW5rX2J3LCBpbnRlbF9kcC0+bWF4X2xpbmtfYndfdXBm cm9udCk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyB1OCBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0JdTgg c291cmNlX21heCwgc2lua19tYXg7Cj4gKwl1OCB0ZW1wLCBzb3VyY2VfbWF4LCBzaW5rX21heDsK PiDCoAo+IMKgCXNvdXJjZV9tYXggPSBpbnRlbF9kaWdfcG9ydC0+bWF4X2xhbmVzOwo+IMKgCXNp bmtfbWF4ID0gZHJtX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwLT5kcGNkKTsKPiDCoAo+IC0J cmV0dXJuIG1pbihzb3VyY2VfbWF4LCBzaW5rX21heCk7Cj4gKwl0ZW1wID0gbWluKHNvdXJjZV9t YXgsIHNpbmtfbWF4KTsKPiArCj4gKwkvKgo+ICsJwqAqIExpbWl0IG1heCBsYW5lcyB3LnIudCB0 byB0aGUgbWF4IHZhbHVlIGZvdW5kCj4gKwnCoCogdXNpbmcgVXBmcm9udCBsaW5rIHRyYWluaW5n IGFsc28uCj4gKwnCoCovCj4gKwlyZXR1cm4gbWluKHRlbXAsIGludGVsX2RwLT5tYXhfbGFuZXNf dXBmcm9udCk7Cj4gwqB9Cj4gwqAKPiDCoC8qCj4gQEAgLTE1OTAsNiArMTYwMCwxNSBAQCB2b2lk IGludGVsX2RwX3NldF9saW5rX3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHAsCj4g wqAJaW50ZWxfZHAtPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+IMKgfQo+IMKgCj4gK3N0YXRp YyB2b2lkIGludGVsX2RwX2luaXRfdXBmcm9udF9wYXJhbXMoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiArewo+ICsJaWYgKFdBUk5fT04oaW50ZWxfZHAtPnVwZnJvbnRfZG9uZSkpCj4gKwkJ cmV0dXJuOwo+ICsKPiArCWludGVsX2RwLT5tYXhfbGlua19id191cGZyb250ID0gaW50ZWxfZHAt PmRwY2RbRFBfTUFYX0xJTktfUkFURV07Cj4gKwlpbnRlbF9kcC0+bWF4X2xhbmVzX3VwZnJvbnQg PSBkcm1fZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHAtPmRwY2QpOwo+ICt9Cj4gKwo+IMKgc3Rh dGljIHZvaWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK PiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4g QEAgLTM0MjQsNiArMzQ0MywxNiBAQCBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+IMKgCQlpbnRlbF9kcC0+bnVtX3NpbmtfcmF0ZXMgPSBpOwo+IMKgCX0KPiDC oAo+ICsJLyoKPiArCcKgKiBUaGUgbGlua19idyBhbmQgbGFuZSBjb3VudCB2YXVlcyBhcmUgaW5p dGlhbGl6ZWQgdG8gTUFYIHBvc3NpYmxlCj4gKwnCoCogdmFsdWUgZm9yIGFsbCBlbmNvZGVyIHR5 cGVzIGkuZSBEUCwgZURQLCBEUC1NU1QsIHNvIHRoYXQgdGhlCj4gKwnCoCogaW50ZWxfZHBfbWF4 X3tsaW5rX2J3L2xhbmVfY291bnR9IEFQSXMgZG8gbm90IGhhdmUgdG8gd29ycnkKPiArCcKgKiBh Ym91dCBlbmNvZGVyIHR5cGVzLiBUaGV5IGZ1cnRoZXIgY2FwIHRoZSBtYXggdy5yLnQgdGhlIHVw ZnJvbnQKPiArCcKgKiB2YWx1ZXMgYWxzby4KPiArCcKgKi8KPiArCWlmICghaW50ZWxfZHAtPnVw ZnJvbnRfZG9uZSkKPiArCQlpbnRlbF9kcF9pbml0X3VwZnJvbnRfcGFyYW1zKGludGVsX2RwKTsK PiArCj4gwqAJaW50ZWxfZHBfcHJpbnRfcmF0ZXMoaW50ZWxfZHApOwo+IMKgCj4gwqAJaWYgKCEo aW50ZWxfZHAtPmRwY2RbRFBfRE9XTlNUUkVBTVBPUlRfUFJFU0VOVF0gJgo+IEBAIC00MTQwLDYg KzQxNjksMTMyIEBAIGludGVsX2RwX3Vuc2V0X2VkaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiDCoAlpbnRlbF9kcC0+aGFzX2F1ZGlvID0gZmFsc2U7Cj4gwqB9Cj4gwqAKPiArc3RhdGlj IGludCBpbnRlbF9kcF91cGZyb250X2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKPiArCQkJCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAo+ICsJCQkJYm9v bCBlbmFibGUpCj4gK3sKPiArCWludCByZXQ7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKPiArCj4gKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsK PiArCWlmICghc3RhdGUpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJc3RhdGUtPmFjcXVp cmVfY3R4ID0gY3R4Owo+ICsKPiArCWNydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNf c3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgewo+ICsJCXJl dCA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4gKwkJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRl KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCURSTV9ERUJVR19LTVMoIiVzYWJsaW5n IGNydGMgJWMgJXMgdXBmcm9udCBsaW5rIHRyYWluXG4iLAo+ICsJCQllbmFibGUgPyAiRW4iIDog IkRpcyIsCj4gKwkJCXBpcGVfbmFtZShwaXBlKSwKPiArCQkJZW5hYmxlID8gImFmdGVyIiA6ICJi ZWZvcmUiKTsKPiArCj4gKwljcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSA9IGVuYWJsZTsKPiArCXJl dCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKPiArCWlmIChyZXQpCj4gKwkJZHJtX2F0b21p Y19zdGF0ZV9mcmVlKHN0YXRlKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0 aWMgYm9vbCBfX2ludGVsX2RwX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLAo+ICsJCQkJaW50IGNsb2NrLCB1aW50OF90IGxhbmVfY291bnQpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiArCQkJ CXRvX2k5MTUoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICsKPiArCWlmIChJU19C Uk9YVE9OKGRldl9wcml2KSkKPiArCQlyZXR1cm4gaW50ZWxfYnh0X3VwZnJvbnRfbGlua190cmFp bihpbnRlbF9kcCwgY2xvY2ssCj4gbGFuZV9jb3VudCk7CgpJIHRoaW5rIHRoaXMgY291bGQgYmUg YSBmdW5jdGlvbiBwb2ludGVyIGluIHRoZSBpbnRlbF9kcCBzdHJ1Y3QuIFRoYXQgd2F5LAppbnN0 ZWFkIG9mIHNwcmlua2xpbmcgSVNfKiBtYWNyb3MsIHdlIHdvdWxkIGluaXRpYWxpemUgaXQgcHJv cGVybHkgb25jZSBhbmQgdGhlbgpqdXN0IGNoZWNrIGlmIGl0IG5vdCBOVUxMIGVsc2V3aGVyZS4g QnV0IHRoYXQgY2FuIGJlIGEgZm9sbG93IHVwIHBhdGNoLgoKCkFuZGVyCgo+ICsJLyogT3RoZXIg cGxhdGZvcm0gY2FsbHMgZ28gaGVyZSAqLwo+ICsKPiArCS8qIFJldHVybiB0cnVlIGZvciB1bnN1 cHBvcnRlZCBwbGF0Zm9ybXMgKi8KPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gK3N0YXRpYyBib29s IGludGVsX2RwX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKTsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGludGVsX2VuY29kZXItPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmln ID0gJmRldi0+bW9kZV9jb25maWc7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHgg Y3R4Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Cj4gKwlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMgPSBOVUxMOwo+ICsJaW50IHJldDsKPiArCWJvb2wgZG9uZSA9IGZhbHNlOwo+ICsJ dWludDhfdCBsYW5lX2NvdW50LCBtYXhfbGFuZXMgPSBpbnRlbF9kcC0+bWF4X2xhbmVzX3VwZnJv bnQ7Cj4gKwlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4g KwlpbnQgY2xvY2ssIGNvbW1vbl9sZW47Cj4gKwo+ICsJY29tbW9uX2xlbiA9IGludGVsX2RwX2Nv bW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsKPiArCWlmIChXQVJOX09OKGNvbW1v bl9sZW4gPD0gMCkpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJaWYgKCFJU19CUk9YVE9OKGRldikp Cj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDAp Owo+ICtyZXRyeToKPiArCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNvbmZpZy0+Y29ubmVjdGlv bl9tdXRleCwgJmN0eCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXhpdF9mYWlsOwo+ICsKPiAr CWlmIChpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpIHsKPiArCQljcnRjID0gaW50ZWxfZW5jb2Rl ci0+YmFzZS5jcnRjOwo+ICsKPiArCQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRl eCwgJmN0eCk7Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBleGl0X2ZhaWw7Cj4gKwo+ICsJCXJl dCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPnByaW1hcnktPm11dGV4LCAmY3R4KTsKPiArCQlp ZiAocmV0KQo+ICsJCQlnb3RvIGV4aXRfZmFpbDsKPiArCj4gKwkJaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7Cj4gKwkJcmV0ID0gaW50ZWxfZHBfdXBmcm9udF9jcnRjX2Rpc2FibGUo aW50ZWxfY3J0YywgJmN0eCwgZmFsc2UpOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZXhpdF9m YWlsOwo+ICsJfQo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwo+ICsK PiArCWZvciAobGFuZV9jb3VudCA9IG1heF9sYW5lczsgbGFuZV9jb3VudCA+PSAxICYmICFkb25l OyBsYW5lX2NvdW50ID4+PQo+IDEpIHsKPiArCQlmb3IgKGNsb2NrID0gY29tbW9uX2xlbiAtIDE7 IGNsb2NrID49IDAgJiYgIWRvbmU7IGNsb2NrLS0pIHsKPiArCQkJZG9uZSA9IF9faW50ZWxfZHBf dXBmcm9udF9saW5rX3RyYWluKGludGVsX2RwLAo+ICsJCQkJCWNvbW1vbl9yYXRlc1tjbG9ja10s IGxhbmVfY291bnQpOwo+ICsJCQlpZiAoZG9uZSkgewo+ICsJCQkJaW50ZWxfZHAtPm1heF9sYW5l c191cGZyb250ID0gbGFuZV9jb3VudDsKPiArCQkJCWludGVsX2RwLT5tYXhfbGlua19id191cGZy b250ID0KPiArCQkJCQlkcm1fZHBfbGlua19yYXRlX3RvX2J3X2NvZGUoY29tbW9uX3JhCj4gdGVz W2Nsb2NrXSk7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCX0KPiArCX0KPiArCj4gKwltdXRl eF91bmxvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwo+ICsKPiArCWlmIChjcnRjKQo+ICsJCXJl dCA9IGludGVsX2RwX3VwZnJvbnRfY3J0Y19kaXNhYmxlKGludGVsX2NydGMsICZjdHgsIHRydWUp Owo+ICsKPiArZXhpdF9mYWlsOgo+ICsJaWYgKHJldCA9PSAtRURFQURMSykgewo+ICsJCWRybV9t b2Rlc2V0X2JhY2tvZmYoJmN0eCk7Cj4gKwkJZ290byByZXRyeTsKPiArCX0KPiArCWRybV9tb2Rl c2V0X2Ryb3BfbG9ja3MoJmN0eCk7Cj4gKwlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7 Cj4gKwlyZXR1cm4gZG9uZTsKPiArfQo+ICsKPiDCoHN0YXRpYyB2b2lkCj4gwqBpbnRlbF9kcF9s b25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiDCoHsK PiBAQCAtNDE1MCw3ICs0MzA1LDcgQEAgaW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yCj4gKmludGVsX2Nvbm5lY3RvcikKPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY29ubmVjdG9yLT5kZXY7Cj4gwqAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7 Cj4gwqAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47Cj4gLQli b29sIHJldDsKPiArCWJvb2wgcmV0LCBkb191cGZyb250X2xpbmtfdHJhaW47Cj4gwqAJdTggc2lu a19pcnFfdmVjdG9yOwo+IMKgCj4gwqAJcG93ZXJfZG9tYWluID0gaW50ZWxfZGlzcGxheV9wb3J0 X2F1eF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7Cj4gQEAgLTQyMzUsMTAgKzQzOTAsMjIg QEAgaW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yCj4gKmludGVsX2Nv bm5lY3RvcikKPiDCoAkJCURSTV9ERUJVR19EUklWRVIoIkNQIG9yIHNpbmsgc3BlY2lmaWMgaXJx Cj4gdW5oYW5kbGVkXG4iKTsKPiDCoAl9Cj4gwqAKPiArCS8qIERvIG5vdCBkbyB1cGZyb250IGxp bmsgdHJhaW4sIGlmIGl0IGlzIGEgY29tcGxpYW5jZSByZXF1ZXN0ICovCj4gKwlkb191cGZyb250 X2xpbmtfdHJhaW4gPSAhaW50ZWxfZHAtPnVwZnJvbnRfZG9uZSAmJgo+ICsJCWludGVsX2VuY29k ZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUICYmCj4gKwkJaW50ZWxfZHAtPmNv bXBsaWFuY2VfdGVzdF90eXBlICE9IERQX1RFU1RfTElOS19UUkFJTklORzsKPiArCj4gKwlpZiAo ZG9fdXBmcm9udF9saW5rX3RyYWluKSB7Cj4gKwkJaW50ZWxfZHAtPnVwZnJvbnRfZG9uZSA9Cj4g aW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWluKGludGVsX2RwKTsKPiArCQlpZiAoIWludGVsX2Rw LT51cGZyb250X2RvbmUpCj4gKwkJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVj dGVkOwo+ICsJfQo+ICsKPiDCoG91dDoKPiAtCWlmICgoc3RhdHVzICE9IGNvbm5lY3Rvcl9zdGF0 dXNfY29ubmVjdGVkKSAmJgo+IC0JwqDCoMKgwqAoaW50ZWxfZHAtPmlzX21zdCA9PSBmYWxzZSkp Cj4gKwlpZiAoc3RhdHVzICE9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkICYmICFpbnRlbF9k cC0+aXNfbXN0KSB7Cj4gwqAJCWludGVsX2RwX3Vuc2V0X2VkaWQoaW50ZWxfZHApOwo+ICsJCWlu dGVsX2RwLT51cGZyb250X2RvbmUgPSBmYWxzZTsKPiArCX0KPiDCoAo+IMKgCWludGVsX2Rpc3Bs YXlfcG93ZXJfcHV0KHRvX2k5MTUoZGV2KSwgcG93ZXJfZG9tYWluKTsKPiDCoAlyZXR1cm47Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGJjZjU3MGYuLjA2MGVhOWIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC04MzIsNiArODMyLDEyIEBAIHN0cnVjdCBp bnRlbF9kcCB7Cj4gwqAJZW51bSBoZG1pX2ZvcmNlX2F1ZGlvIGZvcmNlX2F1ZGlvOwo+IMKgCWJv b2wgbGltaXRlZF9jb2xvcl9yYW5nZTsKPiDCoAlib29sIGNvbG9yX3JhbmdlX2F1dG87Cj4gKwo+ ICsJLyogVXBmcm9udCBsaW5rIHRyYWluIHBhcmFtZXRlcnMgKi8KPiArCWludCBtYXhfbGlua19i d191cGZyb250Owo+ICsJdWludDhfdCBtYXhfbGFuZXNfdXBmcm9udDsKPiArCWJvb2wgdXBmcm9u dF9kb25lOwo+ICsKPiDCoAl1aW50OF90IGRwY2RbRFBfUkVDRUlWRVJfQ0FQX1NJWkVdOwo+IMKg CXVpbnQ4X3QgcHNyX2RwY2RbRURQX1BTUl9SRUNFSVZFUl9DQVBfU0laRV07Cj4gwqAJdWludDhf dCBkb3duc3RyZWFtX3BvcnRzW0RQX01BWF9ET1dOU1RSRUFNX1BPUlRTXTsKPiBAQCAtMTExMyw2 ICsxMTE5LDggQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+IMKgCQkJwqBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp Owo+IMKgdm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2Moc3RydWN0IGRybV9jcnRj ICpjcnRjLCBib29sIHN0YXRlKTsKPiDCoHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICtib29sIGludGVsX2J4dF91cGZyb250X2xpbmtfdHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCWludCBjbG9jaywgdWludDhfdCBs YW5lX2NvdW50KTsKPiDCoAo+IMKgLyogaW50ZWxfZnJvbnRidWZmZXIuYyAqLwo+IMKgdm9pZCBp bnRlbF9mYl9vYmpfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK