From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v4 11/14] drm/i915: Fallback to lower link rate and lane count during link training Date: Fri, 09 Sep 2016 10:11:06 +0300 Message-ID: <87poodv985.fsf@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3112C6E6AF for ; Fri, 9 Sep 2016 07:11:09 +0000 (UTC) In-Reply-To: <1473294615-27061-1-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 T24gVGh1LCAwOCBTZXAgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4gd3JvdGU6Cj4gQWNjb3JkaW5nIHRvIHRoZSBEaXNwbGF5UG9ydCBTcGVjLCBpbiBjYXNl IG9mIENsb2NrIFJlY292ZXJ5IGZhaWx1cmUKPiB0aGUgbGluayB0cmFpbmluZyBzZXF1ZW5jZSBz aG91bGQgZmFsbCBiYWNrIHRvIHRoZSBsb3dlciBsaW5rIHJhdGUKPiBmb2xsb3dlZCBieSBsb3dl ciBsYW5lIGNvdW50IHVudGlsIENSIHN1Y2NlZWRzLgo+IE9uIENSIHN1Y2Nlc3MsIHRoZSBzZXF1 ZW5jZSBwcm9jZWVkcyB3aXRoIENoYW5uZWwgRVEuCj4gSW4gY2FzZSBvZiBDaGFubmVsIEVRIGZh aWx1cmVzLCBpdCBzaG91bGQgZmFsbGJhY2sgdG8KPiBsb3dlciBsaW5rIHJhdGUgYW5kIGxhbmUg Y291bnQgYW5kIHN0YXJ0IHRoZSBDUiBwaGFzZSBhZ2Fpbi4KPgo+IHY0Ogo+ICogRml4ZWQgdGhl IGxpbmsgcmF0ZSBmYWxsYmFjayBsb29wIChNYW5hc2kgTmF2YXJlKQo+IHYzOgo+ICogRml4ZWQg c29tZSByZWJhc2UgaXNzdWVzIChNaWthIEthaG9sYSkKPiB2MjoKPiAqIEFkZCBhIGhlbHBlciBm dW5jdGlvbiB0byByZXR1cm4gaW5kZXggb2YgcmVxdWVzdGVkIGxpbmsgcmF0ZQo+IGludG8gY29t bW9uX3JhdGVzIGFycmF5Cj4gKiBDaGFuZ2VkIHRoZSBsaW5rIHJhdGUgZmFsbGJhY2sgbG9vcCB0 byBtYWtlIHVzZQo+IG9mIGNvbW1vbl9yYXRlcyBhcnJheSAoTWlrYSBLYWhvbGEpCj4gKiBDaGFu Z2VkIElOVEVMX0lORk8gdG8gSU5URUxfR0VOIChEYXZpZCBXZWluZWhhbGwpCj4KPiBTaWduZWQt b2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgICAgICAgfCAxMDkgKysr KysrKysrKysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyAgICAgICAgICAgICAgIHwgIDE1ICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfbGlua190cmFpbmluZy5jIHwgIDEyICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgICAgICAgICAgfCAgIDYgKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMjggaW5z ZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ IGluZGV4IDI1ZTc5NzMuLjEyNzhkYWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ IEBAIC0xNjM0LDE5ICsxNjM0LDE4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGlu dGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICtz dGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9lZHAoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gIAkJCQkgICAgaW50IGxpbmtfcmF0ZSwgdWludDMyX3QgbGFuZV9jb3VudCwK PiAtCQkJCSAgICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiAtCQkJCSAgICBib29s IGxpbmtfbXN0KQo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+ICB7 Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVy LT5iYXNlKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2Vu Y29kZXJfcG9ydChlbmNvZGVyKTsKPiAgCj4gIAlpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50 ZWxfZHAsIGxpbmtfcmF0ZSwgbGFuZV9jb3VudCwKPiAtCQkJCSBsaW5rX21zdCk7Cj4gLQlpZiAo ZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+IC0JCWludGVsX2VkcF9wYW5lbF9v bihpbnRlbF9kcCk7Cj4gKwkJCQkgZmFsc2UpOwo+ICsKPiArCWludGVsX2VkcF9wYW5lbF9vbihp bnRlbF9kcCk7Cj4gIAo+ICAJaW50ZWxfZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiAg CWludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7Cj4gQEAgLTE2NTcsNiArMTY1 NiwyOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHAp Owo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgICBpbnQgbGlua19yYXRlLCB1aW50MzJf dCBsYW5lX2NvdW50LAo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAo+ ICsJCQkJICAgIGJvb2wgbGlua19tc3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwlzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ICsKPiArCS8qIERp c2FibGUgdGhlIFBMTCBhbmQgb2J0YWluIHRoZSBQTEwgZm9yIExpbmsgVHJhaW5pbmcKPiArCSAq IHRoYXQgc3RhcnRzIHdpdGggaGlnaGVzdCBsaW5rIHJhdGUgYW5kIGxhbmUgY291bnQuCj4gKwkg Ki8KPiArCXRtcF9wbGxfY29uZmlnID0gcGxsLT5jb25maWc7Cj4gKwlwbGwtPmZ1bmNzLmRpc2Fi bGUoZGV2X3ByaXYsIHBsbCk7Cj4gKwlwbGwtPmNvbmZpZy5jcnRjX21hc2sgPSAwOwo+ICsKPiAr CS8qIElmIExpbmsgVHJhaW5pbmcgZmFpbHMsIHNlbmQgYSB1ZXZlbnQgdG8gZ2VuZXJhdGUgYSBo b3RwbHVnICovCj4gKwlpZiAoIShpbnRlbF9kZGlfbGlua190cmFpbihpbnRlbF9kcCwgbGlua19y YXRlLCBsYW5lX2NvdW50LCBsaW5rX21zdCkpKQoKUmVkdW5kYW50IHBhcmVucy4KCj4gKwkJZHJt X2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwlwbGwtPmNv bmZpZyA9IHRtcF9wbGxfY29uZmlnOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlf cHJlX2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAg ICAgYm9vbCBoYXNfaGRtaV9zaW5rLAo+ICAJCQkJICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUsCj4gQEAgLTE2OTAsMjAgKzE3MTEsMjYgQEAgc3RhdGljIHZvaWQg aW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIs Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0 Yyk7Cj4gIAlpbnQgdHlwZSA9IGludGVsX2VuY29kZXItPnR5cGU7Cj4gIAo+IC0JaWYgKHR5cGUg PT0gSU5URUxfT1VUUFVUX0RQIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ICsJaWYg KHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKPiArCQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9lZHAo aW50ZWxfZW5jb2RlciwKPiArCQkJCQljcnRjLT5jb25maWctPnBvcnRfY2xvY2ssCj4gKwkJCQkJ Y3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50LAo+ICsJCQkJCWNydGMtPmNvbmZpZy0+c2hhcmVkX2Rw bGwpOwo+ICsKPiArCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9EUCkKPiAgCQlpbnRlbF9kZGlf cHJlX2VuYWJsZV9kcChpbnRlbF9lbmNvZGVyLAo+ICAJCQkJCWNydGMtPmNvbmZpZy0+cG9ydF9j bG9jaywKPiAgCQkJCQljcnRjLT5jb25maWctPmxhbmVfY291bnQsCj4gIAkJCQkJY3J0Yy0+Y29u ZmlnLT5zaGFyZWRfZHBsbCwKPiAgCQkJCQlpbnRlbF9jcnRjX2hhc190eXBlKGNydGMtPmNvbmZp ZywKPiAgCQkJCQkJCSAgICBJTlRFTF9PVVRQVVRfRFBfTVNUKSk7Cj4gLQl9Cj4gLQlpZiAodHlw ZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ICsKPiArCWlmICh0eXBlID09IElOVEVMX09VVFBV VF9IRE1JKQo+ICAJCWludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoaW50ZWxfZW5jb2RlciwKPiAg CQkJCQkgIGNydGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaywKPiAgCQkJCQkgICZjcnRjLT5jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZSwKPiAgCQkJCQkgIGNydGMtPmNvbmZpZy0+c2hhcmVkX2Rw bGwpOwo+IC0JfQo+ICsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiBAQCAtMjQzMiw2ICsy NDU5LDY4IEBAIGludGVsX2RkaV9nZXRfbGlua19kcGxsKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIGludCBjbG9jaykKPiAgCXJldHVybiBwbGw7Cj4gIH0KPiAgCj4gK2Jvb2wKPiAraW50ZWxf ZGRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1heF9saW5rX3Jh dGUsCj4gKwkJICAgICB1aW50OF90IG1heF9sYW5lX2NvdW50LCBib29sIGxpbmtfbXN0KQo+ICt7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNo ZWRfY29ubmVjdG9yOwo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0 b3ItPmVuY29kZXI7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxs Owo+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyB0bXBfcGxsX2NvbmZpZzsKPiAr CWludCBsaW5rX3JhdGUsIGxpbmtfcmF0ZV9pbmRleDsKPiArCXVpbnQ4X3QgbGFuZV9jb3VudDsK PiArCWludCBjb21tb25fcmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU10gPSB7fTsKPiArCWJv b2wgcmV0ID0gZmFsc2U7Cj4gKwo+ICsJbGlua19yYXRlX2luZGV4ID0gaW50ZWxfZHBfbGlua19y YXRlX2luZGV4KGludGVsX2RwLCBjb21tb25fcmF0ZXMsCj4gKwkJCQkJCSAgIG1heF9saW5rX3Jh dGUpOwo+ICsJaWYgKGxpbmtfcmF0ZV9pbmRleCA8IDApIHsKPiArCQlEUk1fRVJST1IoIkludmFs aWQgTGluayBSYXRlXG4iKTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwlmb3IgKGxhbmVf Y291bnQgPSBtYXhfbGFuZV9jb3VudDsgbGFuZV9jb3VudCA+IDA7IGxhbmVfY291bnQgPj49IDEp IHsKPiArCQlmb3IgKDsgbGlua19yYXRlX2luZGV4ID49IDA7IGxpbmtfcmF0ZV9pbmRleCAtLSkg ewoKT25jZSB5b3UndmUgcmVhY2hlZCBsaW5rX3JhdGVfaW5kZXggPCAwIGhlcmUsIHlvdSB3b24n dCB0cnkgbG93ZXIgbGFuZQpjb3VudHMgYW55bW9yZSBhbmQgdGhlIG5lc3RlZCBsb29wIGlzIHVz ZWxlc3MsIGkuZS4geW91IG5ldmVyIHJlc2V0CmxpbmtfcmF0ZV9pbmRleCBiYWNrLgoKPiArCQkJ bGlua19yYXRlID0gY29tbW9uX3JhdGVzW2xpbmtfcmF0ZV9pbmRleF07Cj4gKwkJCXBsbCA9IGlu dGVsX2RkaV9nZXRfbGlua19kcGxsKGludGVsX2RwLCBsaW5rX3JhdGUpOwo+ICsJCQlpZiAocGxs ID09IE5VTEwpIHsKPiArCQkJCURSTV9FUlJPUigiQ291bGQgbm90IGZpbmQgRFBMTCBmb3IgbGlu ayAiCj4gKwkJCQkJICAidHJhaW5pbmcuXG4iKTsKPiArCQkJCXJldHVybiBmYWxzZTsKPiArCQkJ fQo+ICsJCQl0bXBfcGxsX2NvbmZpZyA9IHBsbC0+Y29uZmlnOwo+ICsJCQlwbGwtPmZ1bmNzLmVu YWJsZShkZXZfcHJpdiwgcGxsKTsKPiArCj4gKwkJCWludGVsX2RwX3NldF9saW5rX3BhcmFtcyhp bnRlbF9kcCwgbGlua19yYXRlLAo+ICsJCQkJCQkgbGFuZV9jb3VudCwgbGlua19tc3QpOwo+ICsK PiArCQkJaW50ZWxfZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiArCQkJaW50ZWxfcHJl cGFyZV9kcF9kZGlfYnVmZmVycyhlbmNvZGVyKTsKPiArCQkJaW50ZWxfZGRpX2luaXRfZHBfYnVm X3JlZyhlbmNvZGVyKTsKPiArCQkJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9E RV9EUE1TX09OKTsKPiArCQkJcmV0ID0gaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihpbnRlbF9k cCk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlicmVhazsKPiArCj4gKwkJCS8qIERpc2FibGUgcG9y dCBmb2xsb3dlZCBieSBQTEwgZm9yIG5leHQgcmV0cnkvY2xlYW4gdXAgKi8KPiArCQkJaW50ZWxf ZGRpX3Bvc3RfZGlzYWJsZShlbmNvZGVyLCBOVUxMLCBOVUxMKTsKPiArCQkJcGxsLT5mdW5jcy5k aXNhYmxlKGRldl9wcml2LCBwbGwpOwo+ICsJCQlwbGwtPmNvbmZpZyA9IHRtcF9wbGxfY29uZmln Owo+ICsJCX0KPiArCQlpZiAocmV0KSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkxpbmsgVHJhaW5p bmcgc3VjY2Vzc2Z1bCBhdCBsaW5rIHJhdGU6ICIKPiArCQkJCSAgICAgICIlZCBsYW5lOiVkXG4i LCBsaW5rX3JhdGUsIGxhbmVfY291bnQpOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwlp bnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ICsKPiArCWlmICghbGFuZV9jb3Vu dCkKPiArCQlEUk1fRVJST1IoIkxpbmsgVHJhaW5pbmcgRmFpbGVkXG4iKTsKPiArCj4gKwlyZXR1 cm4gcmV0Owo+ICt9Cj4gKwo+ICB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXgg NzVhYzYyZi4uMTM3ODExNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0xNDQz LDYgKzE0NDMsMjEgQEAgaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+ICAJcmV0dXJuIHJhdGVzW2xlbiAtIDFdOwo+ICB9Cj4gIAo+ICtpbnQgaW50ZWxf ZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCAqY29tbW9u X3JhdGVzLAo+ICsJCQkgICAgIGludCBsaW5rX3JhdGUpCj4gK3sKPiArCWludCBjb21tb25fbGVu Owo+ICsJaW50IGluZGV4Owo+ICsKPiArCWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fcmF0 ZXMoaW50ZWxfZHAsIGNvbW1vbl9yYXRlcyk7Cj4gKwlmb3IgKGluZGV4ID0gY29tbW9uX2xlbiAt IDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHsKPiArCQlpZiAobGlua19yYXRlID09IGNvbW1vbl9y YXRlc1tpbmRleF0pCj4gKwkJCXJldHVybiBpbmRleDsKPiArCX0KCkkgdGhpbmsgaXQncyBhbHdh eXMgZWFzaWVyIHRvIGhhdmUgdGhlIHBhcmFkaWdtIGZvciBsb29wLCBhbmQgZG8gdGhlCm1hdGgg dXNpbmcgdGhlIGxlbmd0aCBhbmQgaW5kZXgsIGxpa2UgdGhpczoKCgljb21tb25fbGVuID0gaW50 ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCBjb21tb25fcmF0ZXMpOwogICAgICAgIGZvciAo aSA9IDA7IGkgPCBjb21tb25fbGVuOyBpKyspCiAgICAgICAgCWlmIChsaW5rX3JhdGUgPT0gY29t bW9uX3JhdGVzW2NvbW1vbl9sZW4gLSBpIC0gMV0pCiAgICAgICAgICAgICAgICAJcmV0dXJuIGk7 Cgo+ICsKPiArCXJldHVybiAtMTsKPiArfQo+ICsKPiAgaW50IGludGVsX2RwX3JhdGVfc2VsZWN0 KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCByYXRlKQo+ICB7Cj4gIAlyZXR1cm4gcmF0 ZV90b19pbmRleChyYXRlLCBpbnRlbF9kcC0+c2lua19yYXRlcyk7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+IGluZGV4IGM0MzhiMDIuLmYxZTA4 ZjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFp bmluZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmlu Zy5jCj4gQEAgLTMxMyw5ICszMTMsMTUgQEAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQkJCURQX1RSQUlOSU5HX1BBVFRFUk5fRElT QUJMRSk7Cj4gIH0KPiAgCj4gLXZvaWQKPiArYm9vbAo+ICBpbnRlbF9kcF9zdGFydF9saW5rX3Ry YWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCWludGVsX2RwX2xpbmtfdHJh aW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+IC0JaW50ZWxfZHBfbGlua190cmFpbmlu Z19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7Cj4gKwlib29sIHJldDsKPiArCj4gKwlp ZiAoaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCkpIHsKPiAr CQlyZXQgPSBpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVs X2RwKTsKPiArCQlpZiAocmV0KQo+ICsJCQlyZXR1cm4gdHJ1ZTsKPiArCX0KClByZWZlciBlYXJs eSByZXR1cm5zIGluc3RlYWQgb2YgYWRkaW5nIG1vcmUgaW5kZW50YXRpb24uCgo+ICsJcmV0dXJu IGZhbHNlOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBjYTUxZTFhLi41 Yjk3YTdkNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTExNjAsNiArMTE2 MCw4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gIHZv aWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg Ym9vbCBzdGF0ZSk7Cj4gIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApOwo+ICtib29sIGludGVsX2RkaV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsIGludCBtYXhfbGlua19yYXRlLAo+ICsJCQkgIHVpbnQ4X3QgbWF4X2xhbmVf Y291bnQsIGJvb2wgbGlua19tc3QpOwo+ICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVs X2RkaV9nZXRfbGlua19kcGxsKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCQkJCSAg aW50IGNsb2NrKTsKPiAgdW5zaWduZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+IEBAIC0xMzgxLDcgKzEzODMsNyBAQCBib29sIGludGVsX2RwX2lu aXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ ICB2b2lkIGludGVsX2RwX3NldF9saW5rX3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LAo+ICAJCQkgICAgICBpbnQgbGlua19yYXRlLCB1aW50OF90IGxhbmVfY291bnQsCj4gIAkJCSAg ICAgIGJvb2wgbGlua19tc3QpOwo+IC12b2lkIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gK2Jvb2wgaW50ZWxfZHBfc3RhcnRfbGlua190cmFp bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtf dHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gIHZvaWQgaW50ZWxfZHBfc2lua19k cG1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBtb2RlKTsKPiAgdm9pZCBpbnRlbF9k cF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gQEAgLTE0MDMs NiArMTQwNSw4IEBAIHZvaWQgaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvCj4gIHZvaWQgaW50ZWxfZHBfbXN0 X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgaW50ZWxfZHBfbXN0X3Jl c3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgaW50IGludGVsX2RwX21heF9saW5rX3Jh dGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gK2ludCBpbnRlbF9kcF9saW5rX3JhdGVf aW5kZXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50ICpjb21tb25fcmF0ZXMsCj4gKwkJ CSAgICAgaW50IGxpbmtfcmF0ZSk7Cj4gIGludCBpbnRlbF9kcF9yYXRlX3NlbGVjdChzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBpbnQgcmF0ZSk7Cj4gIHZvaWQgaW50ZWxfZHBfaG90X3BsdWco c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwo+ICB2b2lkIGludGVsX3Bvd2Vy X3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwoKLS0g CkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK