From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v4 11/14] drm/i915: Fallback to lower link rate and lane count during link training Date: Fri, 9 Sep 2016 10:13:41 -0700 Message-ID: <20160909171341.GA8297@intel.com> References: <1473272883-28520-3-git-send-email-manasi.d.navare@intel.com> <1473294615-27061-1-git-send-email-manasi.d.navare@intel.com> <87poodv985.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id B351D6E94F for ; Fri, 9 Sep 2016 17:13:36 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87poodv985.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBTZXAgMDksIDIwMTYgYXQgMTA6MTE6MDZBTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVGh1LCAwOCBTZXAgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJl QGludGVsLmNvbT4gd3JvdGU6Cj4gPiBBY2NvcmRpbmcgdG8gdGhlIERpc3BsYXlQb3J0IFNwZWMs IGluIGNhc2Ugb2YgQ2xvY2sgUmVjb3ZlcnkgZmFpbHVyZQo+ID4gdGhlIGxpbmsgdHJhaW5pbmcg c2VxdWVuY2Ugc2hvdWxkIGZhbGwgYmFjayB0byB0aGUgbG93ZXIgbGluayByYXRlCj4gPiBmb2xs b3dlZCBieSBsb3dlciBsYW5lIGNvdW50IHVudGlsIENSIHN1Y2NlZWRzLgo+ID4gT24gQ1Igc3Vj Y2VzcywgdGhlIHNlcXVlbmNlIHByb2NlZWRzIHdpdGggQ2hhbm5lbCBFUS4KPiA+IEluIGNhc2Ug b2YgQ2hhbm5lbCBFUSBmYWlsdXJlcywgaXQgc2hvdWxkIGZhbGxiYWNrIHRvCj4gPiBsb3dlciBs aW5rIHJhdGUgYW5kIGxhbmUgY291bnQgYW5kIHN0YXJ0IHRoZSBDUiBwaGFzZSBhZ2Fpbi4KPiA+ Cj4gPiB2NDoKPiA+ICogRml4ZWQgdGhlIGxpbmsgcmF0ZSBmYWxsYmFjayBsb29wIChNYW5hc2kg TmF2YXJlKQo+ID4gdjM6Cj4gPiAqIEZpeGVkIHNvbWUgcmViYXNlIGlzc3VlcyAoTWlrYSBLYWhv bGEpCj4gPiB2MjoKPiA+ICogQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVybiBpbmRleCBv ZiByZXF1ZXN0ZWQgbGluayByYXRlCj4gPiBpbnRvIGNvbW1vbl9yYXRlcyBhcnJheQo+ID4gKiBD aGFuZ2VkIHRoZSBsaW5rIHJhdGUgZmFsbGJhY2sgbG9vcCB0byBtYWtlIHVzZQo+ID4gb2YgY29t bW9uX3JhdGVzIGFycmF5IChNaWthIEthaG9sYSkKPiA+ICogQ2hhbmdlZCBJTlRFTF9JTkZPIHRv IElOVEVMX0dFTiAoRGF2aWQgV2VpbmVoYWxsKQo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFz aSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgICAgICAgfCAxMDkgKysrKysrKysrKysr KysrKysrKysrKystLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAg ICAgICAgICAgfCAgMTUgKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xp bmtfdHJhaW5pbmcuYyB8ICAxMiArKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgICAgICAgICAgfCAgIDYgKy0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNl cnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku Ywo+ID4gaW5kZXggMjVlNzk3My4uMTI3OGRhYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+ID4gQEAgLTE2MzQsMTkgKzE2MzQsMTggQEAgdm9pZCBpbnRlbF9kZGlfY2xrX3Nl bGVjdChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJfQo+ID4gIH0KPiA+ICAK PiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9lZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJCSAgICBpbnQgbGlua19yYXRl LCB1aW50MzJfdCBsYW5lX2NvdW50LAo+ID4gLQkJCQkgICAgc3RydWN0IGludGVsX3NoYXJlZF9k cGxsICpwbGwsCj4gPiAtCQkJCSAgICBib29sIGxpbmtfbXN0KQo+ID4gKwkJCQkgICAgc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiA+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4g PiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7 Cj4gPiAgCj4gPiAgCWludGVsX2RwX3NldF9saW5rX3BhcmFtcyhpbnRlbF9kcCwgbGlua19yYXRl LCBsYW5lX2NvdW50LAo+ID4gLQkJCQkgbGlua19tc3QpOwo+ID4gLQlpZiAoZW5jb2Rlci0+dHlw ZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+ID4gLQkJaW50ZWxfZWRwX3BhbmVsX29uKGludGVsX2Rw KTsKPiA+ICsJCQkJIGZhbHNlKTsKPiA+ICsKPiA+ICsJaW50ZWxfZWRwX3BhbmVsX29uKGludGVs X2RwKTsKPiA+ICAKPiA+ICAJaW50ZWxfZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiA+ ICAJaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhlbmNvZGVyKTsKPiA+IEBAIC0xNjU3LDYg KzE2NTYsMjggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50 ZWxfZHApOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJs ZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCQkJICAgIGludCBsaW5r X3JhdGUsIHVpbnQzMl90IGxhbmVfY291bnQsCj4gPiArCQkJCSAgICBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKnBsbCwKPiA+ICsJCQkJICAgIGJvb2wgbGlua19tc3QpCj4gPiArewo+ID4gKwlz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNl KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Cj4gPiArCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgdG1w X3BsbF9jb25maWc7Cj4gPiArCj4gPiArCS8qIERpc2FibGUgdGhlIFBMTCBhbmQgb2J0YWluIHRo ZSBQTEwgZm9yIExpbmsgVHJhaW5pbmcKPiA+ICsJICogdGhhdCBzdGFydHMgd2l0aCBoaWdoZXN0 IGxpbmsgcmF0ZSBhbmQgbGFuZSBjb3VudC4KPiA+ICsJICovCj4gPiArCXRtcF9wbGxfY29uZmln ID0gcGxsLT5jb25maWc7Cj4gPiArCXBsbC0+ZnVuY3MuZGlzYWJsZShkZXZfcHJpdiwgcGxsKTsK PiA+ICsJcGxsLT5jb25maWcuY3J0Y19tYXNrID0gMDsKPiA+ICsKPiA+ICsJLyogSWYgTGluayBU cmFpbmluZyBmYWlscywgc2VuZCBhIHVldmVudCB0byBnZW5lcmF0ZSBhIGhvdHBsdWcgKi8KPiA+ ICsJaWYgKCEoaW50ZWxfZGRpX2xpbmtfdHJhaW4oaW50ZWxfZHAsIGxpbmtfcmF0ZSwgbGFuZV9j b3VudCwgbGlua19tc3QpKSkKPiAKPiBSZWR1bmRhbnQgcGFyZW5zLgo+IAo+ID4gKwkJZHJtX2tt c19oZWxwZXJfaG90cGx1Z19ldmVudChlbmNvZGVyLT5iYXNlLmRldik7Cj4gPiArCXBsbC0+Y29u ZmlnID0gdG1wX3BsbF9jb25maWc7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkIGludGVs X2RkaV9wcmVfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAg CQkJCSAgICAgIGJvb2wgaGFzX2hkbWlfc2luaywKPiA+ICAJCQkJICAgICAgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsCj4gPiBAQCAtMTY5MCwyMCArMTcxMSwyNiBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlciwKPiA+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGVuY29kZXItPmNydGMpOwo+ID4gIAlpbnQgdHlwZSA9IGludGVsX2VuY29kZXItPnR5cGU7Cj4g PiAgCj4gPiAtCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9EUCB8fCB0eXBlID09IElOVEVMX09V VFBVVF9FRFApIHsKPiA+ICsJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+ICsJCWlu dGVsX2RkaV9wcmVfZW5hYmxlX2VkcChpbnRlbF9lbmNvZGVyLAo+ID4gKwkJCQkJY3J0Yy0+Y29u ZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkJY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50LAo+ID4g KwkJCQkJY3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBsbCk7Cj4gPiArCj4gPiArCWlmICh0eXBlID09 IElOVEVMX09VVFBVVF9EUCkKPiA+ICAJCWludGVsX2RkaV9wcmVfZW5hYmxlX2RwKGludGVsX2Vu Y29kZXIsCj4gPiAgCQkJCQljcnRjLT5jb25maWctPnBvcnRfY2xvY2ssCj4gPiAgCQkJCQljcnRj LT5jb25maWctPmxhbmVfY291bnQsCj4gPiAgCQkJCQljcnRjLT5jb25maWctPnNoYXJlZF9kcGxs LAo+ID4gIAkJCQkJaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjLT5jb25maWcsCj4gPiAgCQkJCQkJ CSAgICBJTlRFTF9PVVRQVVRfRFBfTVNUKSk7Cj4gPiAtCX0KPiA+IC0JaWYgKHR5cGUgPT0gSU5U RUxfT1VUUFVUX0hETUkpIHsKPiA+ICsKPiA+ICsJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hE TUkpCj4gPiAgCQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9oZG1pKGludGVsX2VuY29kZXIsCj4gPiAg CQkJCQkgIGNydGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaywKPiA+ICAJCQkJCSAgJmNydGMtPmNv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLAo+ID4gIAkJCQkJICBjcnRjLT5jb25maWctPnNoYXJl ZF9kcGxsKTsKPiA+IC0JfQo+ID4gKwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBpbnRl bF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ ID4gQEAgLTI0MzIsNiArMjQ1OSw2OCBAQCBpbnRlbF9kZGlfZ2V0X2xpbmtfZHBsbChzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBpbnQgY2xvY2spCj4gPiAgCXJldHVybiBwbGw7Cj4gPiAgfQo+ ID4gIAo+ID4gK2Jvb2wKPiA+ICtpbnRlbF9kZGlfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLCBpbnQgbWF4X2xpbmtfcmF0ZSwKPiA+ICsJCSAgICAgdWludDhfdCBtYXhfbGFu ZV9jb3VudCwgYm9vbCBsaW5rX21zdCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gPiArCXN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+ID4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiA+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7Cj4gPiArCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbF9jb25maWcgdG1wX3BsbF9jb25maWc7Cj4gPiArCWludCBsaW5rX3JhdGUs IGxpbmtfcmF0ZV9pbmRleDsKPiA+ICsJdWludDhfdCBsYW5lX2NvdW50Owo+ID4gKwlpbnQgY29t bW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4gPiArCWJvb2wgcmV0ID0g ZmFsc2U7Cj4gPiArCj4gPiArCWxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9p bmRleChpbnRlbF9kcCwgY29tbW9uX3JhdGVzLAo+ID4gKwkJCQkJCSAgIG1heF9saW5rX3JhdGUp Owo+ID4gKwlpZiAobGlua19yYXRlX2luZGV4IDwgMCkgewo+ID4gKwkJRFJNX0VSUk9SKCJJbnZh bGlkIExpbmsgUmF0ZVxuIik7Cj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCX0KPiA+ICsJZm9y IChsYW5lX2NvdW50ID0gbWF4X2xhbmVfY291bnQ7IGxhbmVfY291bnQgPiAwOyBsYW5lX2NvdW50 ID4+PSAxKSB7Cj4gPiArCQlmb3IgKDsgbGlua19yYXRlX2luZGV4ID49IDA7IGxpbmtfcmF0ZV9p bmRleCAtLSkgewo+IAo+IE9uY2UgeW91J3ZlIHJlYWNoZWQgbGlua19yYXRlX2luZGV4IDwgMCBo ZXJlLCB5b3Ugd29uJ3QgdHJ5IGxvd2VyIGxhbmUKPiBjb3VudHMgYW55bW9yZSBhbmQgdGhlIG5l c3RlZCBsb29wIGlzIHVzZWxlc3MsIGkuZS4geW91IG5ldmVyIHJlc2V0Cj4gbGlua19yYXRlX2lu ZGV4IGJhY2suCj4KClRoYW5rcyBmb3IgdGhlIHJldmlldyBjb21tZW50cy4KWWVzIHRoaXMgcmVz ZXRpbmcgb2YgbGluayByYXRlIGluZGV4IGdvdCBsb3N0IHdoZW4gdGhlIGxvZ2ljIHdhcyBjaGFu Z2VkIHRvIHVzZQpjb21tb24gcmF0ZXMuIEkgd2lsbCBtYWtlIHRoZSBuZWNlc3NhcnkgY2hhbmdl cy4gIAoKCj4gPiArCQkJbGlua19yYXRlID0gY29tbW9uX3JhdGVzW2xpbmtfcmF0ZV9pbmRleF07 Cj4gPiArCQkJcGxsID0gaW50ZWxfZGRpX2dldF9saW5rX2RwbGwoaW50ZWxfZHAsIGxpbmtfcmF0 ZSk7Cj4gPiArCQkJaWYgKHBsbCA9PSBOVUxMKSB7Cj4gPiArCQkJCURSTV9FUlJPUigiQ291bGQg bm90IGZpbmQgRFBMTCBmb3IgbGluayAiCj4gPiArCQkJCQkgICJ0cmFpbmluZy5cbiIpOwo+ID4g KwkJCQlyZXR1cm4gZmFsc2U7Cj4gPiArCQkJfQo+ID4gKwkJCXRtcF9wbGxfY29uZmlnID0gcGxs LT5jb25maWc7Cj4gPiArCQkJcGxsLT5mdW5jcy5lbmFibGUoZGV2X3ByaXYsIHBsbCk7Cj4gPiAr Cj4gPiArCQkJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBsaW5rX3JhdGUsCj4g PiArCQkJCQkJIGxhbmVfY291bnQsIGxpbmtfbXN0KTsKPiA+ICsKPiA+ICsJCQlpbnRlbF9kZGlf Y2xrX3NlbGVjdChlbmNvZGVyLCBwbGwpOwo+ID4gKwkJCWludGVsX3ByZXBhcmVfZHBfZGRpX2J1 ZmZlcnMoZW5jb2Rlcik7Cj4gPiArCQkJaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhlbmNvZGVy KTsKPiA+ICsJCQlpbnRlbF9kcF9zaW5rX2RwbXMoaW50ZWxfZHAsIERSTV9NT0RFX0RQTVNfT04p Owo+ID4gKwkJCXJldCA9IGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ID4g KwkJCWlmIChyZXQpCj4gPiArCQkJCWJyZWFrOwo+ID4gKwo+ID4gKwkJCS8qIERpc2FibGUgcG9y dCBmb2xsb3dlZCBieSBQTEwgZm9yIG5leHQgcmV0cnkvY2xlYW4gdXAgKi8KPiA+ICsJCQlpbnRl bF9kZGlfcG9zdF9kaXNhYmxlKGVuY29kZXIsIE5VTEwsIE5VTEwpOwo+ID4gKwkJCXBsbC0+ZnVu Y3MuZGlzYWJsZShkZXZfcHJpdiwgcGxsKTsKPiA+ICsJCQlwbGwtPmNvbmZpZyA9IHRtcF9wbGxf Y29uZmlnOwo+ID4gKwkJfQo+ID4gKwkJaWYgKHJldCkgewo+ID4gKwkJCURSTV9ERUJVR19LTVMo IkxpbmsgVHJhaW5pbmcgc3VjY2Vzc2Z1bCBhdCBsaW5rIHJhdGU6ICIKPiA+ICsJCQkJICAgICAg IiVkIGxhbmU6JWRcbiIsIGxpbmtfcmF0ZSwgbGFuZV9jb3VudCk7Cj4gPiArCQkJYnJlYWs7Cj4g PiArCQl9Cj4gPiArCX0KPiA+ICsJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsK PiA+ICsKPiA+ICsJaWYgKCFsYW5lX2NvdW50KQo+ID4gKwkJRFJNX0VSUk9SKCJMaW5rIFRyYWlu aW5nIEZhaWxlZFxuIik7Cj4gPiArCj4gPiArCXJldHVybiByZXQ7Cj4gPiArfQo+ID4gKwo+ID4g IHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBv cnQpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IDc1YWM2MmYuLjEz NzgxMTYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMTQ0Myw2ICsx NDQzLDIxIEBAIGludGVsX2RwX21heF9saW5rX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiA+ICAJcmV0dXJuIHJhdGVzW2xlbiAtIDFdOwo+ID4gIH0KPiA+ICAKPiA+ICtpbnQgaW50 ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCAqY29t bW9uX3JhdGVzLAo+ID4gKwkJCSAgICAgaW50IGxpbmtfcmF0ZSkKPiA+ICt7Cj4gPiArCWludCBj b21tb25fbGVuOwo+ID4gKwlpbnQgaW5kZXg7Cj4gPiArCj4gPiArCWNvbW1vbl9sZW4gPSBpbnRl bF9kcF9jb21tb25fcmF0ZXMoaW50ZWxfZHAsIGNvbW1vbl9yYXRlcyk7Cj4gPiArCWZvciAoaW5k ZXggPSBjb21tb25fbGVuIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkgewo+ID4gKwkJaWYgKGxp bmtfcmF0ZSA9PSBjb21tb25fcmF0ZXNbaW5kZXhdKQo+ID4gKwkJCXJldHVybiBpbmRleDsKPiA+ ICsJfQo+IAo+IEkgdGhpbmsgaXQncyBhbHdheXMgZWFzaWVyIHRvIGhhdmUgdGhlIHBhcmFkaWdt IGZvciBsb29wLCBhbmQgZG8gdGhlCj4gbWF0aCB1c2luZyB0aGUgbGVuZ3RoIGFuZCBpbmRleCwg bGlrZSB0aGlzOgo+IAo+IAljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVs X2RwLCBjb21tb25fcmF0ZXMpOwo+ICAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbW1vbl9sZW47 IGkrKykKPiAgICAgICAgIAlpZiAobGlua19yYXRlID09IGNvbW1vbl9yYXRlc1tjb21tb25fbGVu IC0gaSAtIDFdKQo+ICAgICAgICAgICAgICAgICAJcmV0dXJuIGk7Cj4KCk9rIGFncmVlZCBJIHdp bGwgY2hhbmdlIHRoZSBsb29wIHRvIGp1c3QgY29tbW9uX2xlbiBhbmQgZG8gbWF0aCB1c2luZyBp bmRleCBhbmQgbGVuZ3RoLgpCdXQgd2UgbmVlZCB0byBzdGFydCBjb21wYXJpbmcgZnJvbSB0aGUg aGlnaGVzdCBpbmRleCBzaW5jZSB3ZSB3aWxsIGJlIHN0YXJ0aW5nIHRoZSAKbGluayB0cmFpbmlu ZyBhdCBoaWdoZXN0IGxpbmsgcmF0ZSBzbyBsZXNzZXIgaXRlcmF0aW9ucyBpZiB3ZSBzdGFydCBj b21wYXJpbmcgZnJvbQp0aGUgaGlnaGVzdCBpbmRleC4KCk1hbmFzaQogCj4gPiArCj4gPiArCXJl dHVybiAtMTsKPiA+ICt9Cj4gPiArCj4gPiAgaW50IGludGVsX2RwX3JhdGVfc2VsZWN0KHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCByYXRlKQo+ID4gIHsKPiA+ICAJcmV0dXJuIHJhdGVf dG9faW5kZXgocmF0ZSwgaW50ZWxfZHAtPnNpbmtfcmF0ZXMpOwo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+ID4gaW5kZXggYzQzOGIwMi4uZjFl MDhmMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtf dHJhaW5pbmcuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190 cmFpbmluZy5jCj4gPiBAQCAtMzEzLDkgKzMxMywxNSBAQCB2b2lkIGludGVsX2RwX3N0b3BfbGlu a190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAkJCQlEUF9UUkFJTklOR19Q QVRURVJOX0RJU0FCTEUpOwo+ID4gIH0KPiA+ICAKPiA+IC12b2lkCj4gPiArYm9vbAo+ID4gIGlu dGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7 Cj4gPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+ ID4gLQlpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2Rw KTsKPiA+ICsJYm9vbCByZXQ7Cj4gPiArCj4gPiArCWlmIChpbnRlbF9kcF9saW5rX3RyYWluaW5n X2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKSkgewo+ID4gKwkJcmV0ID0gaW50ZWxfZHBfbGlua190 cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7Cj4gPiArCQlpZiAocmV0KQo+ ID4gKwkJCXJldHVybiB0cnVlOwo+ID4gKwl9Cj4gCj4gUHJlZmVyIGVhcmx5IHJldHVybnMgaW5z dGVhZCBvZiBhZGRpbmcgbW9yZSBpbmRlbnRhdGlvbi4KPiAKPiA+ICsJcmV0dXJuIGZhbHNlOwo+ ID4gIH0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCBjYTUxZTFhLi41Yjk3 YTdkNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTExNjAsNiAr MTE2MCw4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+ICAJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsK PiA+ICB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIGJvb2wgc3RhdGUpOwo+ID4gIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gK2Jvb2wgaW50ZWxfZGRpX2xpbmtfdHJhaW4oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1heF9saW5rX3JhdGUsCj4gPiArCQkJICB1aW50 OF90IG1heF9sYW5lX2NvdW50LCBib29sIGxpbmtfbXN0KTsKPiA+ICBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKmludGVsX2RkaV9nZXRfbGlua19kcGxsKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gPiAgCQkJCQkJICBpbnQgY2xvY2spOwo+ID4gIHVuc2lnbmVkIGludCBpbnRlbF9mYl9h bGlnbl9oZWlnaHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+IEBAIC0xMzgxLDcgKzEzODMs NyBAQCBib29sIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0LAo+ID4gIHZvaWQgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQkJICAgICAgaW50IGxpbmtfcmF0ZSwgdWlu dDhfdCBsYW5lX2NvdW50LAo+ID4gIAkJCSAgICAgIGJvb2wgbGlua19tc3QpOwo+ID4gLXZvaWQg aW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ ICtib29sIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCk7Cj4gPiAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCk7Cj4gPiAgdm9pZCBpbnRlbF9kcF9zaW5rX2RwbXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwgaW50IG1vZGUpOwo+ID4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9yZXNldChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gQEAgLTE0MDMsNiArMTQwNSw4IEBAIHZvaWQg aW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvCj4gPiAgdm9pZCBpbnRlbF9kcF9tc3Rfc3VzcGVuZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPiA+ICB2b2lkIGludGVsX2RwX21zdF9yZXN1bWUoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Cj4gPiAgaW50IGludGVsX2RwX21heF9saW5rX3JhdGUoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCk7Cj4gPiAraW50IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgKmNvbW1vbl9yYXRlcywKPiA+ICsJCQkgICAgIGlu dCBsaW5rX3JhdGUpOwo+ID4gIGludCBpbnRlbF9kcF9yYXRlX3NlbGVjdChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLCBpbnQgcmF0ZSk7Cj4gPiAgdm9pZCBpbnRlbF9kcF9ob3RfcGx1ZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rlcik7Cj4gPiAgdm9pZCBpbnRlbF9wb3dlcl9z ZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAKPiAt LSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==