From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH v5 1/5] drm/i915: Fallback to lower link rate and lane count during link training Date: Wed, 14 Sep 2016 11:15:13 +0300 Message-ID: <1473840913.20751.20.camel@intel.com> References: <1473815299-26961-1-git-send-email-manasi.d.navare@intel.com> <1473815299-26961-2-git-send-email-manasi.d.navare@intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2DD2F6E05A for ; Wed, 14 Sep 2016 08:17:26 +0000 (UTC) In-Reply-To: <1473815299-26961-2-git-send-email-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE2LTA5LTEzIGF0IDE4OjA4IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ IEFjY29yZGluZyB0byB0aGUgRGlzcGxheVBvcnQgU3BlYywgaW4gY2FzZSBvZiBDbG9jayBSZWNv dmVyeSBmYWlsdXJlCj4gdGhlIGxpbmsgdHJhaW5pbmcgc2VxdWVuY2Ugc2hvdWxkIGZhbGwgYmFj ayB0byB0aGUgbG93ZXIgbGluayByYXRlCj4gZm9sbG93ZWQgYnkgbG93ZXIgbGFuZSBjb3VudCB1 bnRpbCBDUiBzdWNjZWVkcy4KPiBPbiBDUiBzdWNjZXNzLCB0aGUgc2VxdWVuY2UgcHJvY2VlZHMg d2l0aCBDaGFubmVsIEVRLgo+IEluIGNhc2Ugb2YgQ2hhbm5lbCBFUSBmYWlsdXJlcywgaXQgc2hv dWxkIGZhbGxiYWNrIHRvCj4gbG93ZXIgbGluayByYXRlIGFuZCBsYW5lIGNvdW50IGFuZCBzdGFy dCB0aGUgQ1IgcGhhc2UgYWdhaW4uCj4gCj4gdjU6Cj4gKiBSZXNldCB0aGUgbGluayByYXRlIGlu ZGV4IHRvIHRoZSBtYXggbGluayByYXRlIGluZGV4Cj4gYmVmb3JlIGxvd2VyaW5nIHRoZSBsYW5l IGNvdW50IChKYW5pIE5pa3VsYSkKPiAqIFVzZSB0aGUgcGFyYWRpZ20gZm9yIGxvb3AgaW4gaW50 ZWxfZHBfbGlua19yYXRlX2luZGV4Cj4gdjQ6Cj4gKiBGaXhlZCB0aGUgbGluayByYXRlIGZhbGxi YWNrIGxvb3AgKE1hbmFzaSBOYXZhcmUpCj4gdjM6Cj4gKiBGaXhlZCBzb21lIHJlYmFzZSBpc3N1 ZXMgKE1pa2EgS2Fob2xhKQo+IHYyOgo+ICogQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVy biBpbmRleCBvZiByZXF1ZXN0ZWQgbGluayByYXRlCj4gaW50byBjb21tb25fcmF0ZXMgYXJyYXkK PiAqIENoYW5nZWQgdGhlIGxpbmsgcmF0ZSBmYWxsYmFjayBsb29wIHRvIG1ha2UgdXNlCj4gb2Yg Y29tbW9uX3JhdGVzIGFycmF5IChNaWthIEthaG9sYSkKPiAqIENoYW5nZWQgSU5URUxfSU5GTyB0 byBJTlRFTF9HRU4gKERhdmlkIFdlaW5laGFsbCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kg TmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+IC0tLQo+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAxMTIKPiAr KysrKysrKysrKysrKysrKysrKysrKy0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMTUgKysrKwo+IMKgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIHzCoMKgMTIgKystCj4gwqBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB8wqDCoMKgNiArLQo+IMKgNCBmaWxlcyBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKSwgMTQg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IDgwNjVh NWYuLjRkM2E5MzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0xNjM3LDE5 ICsxNjM3LDE4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0Cj4gaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiDCoAl9Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZGRp X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gK3N0YXRpYyB2 b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiDCoAkJCQnCoMKgwqDCoGludCBsaW5rX3JhdGUsIHVpbnQzMl90Cj4gbGFuZV9jb3VudCwK PiAtCQkJCcKgwqDCoMKgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCj4gLQkJCQnCoMKg wqDCoGJvb2wgbGlua19tc3QpCj4gKwkJCQnCoMKgwqDCoHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqcGxsKQo+IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50 ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0KPiA+YmFzZS5kZXYpOwo+IMKgCWVudW0gcG9ydCBwb3J0 ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gwqAKPiDCoAlpbnRlbF9k cF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGxpbmtfcmF0ZSwgbGFuZV9jb3VudCwKPiAtCQkJ CcKgbGlua19tc3QpOwo+IC0JaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkK PiAtCQlpbnRlbF9lZHBfcGFuZWxfb24oaW50ZWxfZHApOwo+ICsJCQkJwqBmYWxzZSk7Cj4gKwo+ ICsJaW50ZWxfZWRwX3BhbmVsX29uKGludGVsX2RwKTsKPiDCoAo+IMKgCWludGVsX2RkaV9jbGtf c2VsZWN0KGVuY29kZXIsIHBsbCk7Cj4gwqAJaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhl bmNvZGVyKTsKPiBAQCAtMTY2MCw2ICsxNjU5LDI4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9w cmVfZW5hYmxlX2RwKHN0cnVjdAo+IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gwqAJCWludGVs X2RwX3N0b3BfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gwqB9Cj4gwqAKPiArc3RhdGljIHZvaWQg aW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g KwkJCQnCoMKgwqDCoGludCBsaW5rX3JhdGUsIHVpbnQzMl90Cj4gbGFuZV9jb3VudCwKPiArCQkJ CcKgwqDCoMKgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCj4gKwkJCQnCoMKgwqDCoGJv b2wgbGlua19tc3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9f aW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLQo+ID5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ICsKPiArCS8qIERpc2FibGUgdGhl IFBMTCBhbmQgb2J0YWluIHRoZSBQTEwgZm9yIExpbmsgVHJhaW5pbmcKPiArCcKgKiB0aGF0IHN0 YXJ0cyB3aXRoIGhpZ2hlc3QgbGluayByYXRlIGFuZCBsYW5lIGNvdW50Lgo+ICsJwqAqLwo+ICsJ dG1wX3BsbF9jb25maWcgPSBwbGwtPmNvbmZpZzsKPiArCXBsbC0+ZnVuY3MuZGlzYWJsZShkZXZf cHJpdiwgcGxsKTsKPiArCXBsbC0+Y29uZmlnLmNydGNfbWFzayA9IDA7Cj4gKwo+ICsJLyogSWYg TGluayBUcmFpbmluZyBmYWlscywgc2VuZCBhIHVldmVudCB0byBnZW5lcmF0ZSBhCj4gaG90cGx1 ZyAqLwo+ICsJaWYgKCFpbnRlbF9kZGlfbGlua190cmFpbihpbnRlbF9kcCwgbGlua19yYXRlLCBs YW5lX2NvdW50LAo+IGxpbmtfbXN0KSkKPiArCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50 KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXBsbC0+Y29uZmlnID0gdG1wX3BsbF9jb25maWc7Cj4g K30KPiArCj4gwqBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9oZG1pKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IMKgCQkJCcKgwqDCoMKgwqDCoGJvb2wgaGFzX2hkbWlf c2luaywKPiDCoAkJCQnCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZQo+ICphZGp1 c3RlZF9tb2RlLAo+IEBAIC0xNjkzLDIwICsxNzE0LDI2IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rk aV9wcmVfZW5hYmxlKHN0cnVjdAo+IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gwqAJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+ IMKgCWludCB0eXBlID0gaW50ZWxfZW5jb2Rlci0+dHlwZTsKPiDCoAo+IC0JaWYgKHR5cGUgPT0g SU5URUxfT1VUUFVUX0RQIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ICsJaWYgKHR5 cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKPiArCQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9lZHAoaW50 ZWxfZW5jb2RlciwKPiArCQkJCQljcnRjLT5jb25maWctPnBvcnRfY2xvY2ssCj4gKwkJCQkJY3J0 Yy0+Y29uZmlnLT5sYW5lX2NvdW50LAo+ICsJCQkJCWNydGMtPmNvbmZpZy0+c2hhcmVkX2RwbGwp Owo+ICsKPiArCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9EUCkKPiDCoAkJaW50ZWxfZGRpX3By ZV9lbmFibGVfZHAoaW50ZWxfZW5jb2RlciwKPiDCoAkJCQkJY3J0Yy0+Y29uZmlnLT5wb3J0X2Ns b2NrLAo+IMKgCQkJCQljcnRjLT5jb25maWctPmxhbmVfY291bnQsCj4gwqAJCQkJCWNydGMtPmNv bmZpZy0+c2hhcmVkX2RwbGwsCj4gwqAJCQkJCWludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0KPiA+ Y29uZmlnLAo+IMKgCQkJCQkJCcKgwqDCoMKgSU5URUxfT1UKPiBUUFVUX0RQX01TVCkpOwo+IC0J fQo+IC0JaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpIHsKPiArCj4gKwlpZiAodHlwZSA9 PSBJTlRFTF9PVVRQVVRfSERNSSkKPiDCoAkJaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShpbnRl bF9lbmNvZGVyLAo+IMKgCQkJCQnCoMKgY3J0Yy0+Y29uZmlnLQo+ID5oYXNfaGRtaV9zaW5rLAo+ IMKgCQkJCQnCoMKgJmNydGMtPmNvbmZpZy0KPiA+YmFzZS5hZGp1c3RlZF9tb2RlLAo+IMKgCQkJ CQnCoMKgY3J0Yy0+Y29uZmlnLQo+ID5zaGFyZWRfZHBsbCk7Cj4gLQl9Cj4gKwo+IMKgfQo+IMKg Cj4gwqBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyCj4gKmludGVsX2VuY29kZXIsCj4gQEAgLTI0MzUsNiArMjQ2Miw3MSBAQCBpbnRlbF9kZGlf Z2V0X2xpbmtfZHBsbChzdHJ1Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHAsIGludCBjbG9jaykKPiDC oAlyZXR1cm4gcGxsOwo+IMKgfQo+IMKgCj4gK2Jvb2wKPiAraW50ZWxfZGRpX2xpbmtfdHJhaW4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1heF9saW5rX3JhdGUsCj4gKwkJwqDCoMKg wqDCoHVpbnQ4X3QgbWF4X2xhbmVfY291bnQsIGJvb2wgbGlua19tc3QpCj4gK3sKPiArCXN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2RwLQo+ID5hdHRhY2hlZF9jb25u ZWN0b3I7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5j b2RlcjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0KPiA+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7Cj4g KwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ICsJaW50 IGxpbmtfcmF0ZSwgbWF4X2xpbmtfcmF0ZV9pbmRleCwgbGlua19yYXRlX2luZGV4Owo+ICsJdWlu dDhfdCBsYW5lX2NvdW50Owo+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JB VEVTXSA9IHt9Owo+ICsJYm9vbCByZXQgPSBmYWxzZTsKPiArCj4gKwltYXhfbGlua19yYXRlX2lu ZGV4ID0gaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KGludGVsX2RwLAo+IGNvbW1vbl9yYXRlcywK PiArCQkJCQkJwqDCoMKgbWF4X2xpbmtfcmF0ZSk7Cj4gKwlpZiAobWF4X2xpbmtfcmF0ZV9pbmRl eCA8IDApIHsKPiArCQlEUk1fRVJST1IoIkludmFsaWQgTGluayBSYXRlXG4iKTsKPiArCQlyZXR1 cm4gZmFsc2U7Cj4gKwl9Cj4gKwlmb3IgKGxhbmVfY291bnQgPSBtYXhfbGFuZV9jb3VudDsgbGFu ZV9jb3VudCA+IDA7IGxhbmVfY291bnQKPiA+Pj0gMSkgewo+ICsJCWZvciAobGlua19yYXRlX2lu ZGV4ID0gbWF4X2xpbmtfcmF0ZV9pbmRleDsKPiArCQnCoMKgwqDCoMKgbGlua19yYXRlX2luZGV4 ID49IDA7IGxpbmtfcmF0ZV9pbmRleC0tKSB7Cj4gKwkJCWxpbmtfcmF0ZSA9IGNvbW1vbl9yYXRl c1tsaW5rX3JhdGVfaW5kZXhdOwo+ICsJCQlwbGwgPSBpbnRlbF9kZGlfZ2V0X2xpbmtfZHBsbChp bnRlbF9kcCwKPiBsaW5rX3JhdGUpOwo+ICsJCQlpZiAocGxsID09IE5VTEwpIHsKPiArCQkJCURS TV9FUlJPUigiQ291bGQgbm90IGZpbmQgRFBMTCBmb3IKPiBsaW5rICIKPiArCQkJCQnCoMKgInRy YWluaW5nLlxuIik7CmNoZWNrcGF0Y2gucGwgZ2l2ZXMgYSB3YXJuaW5nOgoKV0FSTklORzogcXVv dGVkIHN0cmluZyBzcGxpdCBhY3Jvc3MgbGluZXMKIzIzMzogRklMRTogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmM6MjQ5MjoKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgRFJNX0VSUk9SKCJDb3VsZCBub3QgZmluZCBE UExMIGZvciBsaW5rCiIKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAidHJhaW5pbmcuXG4iKTsK CkkgdGhpbmsgd2UgY291bGQgcHV0IHRoaXMgZXJyb3IgbWVzc2FnZSBpbnRvIGEgc2luZ2xlIGxp bmUuIEluIHRoaXMKY2FzZSwgdGhlIHRvb2wgd2FybnMgeW91IG9uIGV4Y2VlZGluZyB0aGUgODAg Y2hhcmFjdGVyIGxpbWl0IGJ1dCB3ZQpicmVhayB0aGF0IHJ1bGUgaGVyZSBhbmQgdGhlcmUgaW4g b3VyIGRyaXZlciBhbnl3YXkuCgo+ICsJCQkJcmV0dXJuIGZhbHNlOwo+ICsJCQl9Cj4gKwkJCXRt cF9wbGxfY29uZmlnID0gcGxsLT5jb25maWc7Cj4gKwkJCXBsbC0+ZnVuY3MuZW5hYmxlKGRldl9w cml2LCBwbGwpOwo+ICsKPiArCQkJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLAo+ IGxpbmtfcmF0ZSwKPiArCQkJCQkJwqBsYW5lX2NvdW50LAo+IGxpbmtfbXN0KTsKPiArCj4gKwkJ CWludGVsX2RkaV9jbGtfc2VsZWN0KGVuY29kZXIsIHBsbCk7Cj4gKwkJCWludGVsX3ByZXBhcmVf ZHBfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7Cj4gKwkJCWludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWco ZW5jb2Rlcik7Cj4gKwkJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwKPiBEUk1fTU9ERV9E UE1TX09OKTsKPiArCQkJcmV0ID0gaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihpbnRlbF9kcCk7 Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlicmVhazsKPiArCj4gKwkJCS8qIERpc2FibGUgcG9ydCBm b2xsb3dlZCBieSBQTEwgZm9yIG5leHQKPiArCQkJwqAqcmV0cnkvY2xlYW4gdXAKPiArCQkJwqAq Lwo+ICsJCQlpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKGVuY29kZXIsIE5VTEwsIE5VTEwpOwo+ICsJ CQlwbGwtPmZ1bmNzLmRpc2FibGUoZGV2X3ByaXYsIHBsbCk7Cj4gKwkJCXBsbC0+Y29uZmlnID0g dG1wX3BsbF9jb25maWc7Cj4gKwkJfQo+ICsJCWlmIChyZXQpIHsKPiArCQkJRFJNX0RFQlVHX0tN UygiTGluayBUcmFpbmluZyBzdWNjZXNzZnVsIGF0Cj4gbGluayByYXRlOiAiCj4gKwkJCQnCoMKg wqDCoMKgwqAiJWQgbGFuZTolZFxuIiwgbGlua19yYXRlLAo+IGxhbmVfY291bnQpOwpTYW1lIHRo aW5nIGhlcmUuIE1heWJlCgpEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIHN1Y2Nlc3NmdWwg YXQgbGluayByYXRlOiAlZCBsYW5lOiVkXG4iLCAJCsKgIMKgIMKgIMKgIMKgIMKgIMKgIGxpbmtf cmF0ZSwgbGFuZV9jb3VudCk7Cgo+IAo+ICsJCX0KPiArCX0KPiArCWludGVsX2RwX3N0b3BfbGlu a190cmFpbihpbnRlbF9kcCk7Cj4gKwo+ICsJaWYgKCFsYW5lX2NvdW50KQo+ICsJCURSTV9FUlJP UigiTGluayBUcmFpbmluZyBGYWlsZWRcbiIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiAr Cj4gwqB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9y dCBwb3J0KQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IDc1YWM2MmYuLmJi OWRmMWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtMTQ0Myw2ICsxNDQzLDIx IEBAIGludGVsX2RwX21heF9saW5rX3JhdGUoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwKQo+ IMKgCXJldHVybiByYXRlc1tsZW4gLSAxXTsKPiDCoH0KPiDCoAo+ICtpbnQgaW50ZWxfZHBfbGlu a19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludAo+ICpjb21tb25fcmF0 ZXMsCj4gKwkJCcKgwqDCoMKgwqBpbnQgbGlua19yYXRlKQo+ICt7Cj4gKwlpbnQgY29tbW9uX2xl bjsKPiArCWludCBpbmRleDsKPiArCj4gKwljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX3Jh dGVzKGludGVsX2RwLCBjb21tb25fcmF0ZXMpOwo+ICsJZm9yIChpbmRleCA9IDA7IGluZGV4IDwg Y29tbW9uX2xlbjsgaW5kZXgrKykgewo+ICsJCWlmIChsaW5rX3JhdGUgPT0gY29tbW9uX3JhdGVz W2NvbW1vbl9sZW4gLSBpbmRleCAtCj4gMV0pCj4gKwkJCXJldHVybiBjb21tb25fbGVuIC0gaW5k ZXggLSAxOwo+ICsJfQo+ICsKPiArCXJldHVybiAtMTsKPiArfQo+ICsKPiDCoGludCBpbnRlbF9k cF9yYXRlX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgcmF0ZSkKPiDCoHsK PiDCoAlyZXR1cm4gcmF0ZV90b19pbmRleChyYXRlLCBpbnRlbF9kcC0+c2lua19yYXRlcyk7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcu Ywo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4gaW5k ZXggYzQzOGIwMi4uZjFlMDhmMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcF9saW5rX3RyYWluaW5nLmMKPiBAQCAtMzEzLDkgKzMxMywxNSBAQCB2b2lkIGludGVsX2Rw X3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHApCj4gwqAJCQkJRFBf VFJBSU5JTkdfUEFUVEVSTl9ESVNBQkxFKTsKPiDCoH0KPiDCoAo+IC12b2lkCj4gK2Jvb2wKPiDC oGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiDC oHsKPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+ IC0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7 Cj4gKwlib29sIHJldDsKPiArCj4gKwlpZiAoaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19y ZWNvdmVyeShpbnRlbF9kcCkpIHsKPiArCQlyZXQgPQo+IGludGVsX2RwX2xpbmtfdHJhaW5pbmdf Y2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVy biB0cnVlOwo+ICsJfQo+ICsJcmV0dXJuIGZhbHNlOwo+IMKgfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBpbmRleCBhYmU3YTRkLi42OWM4MDUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBAQCAtMTE2MCw2ICsxMTYwLDggQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0 KHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gKmVuY29kZXIsCj4gwqAJCQnCoHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gwqB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9h ZF9hbGxvYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wKPiBzdGF0ZSk7Cj4gwqB1aW50MzJf dCBkZGlfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiArYm9vbCBp bnRlbF9kZGlfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQKPiBtYXhf bGlua19yYXRlLAo+ICsJCQnCoMKgdWludDhfdCBtYXhfbGFuZV9jb3VudCwgYm9vbCBsaW5rX21z dCk7Cj4gwqBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2RkaV9nZXRfbGlua19kcGxs KHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCwKPiDCoAkJCQkJCcKgwqBpbnQgY2xvY2spOwo+ IMKgdW5zaWduZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+IEBAIC0xMzgxLDcgKzEzODMsNyBAQCBib29sIGludGVsX2RwX2luaXRfY29ubmVjdG9y KHN0cnVjdAo+IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gwqB2b2lkIGlu dGVsX2RwX3NldF9saW5rX3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+IMKgCQkJ wqDCoMKgwqDCoMKgaW50IGxpbmtfcmF0ZSwgdWludDhfdCBsYW5lX2NvdW50LAo+IMKgCQkJwqDC oMKgwqDCoMKgYm9vbCBsaW5rX21zdCk7Cj4gLXZvaWQgaW50ZWxfZHBfc3RhcnRfbGlua190cmFp bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiArYm9vbCBpbnRlbF9kcF9zdGFydF9saW5r X3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+IMKgdm9pZCBpbnRlbF9kcF9zdG9w X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gwqB2b2lkIGludGVsX2Rw X3NpbmtfZHBtcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgbW9kZSk7Cj4gwqB2b2lk IGludGVsX2RwX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiBA QCAtMTQwMyw2ICsxNDA1LDggQEAgdm9pZCBpbnRlbF9kcF9hZGRfcHJvcGVydGllcyhzdHJ1Y3Qg aW50ZWxfZHAKPiAqaW50ZWxfZHAsIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjbwo+IMKgdm9pZCBp bnRlbF9kcF9tc3Rfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiDCoHZvaWQgaW50 ZWxfZHBfbXN0X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiDCoGludCBpbnRlbF9k cF9tYXhfbGlua19yYXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICtpbnQgaW50ZWxf ZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludAo+ICpjb21t b25fcmF0ZXMsCj4gKwkJCcKgwqDCoMKgwqBpbnQgbGlua19yYXRlKTsKPiDCoGludCBpbnRlbF9k cF9yYXRlX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgcmF0ZSk7Cj4gwqB2 b2lkIGludGVsX2RwX2hvdF9wbHVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy KTsKPiDCoHZvaWQgaW50ZWxfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Ci0tIApNaWthIEthaG9sYSAtIEludGVsIE9UQwoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==