From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 7/7] drm/i915/dp: Enable Upfront link training for typeC DP support on BXT Date: Mon, 11 Jan 2016 16:10:05 +0200 Message-ID: <1452521405.2737.21.camel@gmail.com> References: <1449826768-19415-1-git-send-email-durgadoss.r@intel.com> <1449826768-19415-8-git-send-email-durgadoss.r@intel.com> <1451409747.2799.27.camel@gmail.com> <4D68720C2E767A4AA6A8796D42C8EB5909363938@BGSMSX101.gar.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f66.google.com (mail-pa0-f66.google.com [209.85.220.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 605406E39A for ; Mon, 11 Jan 2016 06:10:10 -0800 (PST) Received: by mail-pa0-f66.google.com with SMTP id a20so19522586pag.3 for ; Mon, 11 Jan 2016 06:10:10 -0800 (PST) In-Reply-To: <4D68720C2E767A4AA6A8796D42C8EB5909363938@BGSMSX101.gar.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "R, Durgadoss" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE1LTEyLTI5IGF0IDE4OjUwICswMDAwLCBSLCBEdXJnYWRvc3Mgd3JvdGU6Cj4g SGkgQW5kZXIsCj4gCj4gVGhhbmtzIGZvciBsb29raW5nIGludG8gdGhpcy4uCj4gCj4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJvbTogQW5kZXIgQ29uc2VsdmFuIERlIE9saXZl aXJhIFttYWlsdG86Y29uc2VsdmFuMkBnbWFpbC5jb21dCj4gPiBTZW50OiBUdWVzZGF5LCBEZWNl bWJlciAyOSwgMjAxNSAxMDo1MiBQTQo+ID4gVG86IFIsIER1cmdhZG9zczsgaW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCA3LzddIGRybS9pOTE1 L2RwOiBFbmFibGUgVXBmcm9udCBsaW5rIHRyYWluaW5nIGZvciB0eXBlQwo+ID4gRFAgc3VwcG9y dCBvbiBCWFQKPiA+IAo+ID4gT24gRnJpLCAyMDE1LTEyLTExIGF0IDE1OjA5ICswNTMwLCBEdXJn YWRvc3MgUiB3cm90ZToKPiA+ID4gVG8gc3VwcG9ydCBVU0IgdHlwZSBDIGFsdGVybmF0ZSBEUCBt b2RlLCB0aGUgZGlzcGxheSBkcml2ZXIgbmVlZHMgdG8KPiA+ID4ga25vdyB0aGUgbnVtYmVyIG9m IGxhbmVzIHJlcXVpcmVkIGJ5IHRoZSBEUCBwYW5lbCBhcyB3ZWxsIGFzIG51bWJlcgo+ID4gPiBv ZiBsYW5lcyB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQgYnkgdGhlIHR5cGUtQyBjYWJsZS4gU29tZXRp bWVzLCB0aGUKPiA+ID4gdHlwZS1DIGNhYmxlIG1heSBsaW1pdCB0aGUgYmFuZHdpZHRoIGV2ZW4g aWYgUGFuZWwgY2FuIHN1cHBvcnQKPiA+ID4gbW9yZSBsYW5lcy4gVG8gYWRkcmVzcyB0aGVzZSBz Y2VuYXJpb3MsIHRoZSBkaXNwbGF5IGRyaXZlciB3aWxsCj4gPiA+IHN0YXJ0IGxpbmsgdHJhaW5p bmcgd2l0aCBtYXggbGFuZXMsIGFuZCBpZiB0aGF0IGZhaWxzLCB0aGUgZHJpdmVyCj4gPiA+IGZh bGxzIGJhY2sgdG8geDIgbGFuZXM7IGFuZCByZXBlYXRzIHRoaXMgcHJvY2VkdXJlIGZvciBhbGwK PiA+ID4gYmFuZHdpZHRoL2xhbmUgY29uZmlndXJhdGlvbnMuCj4gPiA+IAo+ID4gPiAqIFNpbmNl IGxpbmsgdHJhaW5pbmcgaXMgZG9uZSBiZWZvcmUgbW9kZXNldCBvbmx5IHRoZSBwb3J0Cj4gPiA+ ICAgKGFuZCBub3QgcGlwZS9wbGFuZXMpIGFuZCBpdHMgYXNzb2NpYXRlZCBQTExzIGFyZSBlbmFi bGVkLgo+ID4gPiAqIE9uIERQIGhvdHBsdWc6IERpcmVjdGx5IHN0YXJ0IGxpbmsgdHJhaW5pbmcg b24gdGhlIGNydGMKPiA+ID4gICBhc3NvY2lhdGVkIHdpdGggdGhlIERQIGVuY29kZXIuCj4gPiA+ ICogT24gQ29ubmVjdGVkIGJvb3Qgc2NlbmFyaW9zOiBXaGVuIGJvb3RlZCB3aXRoIGFuIExGUCBh bmQgYSBEUCwKPiA+ID4gICB0eXBpY2FsbHksIEJJT1MgYnJpbmdzIHVwIERQLiBJbiB0aGVzZSBj YXNlcywgd2UgZGlzYWJsZSB0aGUKPiA+ID4gICBjcnRjLCBkbyB1cGZyb250IGxpbmsgdHJhaW5p bmcgYW5kIHRoZW4gcmUtZW5hYmxlIGl0IGJhY2suCj4gPiA+ICogQWxsIGxvY2FsIGNoYW5nZXMg bWFkZSBmb3IgdXBmcm9udCBsaW5rIHRyYWluaW5nIGFyZSByZXNldAo+ID4gPiAgIHRvIHRoZWly IHByZXZpb3VzIHZhbHVlcyBvbmNlIGl0IGlzIGRvbmU7IHNvIHRoYXQgdGhlCj4gPiA+ICAgc3Vi c2VxdWVudCBtb2Rlc2V0IGlzIG5vdCBhd2FyZSBvZiB0aGVzZSBjaGFuZ2VzLgo+ID4gPiAKPiA+ ID4gU2lnbmVkLW9mZi1ieTogRHVyZ2Fkb3NzIFIgPGR1cmdhZG9zcy5yQGludGVsLmNvbT4KPiA+ ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyB8IDgxCj4gPiA+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgNzcKPiA+ID4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IHwgIDIgKwo+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4g aW5kZXggNjMyMDQ0YS4uNDNlZmMyNiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKPiA+ID4gQEAgLTMyNzQsNiArMzI3NCw4NyBAQCBpbnRlbF9kZGlfaW5pdF9oZG1pX2Nv bm5lY3RvcihzdHJ1Y3QKPiA+ID4gaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiA+ICppbnRlbF9kaWdf cG9ydCkKPiA+ID4gIAlyZXR1cm4gY29ubmVjdG9yOwo+ID4gPiAgfQo+ID4gPiAKPiA+ID4gK2Jv b2wgaW50ZWxfZGRpX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LAo+ID4gPiArCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gPiArewo+ID4gPiArCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApOwo+ID4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2Rw LT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Cj4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmJhc2UuZGV2Owo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiA+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICpwbGw7Cj4gPiA+ICsJc3RydWN0IGRybV9jcnRjICpkcm1fY3J0YyA9IE5VTEw7Cj4gPiA+ICsJ c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnRtcF9jcnRjX2NvbmZpZzsKPiA+ID4gKwlzdHJ1Y3Qg aW50ZWxfZHBsbF9od19zdGF0ZSB0bXBfZHBsbF9od19zdGF0ZTsKPiA+ID4gKwl1aW50OF90IGxp bmtfYncsIGxhbmVfY291bnQ7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoIWNydGMpIHsKPiA+ID4gKwkJ ZHJtX2NydGMgPSBpbnRlbF9nZXRfdW51c2VkX2NydGMoJmVuY29kZXItPmJhc2UpOwo+ID4gPiAr CQlpZiAoIWRybV9jcnRjKSB7Cj4gPiA+ICsJCQlEUk1fRVJST1IoIk5vIGNydGMgZm9yIHVwZnJv bnQgbGluayB0cmFpbmluZ1xuIik7Cj4gPiA+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsJCX0K PiA+ID4gKwkJZW5jb2Rlci0+YmFzZS5jcnRjID0gZHJtX2NydGM7Cj4gPiA+ICsJCWNydGMgPSB0 b19pbnRlbF9jcnRjKGRybV9jcnRjKTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwkvKiBJbml0 aWFsaXplIHdpdGggTWF4IExpbmsgcmF0ZSAmIGxhbmUgY291bnQgc3VwcG9ydGVkIGJ5IHBhbmVs Cj4gPiA+ICovCj4gPiA+ICsJbGlua19idyA9ICBpbnRlbF9kcC0+ZHBjZFtEUF9NQVhfTElOS19S QVRFXTsKPiA+ID4gKwlsYW5lX2NvdW50ID0gZHJtX2RwX21heF9sYW5lX2NvdW50KGludGVsX2Rw LT5kcGNkKTsKPiA+ID4gKwo+ID4gPiArCS8qIFNhdmUgdGhlIGNydGMtPmNvbmZpZyAqLwo+ID4g PiArCXRtcF9jcnRjX2NvbmZpZyA9IGNydGMtPmNvbmZpZzsKPiA+IAo+ID4gPiArCXRtcF9kcGxs X2h3X3N0YXRlID0gY3J0Yy0+Y29uZmlnLT5kcGxsX2h3X3N0YXRlOwo+ID4gPiArCj4gPiA+ICsJ LyogU2VsZWN0IHRoZSBzaGFyZWQgRFBMTCB0byB1c2UgZm9yIHRoaXMgcG9ydCAqLwo+ID4gPiAr CWludGVsX2dldF9kZGlfcGxsKGRldl9wcml2LCBkaWdfcG9ydC0+cG9ydCwgY3J0Yy0+Y29uZmln KQo+ID4gCj4gPiBUaGlzIHJlYWRzIHRoZSBjdXJyZW50IHByb2dyYW1tZWQgRFBMTCBmcm9tIHRo ZSBoYXJkd2FyZS4gSXMgdGhlcmUgYW55Cj4gPiByZWFzb24gd2UKPiA+IGNhbid0IHRydXN0IHRo ZSB2YWx1ZSB0aGF0IGlzIGluIGNydGMtPmNvbmZpZyBhbHJlYWR5PyBJIGRvbid0IHRoaW5rIHRo aXMKPiA+IGNvZGUKPiA+IHdvdWxkIHJ1biBiZWZvcmUgcmVhZGluZyBvdXQgYW5kIHNhbml0aXpp bmcgdGhlIGhhcmR3YXJlIHN0YXRlLgo+IAo+IEkgd2FzIG5vdCBzdXJlIG9mIHdoYXQgd2lsbCBi ZSB0aGUgRFBMTCBhdHRhY2hlZCB0byBjcnRjLT5jb25maWcgd2hlbiB0aGUKPiBjcnRjIGlzIGZv dW5kIGJ5ICdnZXRfdW51c2VkX2NydGMnIGxvZ2ljLiBTbywgd2Ugc2VsZWN0IHRoZSBEUExMIGJh c2VkCj4gb24gcG9ydCBhZ2Fpbi4uCj4gCj4gPiAKPiA+ID4gOwo+ID4gPiArCXBsbCA9IGludGVs X2NydGNfdG9fc2hhcmVkX2RwbGwoY3J0Yyk7Cj4gPiA+ICsJaWYgKCFwbGwpIHsKPiA+ID4gKwkJ RFJNX0VSUk9SKCJDb3VsZCBub3QgZ2V0IHNoYXJlZCBEUExMXG4iKTsKPiA+ID4gKwkJZ290byBl eGl0Owo+ID4gPiArCX0KPiA+ID4gKwlEUk1fREVCVUdfS01TKCJVc2luZyAlcyBmb3IgcGlwZSAl Y1xuIiwgcGxsLT5uYW1lLCBwaXBlX25hbWUoY3J0Ywo+ID4gPiAtPnBpcGUpKTsKPiA+ID4gKwo+ ID4gPiArCWRvIHsKPiA+ID4gKwkJY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID0KPiA+ID4gZHJt X2RwX2J3X2NvZGVfdG9fbGlua19yYXRlKGxpbmtfYncpOwo+ID4gPiArCQljcnRjLT5jb25maWct PmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ID4gPiArCQlpZiAoIWludGVsX2RkaV9wbGxfc2Vs ZWN0KGNydGMsIGNydGMtPmNvbmZpZywgZW5jb2RlciwKPiA+ID4gZmFsc2UpKQo+ID4gCj4gPiAK PiA+ID4gKwkJCWdvdG8gZXhpdDsKPiA+ID4gKwo+ID4gPiArCQlwbGwtPmNvbmZpZy5jcnRjX21h c2sgfD0gKDEgPDwgY3J0Yy0+cGlwZSk7Cj4gPiA+ICsJCXBsbC0+Y29uZmlnLmh3X3N0YXRlID0g Y3J0Yy0+Y29uZmlnLT5kcGxsX2h3X3N0YXRlOwo+ID4gPiArCj4gPiA+ICsJCS8qIEVuYWJsZSBQ TEwgZm9sbG93ZWQgYnkgcG9ydCAqLwo+ID4gPiArCQlpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwo Y3J0Yyk7Cj4gPiA+ICsJCWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Cj4gPiAKPiA+IFRo ZSBwbGwgaGFuZGxpbmcgaGVyZSBzZWVtcyBkb2RneS4gSW5zdGVhZCBvZiB1c2luZyBpbnRlbF9n ZXRfc2hhcmVkX2RwbGwoKSwKPiAKPiBJIGluaXRpYWxseSB0cmllZCB0aGlzLCBidXQgaW50ZWxf Z2V0X3NoYXJlZF9kcGxsKCkgdXNlcyBjcnRjX3N0YXRlIHdoaWNoIGlzCj4gbm90Cj4gc2V0IChp biBvdXRzaWRlIG1vZGVzZXQgY29udGV4dHMpIHRodXMgY3JlYXRpbmcgY3Jhc2hlcy4gU3BlY2lm aWNhbGx5LCAKPiB0aGUgY2FsbCB0byBpbnRlbF9kZGlfZ2V0X2NydGNfbmV3X2VuY29kZXIoKSBm b3IgYnJveHRvbiBjb2RlIHBhdGguCj4gCj4gVGhhdOKAmXMgd2h5IEkgaGFkIHRvIGNyZWF0ZSBz b21lIGluaXRpYWwgY29kZSB0byBub3QgY2FsbCBnZXRfc2hhcmVkX2RwbGwKPiBJZiB3ZSBoYXZl IHZhbGlkIGVuY29kZXIgYXR0YWNoZWQuIChwYXRjaGVzIDEvNyBhbmQgMi83IG9mIHRoaXMgc2Vy aWVzKQo+IAo+IFNvLCBJZiB5b3UgaGF2ZSBzdWdnZXN0aW9ucyBvbiBob3cgdG8gZml4IHRoaXMg aW4gYSBuZWF0IHdheSwKPiBJIHdvdWxkIGJlIGhhcHB5IHRvIHRyeSB0aGVtIG91dC4KCk9uZSBp ZGVhIHdvdWxkIGJlIHNwbGl0IHRoZSBwYXJ0IG9mIGludGVsX2dldF9zaGFyZWRfZHBsbCgpIHRo YXQgbmVlZHMgYXRvbWljCmludGVyZmFjZXMgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbi4gVGhlbiBp dCB3b3VsZCBiZSBwb3NzaWJsZSB0byBhZGQgYSBzZWNvbmQKZW50cnkgcG9pbnQgdGhhdCBqdXN0 IHRha2VzIGNydGMsIGVuY29kZXIgYW5kIHRoZSBwbGwgcGFyYW1ldGVycyBhbmQgY2FsbHMgdGhl CmxvZ2ljIHRoYXQgZG9lc24ndCBkZXBlbmQgb24gdGhlIGF0b21pYyBzdGF0ZS4KClRoZW4geW91 IGNvdWxkIG1vdmUgdGhlIGNhbGxzIHRvIGludGVsX2dldF9zaGFyZWRfZHBsbCgpIGZyb20gKl9k ZGlfcGxsX3NlbGVjdCgpCnRvIGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrKCkgc28gdGhleSBk b24ndCBnZXQgb24gdGhlIHdheSBkdXJpbmcgdXBmcm9udCBsaW5rCnRyYWluaW5nLCB3aGVyZSB0 aGUgbmV3IG5vbi1hdG9taWMgZW50cnkgcG9pbnQgaXMgY2FsbGVkIGluc3RlYWQuCgpBbmRlcgoK PiAKPiBUaGFua3MsCj4gRHVyZ2EKPiAKPiA+IHRoaXMgZmlkZGxlcyB3aXRoIHBsbCBpbnRlcm5h bHMgaXRzZWxmLiBJIHRoaW5rIHRoaXMgd2lsbCB3b3JrIGZvciBicm94dG9uLAo+ID4gc2luY2Ug aXQgZG9lc24ndCBhY3R1YWxseSBoYXZlIHNoYXJlZCBEUExMcyAodGhlaXIgY2hvc2VuIGJhc2Vk IG9uIHRoZQo+ID4gZW5jb2RlcikuCj4gPiBJdCBtaWdodCBqdXN0IHdvcmsgZm9yIGhhc3dlbGwg dG9vIHNpbmNlIHRoZSBwbGxzIHVzZWQgYnkgRFAgYXJlIG5vdCBzaGFyZWQuCj4gPiAKPiA+IEJ1 dCB0byBkbyB0aGlzIGNsZWFubHkgd2UgbmVlZCB0aGUgRFBMTCBpbnRlcmZhY2UgdG8ganVzdCBn aXZlIHVzIHRoZSByaWdodAo+ID4gcGxsLgo+ID4gCj4gPiBBbmRlcgo+ID4gCj4gPiAKPiA+ID4g Kwo+ID4gPiArCQkvKiBDaGVjayBpZiBsaW5rIHRyYWluaW5nIHBhc3NlZDsgaWYgc28gdXBkYXRl IERQQ0QgKi8KPiA+ID4gKwkJaWYgKGludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQpCj4gPiA+ICsJ CQlpbnRlbF9kcF91cGRhdGVfZHBjZF9wYXJhbXMoaW50ZWxfZHApOwo+ID4gPiArCj4gPiA+ICsJ CS8qIERpc2FibGUgcG9ydCBmb2xsb3dlZCBieSBQTEwgZm9yIG5leHQgcmV0cnkvY2xlYW4gdXAK PiA+ID4gKi8KPiA+ID4gKwkJZW5jb2Rlci0+cG9zdF9kaXNhYmxlKGVuY29kZXIpOwo+ID4gPiAr CQlpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKGNydGMpOwo+ID4gPiArCj4gPiA+ICsJfSB3aGls ZSAoIWludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQgJiYKPiA+ID4gKwkJIWludGVsX2RwX2dldF9s aW5rX3JldHJ5X3BhcmFtcygmbGFuZV9jb3VudCwgJmxpbmtfYncpKTsKPiA+ID4gKwo+ID4gPiAr CS8qIFJlc2V0IHBsbCBzdGF0ZSBhcyBiZWZvcmUgKi8KPiA+ID4gKwlwbGwtPmNvbmZpZy5jcnRj X21hc2sgJj0gfigxIDw8IGNydGMtPnBpcGUpOwo+ID4gPiArCXBsbC0+Y29uZmlnLmh3X3N0YXRl ID0gdG1wX2RwbGxfaHdfc3RhdGU7Cj4gPiA+ICsKPiA+ID4gK2V4aXQ6Cj4gPiA+ICsJLyogUmVz ZXQgbG9jYWwgYXNzb2NpYXRpb25zIG1hZGUgKi8KPiA+ID4gKwlpZiAoZHJtX2NydGMpCj4gPiA+ ICsJCWVuY29kZXItPmJhc2UuY3J0YyA9IE5VTEw7Cj4gPiA+ICsJY3J0Yy0+Y29uZmlnID0gdG1w X2NydGNfY29uZmlnOwo+ID4gPiArCj4gPiA+ICsJRFJNX0RFQlVHX0tNUygiVXBmcm9udCBsaW5r IHRyYWluICVzOiBsYW5lczolZCBidzolZFxuIiwKPiA+ID4gKwlpbnRlbF9kcC0+dHJhaW5fc2V0 X3ZhbGlkID8gIlBhc3NlZCIgOiAiRmFpbGVkIiwgbGFuZV9jb3VudCwKPiA+ID4gbGlua19idyk7 Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gaW50ZWxfZHAtPnRyYWluX3NldF92YWxpZDsKPiA+ID4g K30KPiA+ID4gKwo+ID4gPiAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBlbnVtIHBvcnQgcG9ydCkKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+ID4gaW5kZXggZDhmNzgzMC4uNDdiNjI2NiAxMDA2NDQKPiA+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+IEBAIC00NjIyLDYgKzQ2MjIsNzEgQEAgaW50ZWxf ZHBfdW5zZXRfZWRpZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiAgCWludGVsX2Rw LT5oYXNfYXVkaW8gPSBmYWxzZTsKPiA+ID4gIH0KPiA+ID4gCj4gPiA+ICtzdGF0aWMgdm9pZCBp bnRlbF9kcF91cGZyb250X2RwbXNfb2ZmKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gPiA+ICsJCQkJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gPiA+ICt7 Cj4gPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNv bm5lY3Rvcik7Cj4gPiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQgPQo+ID4gPiBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiA+ICsJc3RydWN0IGRybV9j cnRjICpjcnRjID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjOwo+ID4gPiArCXN0cnVj dCBpbnRlbF9sb2FkX2RldGVjdF9waXBlIHRtcDsKPiA+ID4gKwo+ID4gPiArCWlmIChpbnRlbF9n ZXRfbG9hZF9kZXRlY3RfcGlwZShjb25uZWN0b3IsIE5VTEwsICZ0bXAsIGN0eCkpIHsKPiA+ID4g KwkJY3J0Yy0+YWNxdWlyZV9jdHggPSBjdHg7Cj4gPiA+ICsJCXRtcC5kcG1zX21vZGUgPSBEUk1f TU9ERV9EUE1TX09GRjsKPiA+ID4gKwkJaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKGNv bm5lY3RvciwgJnRtcCwgY3R4KTsKPiA+ID4gKwl9Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0 YXRpYyB2b2lkIGludGVsX2RwX3VwZnJvbnRfZHBtc19vbihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAo+ID4gPiArCQkJCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4 KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlIHRtcDsKPiA+ ID4gKwo+ID4gPiArCWludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNvbm5lY3RvciwgTlVMTCwg JnRtcCwgY3R4KTsKPiA+ID4gKwo+ID4gPiArCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoY3R4KTsK PiA+ID4gKwlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoY3R4KTsKPiA+ID4gK30KPiA+ID4gKwo+ ID4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWluKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7Cj4gPiA+ICsJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ID4gPiBkcF90b19kaWdfcG9ydChp bnRlbF9kcCk7Cj4gPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAm aW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlu dGVsX2VuY29kZXItPmJhc2UuZGV2Owo+ID4gPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGlu dGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0YzsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IGNydGMgPyB0b19pbnRlbF9jcnRjKGNydGMpIDoKPiA+ID4gTlVMTDsKPiA+ ID4gKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4LCAqb2xkX2N0eCA9IE5VTEw7 Cj4gPiA+ICsJYm9vbCByZXQgPSB0cnVlLCBuZWVkX2RwbXNfb24gPSBmYWxzZTsKPiA+ID4gKwo+ ID4gPiArCWlmICghSVNfQlJPWFRPTihkZXYpKQo+ID4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ID4g KwkvKgo+ID4gPiArCSAqIE9uIGhvdHBsdWcgY2FzZXMsIHdlIGNhbGwgX3VwZnJvbnRfbGlua190 cmFpbiBkaXJlY3RseS4KPiA+ID4gKwkgKiBJbiBjb25uZWN0ZWQgYm9vdCBzY2VuYXJpb3MgKGJv b3Qgd2l0aCB7TUlQSS9lRFB9ICsgRFApLAo+ID4gPiArCSAqIEJJT1MgdHlwaWNhbGx5IGJyaW5n cyB1cCBEUC4gSGVuY2UsIHdlIGRpc2FibGUgdGhlIGNydGMKPiA+ID4gKwkgKiB0byBkbyBfdXBm cm9udF9saW5rX3RyYWluaW5nIGFuZCB0aGVuIHJlLWVuYWJsZSBpdCBiYWNrLgo+ID4gPiArCSAq Lwo+ID4gPiArCWlmIChjcnRjICYmIGNydGMtPmVuYWJsZWQgJiYgaW50ZWxfY3J0Yy0+YWN0aXZl KSB7Cj4gPiA+ICsJCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyBwaXBlICVjXG4iLCBwaXBlX25h bWUoaW50ZWxfY3J0Ywo+ID4gPiAtPnBpcGUpKTsKPiA+ID4gKwkJb2xkX2N0eCA9IGNydGMtPmFj cXVpcmVfY3R4Owo+ID4gPiArCQlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7Cj4g PiA+ICsJCWludGVsX2RwX3VwZnJvbnRfZHBtc19vZmYoY29ubmVjdG9yLCAmY3R4KTsKPiA+ID4g KwkJbmVlZF9kcG1zX29uID0gdHJ1ZTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlpZiAoSEFT X0RESShkZXYpKQo+ID4gPiArCQlyZXQgPSBpbnRlbF9kZGlfdXBmcm9udF9saW5rX3RyYWluKGlu dGVsX2RwLCBpbnRlbF9jcnRjKTsKPiA+ID4gKwkJLyogT3RoZXIgcGxhdGZvcm1zIHVwZnJvbnQg bGluayB0cmFpbiBjYWxsIGdvZXMgaGVyZS4uKi8KPiA+ID4gKwo+ID4gPiArCWlmIChuZWVkX2Rw bXNfb24pIHsKPiA+ID4gKwkJaW50ZWxfZHBfdXBmcm9udF9kcG1zX29uKGNvbm5lY3RvciwgJmN0 eCk7Cj4gPiA+ICsJCWNydGMtPmFjcXVpcmVfY3R4ID0gb2xkX2N0eDsKPiA+ID4gKwl9Cj4gPiA+ ICsJcmV0dXJuIHJldDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArCj4gPiA+ICBzdGF0aWMgZW51 bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ID4gPiAgaW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gPiA+ICB7Cj4gPiA+IEBAIC00NjMx LDcgKzQ2OTYsNyBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiA+ID4gYm9vbAo+ID4gPiBmb3JjZSkKPiA+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4gPiA+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBz dGF0dXM7Cj4gPiA+ICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21h aW47Cj4gPiA+IC0JYm9vbCByZXQ7Cj4gPiA+ICsJYm9vbCByZXQsIGRvX3VwZnJvbnRfbGlua190 cmFpbjsKPiA+ID4gIAl1OCBzaW5rX2lycV92ZWN0b3I7Cj4gPiA+IAo+ID4gPiAgCURSTV9ERUJV R19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLAo+ID4gPiBAQCAtNDcwNSw2ICs0NzcwLDE2IEBA IGludGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiBi b29sCj4gPiA+IGZvcmNlKQo+ID4gPiAgCQkJRFJNX0RFQlVHX0RSSVZFUigiQ1Agb3Igc2luayBz cGVjaWZpYyBpcnEKPiA+ID4gdW5oYW5kbGVkXG4iKTsKPiA+ID4gIAl9Cj4gPiA+IAo+ID4gPiAr CS8qIERvIG5vdCBkbyB1cGZyb250IGxpbmsgdHJhaW4sIGlmIGl0IGlzIGEgY29tcGxpYW5jZSBy ZXF1ZXN0ICovCj4gPiA+ICsJZG9fdXBmcm9udF9saW5rX3RyYWluID0KPiA+ID4gKwkJaW50ZWxf ZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQgJiYKPiA+ID4gKwkJaW50 ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBlICE9IERQX1RFU1RfTElOS19UUkFJTklORzsKPiA+ ID4gKwo+ID4gPiArCWlmIChkb191cGZyb250X2xpbmtfdHJhaW4pIHsKPiA+ID4gKwkJcmV0ID0g aW50ZWxfZHBfdXBmcm9udF9saW5rX3RyYWluKGNvbm5lY3Rvcik7Cj4gPiA+ICsJCWlmICghcmV0 KQo+ID4gPiArCQkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7Cj4gPiA+ ICsJfQo+ID4gPiAgb3V0Ogo+ID4gPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHRvX2k5MTUo ZGV2KSwgcG93ZXJfZG9tYWluKTsKPiA+ID4gIAlyZXR1cm4gc3RhdHVzOwo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBpbmRleCA1OTEyOTU1Li4zY2ZhYjIwIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtMTAyNSw2ICsxMDI1 LDggQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiA+ ICplbmNvZGVyLAo+ID4gPiAgCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp Zyk7Cj4gPiA+ICB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIGJvb2wgc3RhdGUpOwo+ID4gPiAgdWludDMyX3QgZGRpX3NpZ25hbF9sZXZl bHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiA+ICtib29sIGludGVsX2RkaV91cGZy b250X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gKwkJCQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gPiA+IAo+ID4gPiAgLyogaW50ZWxfZnJvbnRidWZmZXIu YyAqLwo+ID4gPiAgdm9pZCBpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=