From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH v2 11/14] drm/i915: Fallback to lower link rate and lane count during link training Date: Wed, 07 Sep 2016 12:47:49 +0300 Message-ID: <1473241669.28727.22.camel@intel.com> References: <1472767699-31211-12-git-send-email-manasi.d.navare@intel.com> <1473207238-3490-3-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 866236E996 for ; Wed, 7 Sep 2016 09:57:06 +0000 (UTC) In-Reply-To: <1473207238-3490-3-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 T24gVHVlLCAyMDE2LTA5LTA2IGF0IDE3OjEzIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ IEFjY29yZGluZyB0byB0aGUgRGlzcGxheVBvcnQgU3BlYywgaW4gY2FzZSBvZiBDbG9jayBSZWNv dmVyeSBmYWlsdXJlCj4gdGhlIGxpbmsgdHJhaW5pbmcgc2VxdWVuY2Ugc2hvdWxkIGZhbGwgYmFj ayB0byB0aGUgbG93ZXIgbGluayByYXRlCj4gZm9sbG93ZWQgYnkgbG93ZXIgbGFuZSBjb3VudCB1 bnRpbCBDUiBzdWNjZWVkcy4KPiBPbiBDUiBzdWNjZXNzLCB0aGUgc2VxdWVuY2UgcHJvY2VlZHMg d2l0aCBDaGFubmVsIEVRLgo+IEluIGNhc2Ugb2YgQ2hhbm5lbCBFUSBmYWlsdXJlcywgaXQgc2hv dWxkIGZhbGxiYWNrIHRvCj4gbG93ZXIgbGluayByYXRlIGFuZCBsYW5lIGNvdW50IGFuZCBzdGFy dCB0aGUgQ1IgcGhhc2UgYWdhaW4uCj4gCj4gdjI6Cj4gKiBBZGQgYSBoZWxwZXIgZnVuY3Rpb24g dG8gcmV0dXJuIGluZGV4IG9mIHJlcXVlc3RlZCBsaW5rIHJhdGUKPiBpbnRvIGNvbW1vbl9yYXRl cyBhcnJheQo+ICogQ2hhbmdlZCB0aGUgbGluayByYXRlIGZhbGxiYWNrIGxvb3AgdG8gbWFrZSB1 c2UKPiBvZiBjb21tb25fcmF0ZXMgYXJyYXkgKE1pa2EgS2Fob2xhKQo+ICogQ2hhbmdlZCBJTlRF TF9JTkZPIHRvIElOVEVMX0dFTiAoRGF2aWQgV2VpbmVoYWxsKQo+IAo+IFNpZ25lZC1vZmYtYnk6 IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gLS0tCj4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8 IDEyNQo+ICsrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAxNSArKysrCj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgfMKgwqAxMiAr Ky0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHzCoMKgwqA3ICstCj4gwqA0IGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5k ZXggNjdhNmEwYi4uZTM4YmY0YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAg LTE2MzQsMTkgKzE2MzQsMTggQEAgdm9pZCBpbnRlbF9kZGlfY2xrX3NlbGVjdChzdHJ1Y3QKPiBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IMKgCX0KPiDCoH0KPiDCoAo+IC1zdGF0aWMgdm9pZCBp bnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAr c3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+IMKgCQkJCcKgwqDCoMKgaW50IGxpbmtfcmF0ZSwgdWludDMyX3QKPiBsYW5l X2NvdW50LAo+IC0JCQkJwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiAt CQkJCcKgwqDCoMKgYm9vbCBsaW5rX21zdCkKPiArCQkJCcKgwqDCoMKgc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGwpCj4gwqB7Cj4gwqAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLQo+ID5iYXNlLmRldik7Cj4gwqAJZW51bSBw b3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNvZGVyKTsKPiDCoAo+IMKg CWludGVsX2RwX3NldF9saW5rX3BhcmFtcyhpbnRlbF9kcCwgbGlua19yYXRlLCBsYW5lX2NvdW50 LAo+IC0JCQkJwqBsaW5rX21zdCk7Cj4gLQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQ VVRfRURQKQo+IC0JCWludGVsX2VkcF9wYW5lbF9vbihpbnRlbF9kcCk7Cj4gKwkJCQnCoGZhbHNl KTsKPiArCj4gKwlpbnRlbF9lZHBfcGFuZWxfb24oaW50ZWxfZHApOwo+IMKgCj4gwqAJaW50ZWxf ZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiDCoAlpbnRlbF9wcmVwYXJlX2RwX2RkaV9i dWZmZXJzKGVuY29kZXIpOwo+IEBAIC0xNjU3LDYgKzE2NTYsMjkgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0Cj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiDC oAkJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiDCoH0KPiDCoAo+ICtzdGF0 aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiArCQkJCcKgwqDCoMKgaW50IGxpbmtfcmF0ZSwgdWludDMyX3QKPiBsYW5lX2NvdW50 LAo+ICsJCQkJwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiArCQkJCcKg wqDCoMKgYm9vbCBsaW5rX21zdCkKPiArewo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItCj4gPmJhc2UuZGV2KTsKPiArCXN0cnVj dCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgdG1wX3BsbF9jb25maWc7Cj4gKwo+ICsJLyogRGlz YWJsZSB0aGUgUExMIGFuZCBvYnRhaW4gdGhlIFBMTCBmb3IgTGluayBUcmFpbmluZwo+ICsJwqAq IHRoYXQgc3RhcnRzIHdpdGggaGlnaGVzdCBsaW5rIHJhdGUgYW5kIGxhbmUgY291bnQuCj4gKwnC oCovCj4gKwl0bXBfcGxsX2NvbmZpZyA9IHBsbC0+Y29uZmlnOwo+ICsJcGxsLT5mdW5jcy5kaXNh YmxlKGRldl9wcml2LCBwbGwpOwo+ICsJcGxsLT5jb25maWcuY3J0Y19tYXNrID0gMDsKPiArCj4g KwkvKiBJZiBMaW5rIFRyYWluaW5nIGZhaWxzLCBzZW5kIGEgdWV2ZW50IHRvIGdlbmVyYXRlIGEK PiBob3RwbHVnICovCj4gKwlpZiAoIShpbnRlbF9kZGlfbGlua190cmFpbihpbnRlbF9kcCwgbGlu a19yYXRlLCBsYW5lX2NvdW50LAo+IGxpbmtfbXN0LAo+ICsJCQkJwqDCoMKgZmFsc2UpKSkKPiAr CQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXBs bC0+Y29uZmlnID0gdG1wX3BsbF9jb25maWc7Cj4gK30KPiArCj4gwqBzdGF0aWMgdm9pZCBpbnRl bF9kZGlfcHJlX2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IMKg CQkJCcKgwqDCoMKgwqDCoGJvb2wgaGFzX2hkbWlfc2luaywKPiDCoAkJCQnCoMKgwqDCoMKgwqBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZQo+ICphZGp1c3RlZF9tb2RlLAo+IEBAIC0xNjkwLDIwICsx NzEyLDI2IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdAo+IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gwqAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+IMKgCWludCB0eXBlID0gaW50ZWxfZW5jb2Rl ci0+dHlwZTsKPiDCoAo+IC0JaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0RQIHx8IHR5cGUgPT0g SU5URUxfT1VUUFVUX0VEUCkgewo+ICsJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKPiAr CQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9lZHAoaW50ZWxfZW5jb2RlciwKPiArCQkJCQljcnRjLT5j b25maWctPnBvcnRfY2xvY2ssCj4gKwkJCQkJY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50LAo+ICsJ CQkJCWNydGMtPmNvbmZpZy0+c2hhcmVkX2RwbGwpOwo+ICsKPiArCWlmICh0eXBlID09IElOVEVM X09VVFBVVF9EUCkKPiDCoAkJaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoaW50ZWxfZW5jb2RlciwK PiDCoAkJCQkJY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrLAo+IMKgCQkJCQljcnRjLT5jb25maWct PmxhbmVfY291bnQsCj4gwqAJCQkJCWNydGMtPmNvbmZpZy0+c2hhcmVkX2RwbGwsCj4gwqAJCQkJ CWludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0KPiA+Y29uZmlnLAo+IMKgCQkJCQkJCcKgwqDCoMKg SU5URUxfT1UKPiBUUFVUX0RQX01TVCkpOwo+IC0JfQo+IC0JaWYgKHR5cGUgPT0gSU5URUxfT1VU UFVUX0hETUkpIHsKPiArCj4gKwlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkKPiDCoAkJ aW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShpbnRlbF9lbmNvZGVyLAo+IMKgCQkJCQnCoMKgY3J0 Yy0+Y29uZmlnLQo+ID5oYXNfaGRtaV9zaW5rLAo+IMKgCQkJCQnCoMKgJmNydGMtPmNvbmZpZy0K PiA+YmFzZS5hZGp1c3RlZF9tb2RlLAo+IMKgCQkJCQnCoMKgY3J0Yy0+Y29uZmlnLQo+ID5zaGFy ZWRfZHBsbCk7Cj4gLQl9Cj4gKwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgdm9pZCBpbnRlbF9kZGlf cG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gKmludGVsX2VuY29kZXIsCj4gQEAg LTI0MzEsNiArMjQ1OSw4MyBAQCBpbnRlbF9kZGlfZ2V0X2xpbmtfZHBsbChzdHJ1Y3QgaW50ZWxf ZHAKPiAqaW50ZWxfZHAsIGludCBjbG9jaykKPiDCoAlyZXR1cm4gcGxsOwo+IMKgfQo+IMKgCj4g K2Jvb2wKPiAraW50ZWxfZGRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwg aW50IG1heF9saW5rX3JhdGUsCj4gKwkJwqDCoMKgwqDCoHVpbnQ4X3QgbWF4X2xhbmVfY291bnQs IGJvb2wgbGlua19tc3QsIGJvb2wKPiBpc191cGZyb250KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IgPSBpbnRlbF9kcC0KPiA+YXR0YWNoZWRfY29ubmVjdG9yOwo+ ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItCj4g PmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ICsJc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyB0bXBfcGxsX2NvbmZpZzsKPiArCWludCBsaW5rX3Jh dGUsIGxpbmtfcmF0ZV9pbmRleDsKPiArCXVpbnQ4X3QgbGFuZV9jb3VudDsKPiArCWludCBjb21t b25fcmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU10gPSB7fTsKPiArCWJvb2wgcmV0ID0gZmFs c2U7Cj4gKwo+ICsJbGlua19yYXRlX2luZGV4ID0gaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KGlu dGVsX2RwLAo+IGNvbW1vbl9yYXRlcywKPiArCQkJCQkJwqDCoMKgbWF4X2xpbmtfcmF0ZSk7Cj4g KwlpZiAobGlua19yYXRlX2luZGV4IDwgMCkgewo+ICsJCURSTV9FUlJPUigiSW52YWxpZCBMaW5r IFJhdGVcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCWZvciAobGFuZV9jb3VudCA9 IG1heF9sYW5lX2NvdW50OyBsYW5lX2NvdW50ID4gMDsgbGFuZV9jb3VudAo+ID4+PSAxKSB7Cj4g KwkJZm9yIChsaW5rX3JhdGUgPSBjb21tb25fcmF0ZXNbbGlua19yYXRlX2luZGV4XTsKPiArCQnC oMKgwqDCoMKgbGlua19yYXRlX2luZGV4ID49IDA7IGxpbmtfcmF0ZV9pbmRleCAtLSkgewo+ICsJ CQlwbGwgPSBpbnRlbF9kZGlfZ2V0X2xpbmtfZHBsbChpbnRlbF9kcCwKPiBsaW5rX3JhdGUpOwo+ ICsJCQlpZiAocGxsID09IE5VTEwpIHsKPiArCQkJCURSTV9FUlJPUigiQ291bGQgbm90IGZpbmQg RFBMTCBmb3IKPiBsaW5rICIKPiArCQkJCQnCoMKgInRyYWluaW5nLlxuIik7Cj4gKwkJCQlyZXR1 cm4gZmFsc2U7Cj4gKwkJCX0KPiArCQkJdG1wX3BsbF9jb25maWcgPSBwbGwtPmNvbmZpZzsKPiAr CQkJcGxsLT5mdW5jcy5lbmFibGUoZGV2X3ByaXYsIHBsbCk7Cj4gKwo+ICsJCQlpbnRlbF9kcF9z ZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsCj4gbGlua19yYXRlLAo+ICsJCQkJCQnCoGxhbmVfY291 bnQsCj4gbGlua19tc3QpOwo+ICsKPiArCQkJaW50ZWxfZGRpX2Nsa19zZWxlY3QoZW5jb2Rlciwg cGxsKTsKPiArCQkJaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhlbmNvZGVyKTsKPiArCQkJ aW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhlbmNvZGVyKTsKPiArCQkJaW50ZWxfZHBfc2lua19k cG1zKGludGVsX2RwLAo+IERSTV9NT0RFX0RQTVNfT04pOwo+ICsJCQlyZXQgPSBpbnRlbF9kcF9z dGFydF9saW5rX3RyYWluKGludGVsX2RwKTsKPiArCQkJaWYgKHJldCkKPiArCQkJCWJyZWFrOwo+ ICsKPiArCQkJLyogRGlzYWJsZSBwb3J0IGZvbGxvd2VkIGJ5IFBMTCBmb3IgbmV4dAo+IHJldHJ5 L2NsZWFuIHVwICovCj4gKwkJCWludGVsX2RkaV9wb3N0X2Rpc2FibGUoZW5jb2RlciwgTlVMTCwg TlVMTCk7Cj4gKwkJCXBsbC0+ZnVuY3MuZGlzYWJsZShkZXZfcHJpdiwgcGxsKTsKPiArCQkJcGxs LT5jb25maWcgPSB0bXBfcGxsX2NvbmZpZzsKPiArCQl9Cj4gKwkJaWYgKHJldCkgewo+ICsJCQlE Uk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIHN1Y2Nlc3NmdWwgYXQKPiBsaW5rIHJhdGU6ICIK PiArCQkJCcKgwqDCoMKgwqDCoCIlZCBsYW5lOiVkXG4iLCBsaW5rX3JhdGUsCj4gbGFuZV9jb3Vu dCk7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KPiArCWludGVsX2RwX3N0b3BfbGlua190cmFp bihpbnRlbF9kcCk7Cj4gKwo+ICsJaWYgKGlzX3VwZnJvbnQpIHsKPiArCQlEUk1fREVCVUdfS01T KCJVcGZyb250IGxpbmsgdHJhaW4gJXM6IGxpbmtfY2xvY2s6JWQKPiBsYW5lczolZFxuIiwKPiAr CQkJwqDCoMKgwqDCoMKgcmV0ID8gIlBhc3NlZCIgOiAiRmFpbGVkIiwKPiArCQkJwqDCoMKgwqDC oMKgbGlua19yYXRlLCBsYW5lX2NvdW50KTsKPiArCQkvKiBEaXNhYmxlIHBvcnQgZm9sbG93ZWQg YnkgUExMIGZvciBuZXh0IHJldHJ5L2NsZWFuCj4gdXAgKi8KPiArCQlpbnRlbF9kZGlfcG9zdF9k aXNhYmxlKGVuY29kZXIsIE5VTEwsIE5VTEwpOwo+ICsJCXBsbC0+ZnVuY3MuZGlzYWJsZShkZXZf cHJpdiwgcGxsKTsKPiArCQlwbGwtPmNvbmZpZyA9IHRtcF9wbGxfY29uZmlnOwpJbiBhIGNhc2Ug d2hlcmUgbGluayB0cmFpbmluZyB3YXMgc3VjY2Vzc2Z1bCwgSSBndWVzcyB3ZSBjb3VsZCBsZWF2 ZQp0aGUgcG9ydCBvbi4gSXMgdGhlcmUgYSByZWFzb24gd2h5IHdlIHNob3VsZCBkbyBvdGhlcndp c2U/CgoKPiArCQlpZiAocmV0KSB7Cj4gKwkJCS8qIFNhdmUgdGhlIHVwZnJvbnQgdmFsdWVzICov Cj4gKwkJCWludGVsX2RwLT5tYXhfbGFuZXNfdXBmcm9udCA9IGxhbmVfY291bnQ7Cj4gKwkJCWlu dGVsX2RwLT5tYXhfbGlua19yYXRlX3VwZnJvbnQgPSBsaW5rX3JhdGU7Ck15IGNvbXBpbGVyIHdh c24ndCByZWFsbHkgYSBiaWcgZmFuIG9mIHRoZXNlIG5ldyBtZW1iZXJzIGluIGEgaW50ZWxfZHAK c3RydWN0IHNvIEkgdGhlc2UgbmVlZHMgdG8gYmUgZGVmaW5lZCBpbiBpbnRlbF9kcnYuaAoKZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmM6IEluIGZ1bmN0aW9uIOKAmGludGVsX2RkaV9s aW5rX3RyYWlu4oCZOgpkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYzoyNTI4OjEyOiBl cnJvcjog4oCYc3RydWN0IGludGVsX2Rw4oCZIGhhcwpubyBtZW1iZXIgbmFtZWQg4oCYbWF4X2xh bmVzX3VwZnJvbnTigJkKwqDCoMKgwqBpbnRlbF9kcC0+bWF4X2xhbmVzX3VwZnJvbnQgPSBsYW5l X2NvdW50OwrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBeCmRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jOjI1Mjk6MTI6IGVycm9yOiDigJhzdHJ1Y3QgaW50ZWxfZHDigJkgaGFzCm5vIG1l bWJlciBuYW1lZCDigJhtYXhfbGlua19yYXRlX3VwZnJvbnTigJkKCsKgwqDCoMKgaW50ZWxfZHAt Pm1heF9saW5rX3JhdGVfdXBmcm9udCA9IGxpbmtfcmF0ZTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJ aWYgKCFsYW5lX2NvdW50KQo+ICsJCURSTV9FUlJPUigiTGluayBUcmFpbmluZyBGYWlsZWRcbiIp Owo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gwqB2b2lkIGludGVsX2RkaV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KQo+IMKgewo+IMKgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+IGluZGV4IGRmZGJlNjUuLjM5MWUzODQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiBAQCAtMTQ0Myw2ICsxNDQzLDIxIEBAIGludGVsX2RwX21heF9saW5rX3JhdGUo c3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwKQo+IMKgCXJldHVybiByYXRlc1tsZW4gLSAxXTsK PiDCoH0KPiDCoAo+ICtpbnQgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsIGludAo+ICpjb21tb25fcmF0ZXMsCj4gKwkJCcKgwqDCoMKgwqBpbnQgbGlu a19yYXRlKQo+ICt7Cj4gKwlpbnQgY29tbW9uX2xlbjsKPiArCWludCBpbmRleDsKPiArCj4gKwlj b21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCBjb21tb25fcmF0ZXMp Owo+ICsJZm9yIChpbmRleCA9IGNvbW1vbl9sZW4gLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7 Cj4gKwkJaWYgKGxpbmtfcmF0ZSA9PSBjb21tb25fcmF0ZXNbaW5kZXhdKQo+ICsJCQlyZXR1cm4g aW5kZXg7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIC0xOwo+ICt9Cj4gKwo+IMKgaW50IGludGVsX2Rw X3JhdGVfc2VsZWN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCByYXRlKQo+IMKgewo+ IMKgCXJldHVybiByYXRlX3RvX2luZGV4KHJhdGUsIGludGVsX2RwLT5zaW5rX3JhdGVzKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5j Cj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiBpbmRl eCAwZmI4NDVkLi43MDVkYmQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX2xpbmtfdHJhaW5pbmcuYwo+IEBAIC0zMDksOSArMzA5LDE1IEBAIHZvaWQgaW50ZWxfZHBf c3RvcF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCkKPiDCoAkJCQlEUF9U UkFJTklOR19QQVRURVJOX0RJU0FCTEUpOwo+IMKgfQo+IMKgCj4gLXZvaWQKPiArYm9vbAo+IMKg aW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+IMKg ewo+IC0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCk7Cj4g LQlpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsK PiArCWJvb2wgcmV0Owo+ICsKPiArCWlmIChpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3Jl Y292ZXJ5KGludGVsX2RwKSkgewo+ICsJCXJldCA9Cj4gaW50ZWxfZHBfbGlua190cmFpbmluZ19j aGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJu IHRydWU7Cj4gKwl9Cj4gKwlyZXR1cm4gZmFsc2U7Cj4gwqB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+IGluZGV4IGU1YmM5NzYuLjkwZTdiMTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+IEBAIC0xMTYwLDYgKzExNjAsOSBAQCB2b2lkIGludGVsX2RkaV9jbG9ja19nZXQo c3RydWN0IGludGVsX2VuY29kZXIKPiAqZW5jb2RlciwKPiDCoAkJCcKgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPiDCoHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2Fk X2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbAo+IHN0YXRlKTsKPiDCoHVpbnQzMl90 IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICtib29sIGlu dGVsX2RkaV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludAo+IG1heF9s aW5rX3JhdGUsCj4gKwkJCcKgwqB1aW50OF90IG1heF9sYW5lX2NvdW50LCBib29sIGxpbmtfbXN0 LAo+ICsJCQnCoMKgYm9vbCBpc191cGZyb250KTsKPiDCoHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqaW50ZWxfZGRpX2dldF9saW5rX2RwbGwoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwLAo+ IMKgCQkJCQkJwqDCoGludCBjbG9jayk7Cj4gwqB1bnNpZ25lZCBpbnQgaW50ZWxfZmJfYWxpZ25f aGVpZ2h0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gQEAgLTEzODEsNyArMTM4NCw3IEBAIGJv b2wgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0Cj4gaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwKPiDCoHZvaWQgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCj4gwqAJCQnCoMKgwqDCoMKgwqBpbnQgbGlua19yYXRlLCB1aW50 OF90IGxhbmVfY291bnQsCj4gwqAJCQnCoMKgwqDCoMKgwqBib29sIGxpbmtfbXN0KTsKPiAtdm9p ZCBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ ICtib29sIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCk7Cj4gwqB2b2lkIGludGVsX2RwX3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKTsKPiDCoHZvaWQgaW50ZWxfZHBfc2lua19kcG1zKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsIGludCBtb2RlKTsKPiDCoHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9yZXNldChzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+IEBAIC0xNDAzLDYgKzE0MDYsOCBAQCB2b2lkIGludGVs X2RwX2FkZF9wcm9wZXJ0aWVzKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCwgc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvCj4gwqB2b2lkIGludGVsX2RwX21zdF9zdXNwZW5kKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+IMKgdm9pZCBpbnRlbF9kcF9tc3RfcmVzdW1lKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+IMKgaW50IGludGVsX2RwX21heF9saW5rX3JhdGUoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCk7Cj4gK2ludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwgaW50Cj4gKmNvbW1vbl9yYXRlcywKPiArCQkJwqDCoMKgwqDCoGludCBs aW5rX3JhdGUpOwo+IMKgaW50IGludGVsX2RwX3JhdGVfc2VsZWN0KHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsIGludCByYXRlKTsKPiDCoHZvaWQgaW50ZWxfZHBfaG90X3BsdWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwo+IMKgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5j ZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLS0gCk1pa2EgS2Fo b2xhIC0gSW50ZWwgT1RDCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK