From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH v6 1/6] drm/i915: Fallback to lower link rate and lane count during link training Date: Fri, 16 Sep 2016 12:29:11 +0300 Message-ID: <1474018151.13497.6.camel@intel.com> References: <1473984244-4349-1-git-send-email-manasi.d.navare@intel.com> <1473984244-4349-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 BF9266E9D0 for ; Fri, 16 Sep 2016 09:29:11 +0000 (UTC) In-Reply-To: <1473984244-4349-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 T24gVGh1LCAyMDE2LTA5LTE1IGF0IDE3OjAzIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ IEFjY29yZGluZyB0byB0aGUgRGlzcGxheVBvcnQgU3BlYywgaW4gY2FzZSBvZiBDbG9jayBSZWNv dmVyeSBmYWlsdXJlCj4gdGhlIGxpbmsgdHJhaW5pbmcgc2VxdWVuY2Ugc2hvdWxkIGZhbGwgYmFj ayB0byB0aGUgbG93ZXIgbGluayByYXRlCj4gZm9sbG93ZWQgYnkgbG93ZXIgbGFuZSBjb3VudCB1 bnRpbCBDUiBzdWNjZWVkcy4KPiBPbiBDUiBzdWNjZXNzLCB0aGUgc2VxdWVuY2UgcHJvY2VlZHMg d2l0aCBDaGFubmVsIEVRLgo+IEluIGNhc2Ugb2YgQ2hhbm5lbCBFUSBmYWlsdXJlcywgaXQgc2hv dWxkIGZhbGxiYWNrIHRvCj4gbG93ZXIgbGluayByYXRlIGFuZCBsYW5lIGNvdW50IGFuZCBzdGFy dCB0aGUgQ1IgcGhhc2UgYWdhaW4uCj4gCj4gdjY6Cj4gKiBEbyBub3Qgc3BsaXQgcXVvdGVkIHN0 cmluZyBhY3Jvc3MgbGluZSAoTWlrYSBLYWhvbGEpCj4gdjU6Cj4gKiBSZXNldCB0aGUgbGluayBy YXRlIGluZGV4IHRvIHRoZSBtYXggbGluayByYXRlIGluZGV4Cj4gYmVmb3JlIGxvd2VyaW5nIHRo ZSBsYW5lIGNvdW50IChKYW5pIE5pa3VsYSkKPiAqIFVzZSB0aGUgcGFyYWRpZ20gZm9yIGxvb3Ag aW4gaW50ZWxfZHBfbGlua19yYXRlX2luZGV4Cj4gdjQ6Cj4gKiBGaXhlZCB0aGUgbGluayByYXRl IGZhbGxiYWNrIGxvb3AgKE1hbmFzaSBOYXZhcmUpCj4gdjM6Cj4gKiBGaXhlZCBzb21lIHJlYmFz ZSBpc3N1ZXMgKE1pa2EgS2Fob2xhKQo+IHYyOgo+ICogQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRv IHJldHVybiBpbmRleCBvZiByZXF1ZXN0ZWQgbGluayByYXRlCj4gaW50byBjb21tb25fcmF0ZXMg YXJyYXkKPiAqIENoYW5nZWQgdGhlIGxpbmsgcmF0ZSBmYWxsYmFjayBsb29wIHRvIG1ha2UgdXNl Cj4gb2YgY29tbW9uX3JhdGVzIGFycmF5IChNaWthIEthaG9sYSkKPiAqIENoYW5nZWQgSU5URUxf SU5GTyB0byBJTlRFTF9HRU4gKERhdmlkIFdlaW5laGFsbCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBN YW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+IC0tLQo+IMKgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAx MTEKPiArKysrKysrKysrKysrKysrKysrKysrKy0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMTUgKysrKwo+IMKg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIHzCoMKgMTIgKyst Cj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB8wqDCoMKgNiArLQo+IMKgNCBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygr KSwgMTQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4 IDgwNjVhNWYuLjgyNmQ5ZjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0x NjM3LDE5ICsxNjM3LDE4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0Cj4gaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiDCoAl9Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIHZvaWQgaW50 ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gK3N0 YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiDCoAkJCQnCoMKgwqDCoGludCBsaW5rX3JhdGUsIHVpbnQzMl90Cj4gbGFuZV9j b3VudCwKPiAtCQkJCcKgwqDCoMKgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCj4gLQkJ CQnCoMKgwqDCoGJvb2wgbGlua19tc3QpCj4gKwkJCQnCoMKgwqDCoHN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsKQo+IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNf dG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0KPiA+YmFzZS5kZXYpOwo+IMKgCWVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gwqAKPiDCoAlp bnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGxpbmtfcmF0ZSwgbGFuZV9jb3VudCwK PiAtCQkJCcKgbGlua19tc3QpOwo+IC0JaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVU X0VEUCkKPiAtCQlpbnRlbF9lZHBfcGFuZWxfb24oaW50ZWxfZHApOwo+ICsJCQkJwqBmYWxzZSk7 Cj4gKwo+ICsJaW50ZWxfZWRwX3BhbmVsX29uKGludGVsX2RwKTsKPiDCoAo+IMKgCWludGVsX2Rk aV9jbGtfc2VsZWN0KGVuY29kZXIsIHBsbCk7Cj4gwqAJaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVm ZmVycyhlbmNvZGVyKTsKPiBAQCAtMTY2MCw2ICsxNjU5LDI4IEBAIHN0YXRpYyB2b2lkIGludGVs X2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdAo+IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gwqAJ CWludGVsX2RwX3N0b3BfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gwqB9Cj4gwqAKPiArc3RhdGlj IHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gKwkJCQnCoMKgwqDCoGludCBsaW5rX3JhdGUsIHVpbnQzMl90Cj4gbGFuZV9jb3VudCwK PiArCQkJCcKgwqDCoMKgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCj4gKwkJCQnCoMKg wqDCoGJvb2wgbGlua19tc3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLQo+ID5iYXNlLmRldik7Cj4gKwlzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ICsKPiArCS8qIERpc2Fi bGUgdGhlIFBMTCBhbmQgb2J0YWluIHRoZSBQTEwgZm9yIExpbmsgVHJhaW5pbmcKPiArCcKgKiB0 aGF0IHN0YXJ0cyB3aXRoIGhpZ2hlc3QgbGluayByYXRlIGFuZCBsYW5lIGNvdW50Lgo+ICsJwqAq Lwo+ICsJdG1wX3BsbF9jb25maWcgPSBwbGwtPmNvbmZpZzsKPiArCXBsbC0+ZnVuY3MuZGlzYWJs ZShkZXZfcHJpdiwgcGxsKTsKPiArCXBsbC0+Y29uZmlnLmNydGNfbWFzayA9IDA7Cj4gKwo+ICsJ LyogSWYgTGluayBUcmFpbmluZyBmYWlscywgc2VuZCBhIHVldmVudCB0byBnZW5lcmF0ZSBhCj4g aG90cGx1ZyAqLwo+ICsJaWYgKCFpbnRlbF9kZGlfbGlua190cmFpbihpbnRlbF9kcCwgbGlua19y YXRlLCBsYW5lX2NvdW50LAo+IGxpbmtfbXN0KSkKPiArCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVn X2V2ZW50KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXBsbC0+Y29uZmlnID0gdG1wX3BsbF9jb25m aWc7Cj4gK30KPiArCj4gwqBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9oZG1pKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IMKgCQkJCcKgwqDCoMKgwqDCoGJvb2wgaGFz X2hkbWlfc2luaywKPiDCoAkJCQnCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZQo+ ICphZGp1c3RlZF9tb2RlLAo+IEBAIC0xNjkzLDIwICsxNzE0LDI2IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdAo+IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIs Cj4gwqAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNy dGMpOwo+IMKgCWludCB0eXBlID0gaW50ZWxfZW5jb2Rlci0+dHlwZTsKPiDCoAo+IC0JaWYgKHR5 cGUgPT0gSU5URUxfT1VUUFVUX0RQIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ICsJ aWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKPiArCQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9l ZHAoaW50ZWxfZW5jb2RlciwKPiArCQkJCQljcnRjLT5jb25maWctPnBvcnRfY2xvY2ssCj4gKwkJ CQkJY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50LAo+ICsJCQkJCWNydGMtPmNvbmZpZy0+c2hhcmVk X2RwbGwpOwo+ICsKPiArCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9EUCkKPiDCoAkJaW50ZWxf ZGRpX3ByZV9lbmFibGVfZHAoaW50ZWxfZW5jb2RlciwKPiDCoAkJCQkJY3J0Yy0+Y29uZmlnLT5w b3J0X2Nsb2NrLAo+IMKgCQkJCQljcnRjLT5jb25maWctPmxhbmVfY291bnQsCj4gwqAJCQkJCWNy dGMtPmNvbmZpZy0+c2hhcmVkX2RwbGwsCj4gwqAJCQkJCWludGVsX2NydGNfaGFzX3R5cGUoY3J0 Yy0KPiA+Y29uZmlnLAo+IMKgCQkJCQkJCcKgwqDCoMKgSU5URUxfT1UKPiBUUFVUX0RQX01TVCkp Owo+IC0JfQo+IC0JaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpIHsKPiArCj4gKwlpZiAo dHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkKPiDCoAkJaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRt aShpbnRlbF9lbmNvZGVyLAo+IMKgCQkJCQnCoMKgY3J0Yy0+Y29uZmlnLQo+ID5oYXNfaGRtaV9z aW5rLAo+IMKgCQkJCQnCoMKgJmNydGMtPmNvbmZpZy0KPiA+YmFzZS5hZGp1c3RlZF9tb2RlLAo+ IMKgCQkJCQnCoMKgY3J0Yy0+Y29uZmlnLQo+ID5zaGFyZWRfZHBsbCk7Cj4gLQl9Cj4gKwo+IMKg fQo+IMKgCj4gwqBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyCj4gKmludGVsX2VuY29kZXIsCj4gQEAgLTI0MzUsNiArMjQ2Miw3MCBAQCBpbnRl bF9kZGlfZ2V0X2xpbmtfZHBsbChzdHJ1Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHAsIGludCBjbG9j aykKPiDCoAlyZXR1cm4gcGxsOwo+IMKgfQo+IMKgCj4gK2Jvb2wKPiAraW50ZWxfZGRpX2xpbmtf dHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1heF9saW5rX3JhdGUsCj4gKwkJ wqDCoMKgwqDCoHVpbnQ4X3QgbWF4X2xhbmVfY291bnQsIGJvb2wgbGlua19tc3QpCj4gK3sKPiAr CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2RwLQo+ID5hdHRhY2hl ZF9jb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rv ci0+ZW5jb2RlcjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0KPiA+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpw bGw7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ ICsJaW50IGxpbmtfcmF0ZSwgbWF4X2xpbmtfcmF0ZV9pbmRleCwgbGlua19yYXRlX2luZGV4Owo+ ICsJdWludDhfdCBsYW5lX2NvdW50Owo+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9S VEVEX1JBVEVTXSA9IHt9Owo+ICsJYm9vbCByZXQgPSBmYWxzZTsKPiArCj4gKwltYXhfbGlua19y YXRlX2luZGV4ID0gaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KGludGVsX2RwLAo+IGNvbW1vbl9y YXRlcywKPiArCQkJCQkJwqDCoMKgbWF4X2xpbmtfcmF0ZSk7CkkgZGlkbid0IHNwb3QgdGhpcyBs YXN0IHJvdW5kIGJ1dCB0aGUgaW5kZW50YXRpb24gaXMgYSBiaXQgb2ZmIGhlcmUuCgo+ICsJaWYg KG1heF9saW5rX3JhdGVfaW5kZXggPCAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIExpbmsg UmF0ZVxuIik7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQpNYXliZSBvbmUgZW1wdHkgbGluZSBo ZXJlCgo+ICsJZm9yIChsYW5lX2NvdW50ID0gbWF4X2xhbmVfY291bnQ7IGxhbmVfY291bnQgPiAw OyBsYW5lX2NvdW50Cj4gPj49IDEpIHsKPiArCQlmb3IgKGxpbmtfcmF0ZV9pbmRleCA9IG1heF9s aW5rX3JhdGVfaW5kZXg7Cj4gKwkJwqDCoMKgwqDCoGxpbmtfcmF0ZV9pbmRleCA+PSAwOyBsaW5r X3JhdGVfaW5kZXgtLSkgewo+ICsJCQlsaW5rX3JhdGUgPSBjb21tb25fcmF0ZXNbbGlua19yYXRl X2luZGV4XTsKPiArCQkJcGxsID0gaW50ZWxfZGRpX2dldF9saW5rX2RwbGwoaW50ZWxfZHAsCj4g bGlua19yYXRlKTsKPiArCQkJaWYgKHBsbCA9PSBOVUxMKSB7Cj4gKwkJCQlEUk1fRVJST1IoIkNv dWxkIG5vdCBmaW5kIERQTEwgZm9yCj4gbGluayB0cmFpbmluZy5cbiIpOwo+ICsJCQkJcmV0dXJu IGZhbHNlOwo+ICsJCQl9Cj4gKwkJCXRtcF9wbGxfY29uZmlnID0gcGxsLT5jb25maWc7Cj4gKwkJ CXBsbC0+ZnVuY3MuZW5hYmxlKGRldl9wcml2LCBwbGwpOwo+ICsKPiArCQkJaW50ZWxfZHBfc2V0 X2xpbmtfcGFyYW1zKGludGVsX2RwLAo+IGxpbmtfcmF0ZSwKPiArCQkJCQkJwqBsYW5lX2NvdW50 LAo+IGxpbmtfbXN0KTsKPiArCj4gKwkJCWludGVsX2RkaV9jbGtfc2VsZWN0KGVuY29kZXIsIHBs bCk7Cj4gKwkJCWludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7Cj4gKwkJCWlu dGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoZW5jb2Rlcik7Cj4gKwkJCWludGVsX2RwX3NpbmtfZHBt cyhpbnRlbF9kcCwKPiBEUk1fTU9ERV9EUE1TX09OKTsKPiArCQkJcmV0ID0gaW50ZWxfZHBfc3Rh cnRfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlicmVhazsKPiAr Cj4gKwkJCS8qIERpc2FibGUgcG9ydCBmb2xsb3dlZCBieSBQTEwgZm9yIG5leHQKPiArCQkJwqAq cmV0cnkvY2xlYW4gdXAKPiArCQkJwqAqLwo+ICsJCQlpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKGVu Y29kZXIsIE5VTEwsIE5VTEwpOwo+ICsJCQlwbGwtPmZ1bmNzLmRpc2FibGUoZGV2X3ByaXYsIHBs bCk7Cj4gKwkJCXBsbC0+Y29uZmlnID0gdG1wX3BsbF9jb25maWc7Cj4gKwkJfQo+ICsJCWlmIChy ZXQpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiTGluayBUcmFpbmluZyBzdWNjZXNzZnVsIGF0Cj4g bGluayByYXRlOiAlZCBsYW5lOiAlZFxuIiwKPiArCQkJCcKgwqDCoMKgwqDCoGxpbmtfcmF0ZSwg bGFuZV9jb3VudCk7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KTWF5YmUgb25lIGVtcHR5IGxp bmUgaGVyZSB0b28uCgo+ICsJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiAr Cj4gKwlpZiAoIWxhbmVfY291bnQpCj4gKwkJRFJNX0VSUk9SKCJMaW5rIFRyYWluaW5nIEZhaWxl ZFxuIik7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiDCoHZvaWQgaW50ZWxfZGRpX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBvcnQpCj4gwqB7Cj4gwqAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggNjljZWU5Yi4uZDgxYzY3Y2IgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiBAQCAtMTUwNiw2ICsxNTA2LDIxIEBAIGludGVsX2RwX21heF9saW5r X3JhdGUoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwKQo+IMKgCXJldHVybiByYXRlc1tsZW4g LSAxXTsKPiDCoH0KPiDCoAo+ICtpbnQgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsIGludAo+ICpjb21tb25fcmF0ZXMsCj4gKwkJCcKgwqDCoMKgwqBp bnQgbGlua19yYXRlKQo+ICt7Cj4gKwlpbnQgY29tbW9uX2xlbjsKPiArCWludCBpbmRleDsKPiAr Cj4gKwljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCBjb21tb25f cmF0ZXMpOwo+ICsJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY29tbW9uX2xlbjsgaW5kZXgrKykg ewo+ICsJCWlmIChsaW5rX3JhdGUgPT0gY29tbW9uX3JhdGVzW2NvbW1vbl9sZW4gLSBpbmRleCAt Cj4gMV0pCj4gKwkJCXJldHVybiBjb21tb25fbGVuIC0gaW5kZXggLSAxOwo+ICsJfQo+ICsKPiAr CXJldHVybiAtMTsKPiArfQo+ICsKPiDCoGludCBpbnRlbF9kcF9yYXRlX3NlbGVjdChzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBpbnQgcmF0ZSkKPiDCoHsKPiDCoAlyZXR1cm4gcmF0ZV90b19p bmRleChyYXRlLCBpbnRlbF9kcC0+c2lua19yYXRlcyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4gaW5kZXggYzQzOGIwMi4uZjFlMDhmMCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5n LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMK PiBAQCAtMzEzLDkgKzMxMywxNSBAQCB2b2lkIGludGVsX2RwX3N0b3BfbGlua190cmFpbihzdHJ1 Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHApCj4gwqAJCQkJRFBfVFJBSU5JTkdfUEFUVEVSTl9ESVNB QkxFKTsKPiDCoH0KPiDCoAo+IC12b2lkCj4gK2Jvb2wKPiDCoGludGVsX2RwX3N0YXJ0X2xpbmtf dHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiDCoHsKPiAtCWludGVsX2RwX2xpbmtf dHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+IC0JaW50ZWxfZHBfbGlua190cmFp bmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7Cj4gKwlib29sIHJldDsKPiArCj4g KwlpZiAoaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCkpIHsK PiArCQlyZXQgPQo+IGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5lbF9lcXVhbGl6YXRpb24o aW50ZWxfZHApOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiB0cnVlOwo+ICsJfQpBbmQgbWF5 YmUgb25lIGVtcHR5IGxpbmUgaGVyZSB0b28KPiArCXJldHVybiBmYWxzZTsKPiDCoH0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggOGZkMTZhZC4uMDhjYjU3MSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTExNjQsNiArMTE2NCw4IEBAIHZvaWQgaW50ZWxf ZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ICplbmNvZGVyLAo+IMKgCQkJwqBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+IMKgdm9pZCBpbnRlbF9kZGlf c2V0X3ZjX3BheWxvYWRfYWxsb2Moc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sCj4gc3RhdGUp Owo+IMKgdWludDMyX3QgZGRpX3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCk7Cj4gK2Jvb2wgaW50ZWxfZGRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgaW50Cj4gbWF4X2xpbmtfcmF0ZSwKPiArCQkJwqDCoHVpbnQ4X3QgbWF4X2xhbmVfY291bnQs IGJvb2wgbGlua19tc3QpOwo+IMKgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICppbnRlbF9kZGlf Z2V0X2xpbmtfZHBsbChzdHJ1Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHAsCj4gwqAJCQkJCQnCoMKg aW50IGNsb2NrKTsKPiDCoHVuc2lnbmVkIGludCBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiBAQCAtMTM4NSw3ICsxMzg3LDcgQEAgYm9vbCBpbnRlbF9kcF9p bml0X2Nvbm5lY3RvcihzdHJ1Y3QKPiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 LAo+IMKgdm9pZCBpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKPiDCoAkJCcKgwqDCoMKgwqDCoGludCBsaW5rX3JhdGUsIHVpbnQ4X3QgbGFuZV9jb3Vu dCwKPiDCoAkJCcKgwqDCoMKgwqDCoGJvb2wgbGlua19tc3QpOwo+IC12b2lkIGludGVsX2RwX3N0 YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gK2Jvb2wgaW50ZWxf ZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiDCoHZvaWQg aW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+IMKg dm9pZCBpbnRlbF9kcF9zaW5rX2RwbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1v ZGUpOwo+IMKgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2Rlcik7Cj4gQEAgLTE0MDcsNiArMTQwOSw4IEBAIHZvaWQgaW50ZWxfZHBfYWRkX3Byb3Bl cnRpZXMoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y28KPiDCoHZvaWQgaW50ZWxfZHBfbXN0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gwqB2b2lkIGludGVsX2RwX21zdF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g wqBpbnQgaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsK PiAraW50IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LCBpbnQKPiAqY29tbW9uX3JhdGVzLAo+ICsJCQnCoMKgwqDCoMKgaW50IGxpbmtfcmF0ZSk7Cj4g wqBpbnQgaW50ZWxfZHBfcmF0ZV9zZWxlY3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50 IHJhdGUpOwo+IMKgdm9pZCBpbnRlbF9kcF9ob3RfcGx1ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2Rlcik7Cj4gwqB2b2lkIGludGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotLSAKTWlrYSBLYWhvbGEgLSBJbnRlbCBP VEMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=