From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v7 1/6] drm/i915: Fallback to lower link rate and lane count during link training Date: Mon, 26 Sep 2016 16:39:34 +0300 Message-ID: <87twd2kcfd.fsf@intel.com> References: <1473984244-4349-2-git-send-email-manasi.d.navare@intel.com> <1474051514-5811-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 90BE86E4D5 for ; Mon, 26 Sep 2016 13:39:36 +0000 (UTC) In-Reply-To: <1474051514-5811-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 T24gRnJpLCAxNiBTZXAgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4gd3JvdGU6Cj4gQWNjb3JkaW5nIHRvIHRoZSBEaXNwbGF5UG9ydCBTcGVjLCBpbiBjYXNl IG9mIENsb2NrIFJlY292ZXJ5IGZhaWx1cmUKPiB0aGUgbGluayB0cmFpbmluZyBzZXF1ZW5jZSBz aG91bGQgZmFsbCBiYWNrIHRvIHRoZSBsb3dlciBsaW5rIHJhdGUKPiBmb2xsb3dlZCBieSBsb3dl ciBsYW5lIGNvdW50IHVudGlsIENSIHN1Y2NlZWRzLgo+IE9uIENSIHN1Y2Nlc3MsIHRoZSBzZXF1 ZW5jZSBwcm9jZWVkcyB3aXRoIENoYW5uZWwgRVEuCj4gSW4gY2FzZSBvZiBDaGFubmVsIEVRIGZh aWx1cmVzLCBpdCBzaG91bGQgZmFsbGJhY2sgdG8KPiBsb3dlciBsaW5rIHJhdGUgYW5kIGxhbmUg Y291bnQgYW5kIHN0YXJ0IHRoZSBDUiBwaGFzZSBhZ2Fpbi4KClRoaXMgY2hhbmdlIG1ha2VzIHRo ZSBsaW5rIHRyYWluaW5nIHN0YXJ0IGF0IHRoZSBtYXggbGFuZSBjb3VudCBhbmQgbWF4Cmxpbmsg cmF0ZS4gVGhpcyBpcyBub3QgaWRlYWwsIGFzIGl0IHdhc3RlcyB0aGUgbGluay4gQW5kIGl0IGlz IG5vdCBhCnNwZWMgcmVxdWlyZW1lbnQuICJUaGUgTGluayBQb2xpY3kgTWFrZXIgb2YgdGhlIHVw c3RyZWFtIGRldmljZSBtYXkKY2hvb3NlIGFueSBsaW5rIGNvdW50IGFuZCBsaW5rIHJhdGUgYXMg bG9uZyBhcyB0aGV5IGRvIG5vdCBleGNlZWQgdGhlCmNhcGFiaWxpdGllcyBvZiB0aGUgRFAgcmVj ZWl2ZXIuIgoKT3VyIGN1cnJlbnQgY29kZSBzdGFydHMgYXQgdGhlIG1pbmltdW0gcmVxdWlyZWQg YmFuZHdpZHRoIGZvciB0aGUgbW9kZSwKdGhlcmVmb3JlIHdlIGNhbid0IGZhbGwgYmFjayB0byBs b3dlciBsaW5rIHJhdGUgYW5kIGxhbmUgY291bnQgd2l0aG91dApyZWR1Y2luZyB0aGUgbW9kZS4K CkFGQUlDVCB0aGlzIHBhdGNoIGhlcmUgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBsaW5rIGJh bmR3aWR0aCB0byBkcm9wCmJlbG93IHdoYXQgaXMgcmVxdWlyZWQgZm9yIHRoZSBtb2RlLiBUaGlz IGlzIHVuYWNjZXB0YWJsZS4KCkJSLApKYW5pLgoKCj4KPiB2NzoKPiAqIEFkZHJlc3MgcmVhZGFi aWxpdHkgY29uY2VybnMgKE1pa2EgS2Fob2xhKQo+IHY2Ogo+ICogRG8gbm90IHNwbGl0IHF1b3Rl ZCBzdHJpbmcgYWNyb3NzIGxpbmUgKE1pa2EgS2Fob2xhKQo+IHY1Ogo+ICogUmVzZXQgdGhlIGxp bmsgcmF0ZSBpbmRleCB0byB0aGUgbWF4IGxpbmsgcmF0ZSBpbmRleAo+IGJlZm9yZSBsb3dlcmlu ZyB0aGUgbGFuZSBjb3VudCAoSmFuaSBOaWt1bGEpCj4gKiBVc2UgdGhlIHBhcmFkaWdtIGZvciBs b29wIGluIGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleAo+IHY0Ogo+ICogRml4ZWQgdGhlIGxpbmsg cmF0ZSBmYWxsYmFjayBsb29wIChNYW5hc2kgTmF2YXJlKQo+IHYzOgo+ICogRml4ZWQgc29tZSBy ZWJhc2UgaXNzdWVzIChNaWthIEthaG9sYSkKPiB2MjoKPiAqIEFkZCBhIGhlbHBlciBmdW5jdGlv biB0byByZXR1cm4gaW5kZXggb2YgcmVxdWVzdGVkIGxpbmsgcmF0ZQo+IGludG8gY29tbW9uX3Jh dGVzIGFycmF5Cj4gKiBDaGFuZ2VkIHRoZSBsaW5rIHJhdGUgZmFsbGJhY2sgbG9vcCB0byBtYWtl IHVzZQo+IG9mIGNvbW1vbl9yYXRlcyBhcnJheSAoTWlrYSBLYWhvbGEpCj4gKiBDaGFuZ2VkIElO VEVMX0lORk8gdG8gSU5URUxfR0VOIChEYXZpZCBXZWluZWhhbGwpCj4KPiBTaWduZWQtb2ZmLWJ5 OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgICAgICAgfCAxMTMgKysrKysrKysr KysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAg ICAgICAgICAgIHwgIDE1ICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlu a190cmFpbmluZy5jIHwgIDEzICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgICAgICAgICAgfCAgIDYgKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4 IDgwNjVhNWYuLjA5MzAzOGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0x NjM3LDE5ICsxNjM3LDE4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGludGVsX2Rk aV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMg dm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gIAkJCQkgICAgaW50IGxpbmtfcmF0ZSwgdWludDMyX3QgbGFuZV9jb3VudCwKPiAtCQkJ CSAgICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiAtCQkJCSAgICBib29sIGxpbmtf bXN0KQo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+ICB7Cj4gIAlz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNl KTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJf cG9ydChlbmNvZGVyKTsKPiAgCj4gIAlpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAs IGxpbmtfcmF0ZSwgbGFuZV9jb3VudCwKPiAtCQkJCSBsaW5rX21zdCk7Cj4gLQlpZiAoZW5jb2Rl ci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+IC0JCWludGVsX2VkcF9wYW5lbF9vbihpbnRl bF9kcCk7Cj4gKwkJCQkgZmFsc2UpOwo+ICsKPiArCWludGVsX2VkcF9wYW5lbF9vbihpbnRlbF9k cCk7Cj4gIAo+ICAJaW50ZWxfZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiAgCWludGVs X3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7Cj4gQEAgLTE2NjAsNiArMTY1OSwyOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ICB9 Cj4gIAo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgICBpbnQgbGlua19yYXRlLCB1aW50MzJfdCBsYW5l X2NvdW50LAo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAo+ICsJCQkJ ICAgIGJvb2wgbGlua19tc3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ICsKPiArCS8qIERpc2FibGUg dGhlIFBMTCBhbmQgb2J0YWluIHRoZSBQTEwgZm9yIExpbmsgVHJhaW5pbmcKPiArCSAqIHRoYXQg c3RhcnRzIHdpdGggaGlnaGVzdCBsaW5rIHJhdGUgYW5kIGxhbmUgY291bnQuCj4gKwkgKi8KPiAr CXRtcF9wbGxfY29uZmlnID0gcGxsLT5jb25maWc7Cj4gKwlwbGwtPmZ1bmNzLmRpc2FibGUoZGV2 X3ByaXYsIHBsbCk7Cj4gKwlwbGwtPmNvbmZpZy5jcnRjX21hc2sgPSAwOwo+ICsKPiArCS8qIElm IExpbmsgVHJhaW5pbmcgZmFpbHMsIHNlbmQgYSB1ZXZlbnQgdG8gZ2VuZXJhdGUgYSBob3RwbHVn ICovCj4gKwlpZiAoIWludGVsX2RkaV9saW5rX3RyYWluKGludGVsX2RwLCBsaW5rX3JhdGUsIGxh bmVfY291bnQsIGxpbmtfbXN0KSkKPiArCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGVu Y29kZXItPmJhc2UuZGV2KTsKPiArCXBsbC0+Y29uZmlnID0gdG1wX3BsbF9jb25maWc7Cj4gK30K PiArCj4gIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICAgICBib29sIGhhc19oZG1pX3NpbmssCj4gIAkJ CQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSwKPiBAQCAtMTY5 MywyMCArMTcxNCwyNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAgCWludCB0eXBlID0gaW50ZWxfZW5j b2Rlci0+dHlwZTsKPiAgCj4gLQlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRFAgfHwgdHlwZSA9 PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gKwlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+ ICsJCWludGVsX2RkaV9wcmVfZW5hYmxlX2VkcChpbnRlbF9lbmNvZGVyLAo+ICsJCQkJCWNydGMt PmNvbmZpZy0+cG9ydF9jbG9jaywKPiArCQkJCQljcnRjLT5jb25maWctPmxhbmVfY291bnQsCj4g KwkJCQkJY3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBsbCk7Cj4gKwo+ICsJaWYgKHR5cGUgPT0gSU5U RUxfT1VUUFVUX0RQKQo+ICAJCWludGVsX2RkaV9wcmVfZW5hYmxlX2RwKGludGVsX2VuY29kZXIs Cj4gIAkJCQkJY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrLAo+ICAJCQkJCWNydGMtPmNvbmZpZy0+ bGFuZV9jb3VudCwKPiAgCQkJCQljcnRjLT5jb25maWctPnNoYXJlZF9kcGxsLAo+ICAJCQkJCWlu dGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmlnLAo+ICAJCQkJCQkJICAgIElOVEVMX09VVFBV VF9EUF9NU1QpKTsKPiAtCX0KPiAtCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9IRE1JKSB7Cj4g Kwo+ICsJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpCj4gIAkJaW50ZWxfZGRpX3ByZV9l bmFibGVfaGRtaShpbnRlbF9lbmNvZGVyLAo+ICAJCQkJCSAgY3J0Yy0+Y29uZmlnLT5oYXNfaGRt aV9zaW5rLAo+ICAJCQkJCSAgJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLAo+ICAJ CQkJCSAgY3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBsbCk7Cj4gLQl9Cj4gKwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyLAo+IEBAIC0yNDM1LDYgKzI0NjIsNzIgQEAgaW50ZWxfZGRpX2dldF9saW5r X2RwbGwoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IGNsb2NrKQo+ICAJcmV0dXJuIHBs bDsKPiAgfQo+ICAKPiArYm9vbAo+ICtpbnRlbF9kZGlfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLCBpbnQgbWF4X2xpbmtfcmF0ZSwKPiArCQkgICAgIHVpbnQ4X3QgbWF4X2xh bmVfY291bnQsIGJvb2wgbGlua19tc3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsJ c3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGxfY29uZmlnIHRtcF9wbGxfY29uZmlnOwo+ICsJaW50IGxpbmtfcmF0ZSwgbWF4X2xpbmtfcmF0 ZV9pbmRleCwgbGlua19yYXRlX2luZGV4Owo+ICsJdWludDhfdCBsYW5lX2NvdW50Owo+ICsJaW50 IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXSA9IHt9Owo+ICsJYm9vbCByZXQg PSBmYWxzZTsKPiArCj4gKwltYXhfbGlua19yYXRlX2luZGV4ID0gaW50ZWxfZHBfbGlua19yYXRl X2luZGV4KGludGVsX2RwLCBjb21tb25fcmF0ZXMsCj4gKwkJCQkJCSAgICAgICBtYXhfbGlua19y YXRlKTsKPiArCWlmIChtYXhfbGlua19yYXRlX2luZGV4IDwgMCkgewo+ICsJCURSTV9FUlJPUigi SW52YWxpZCBMaW5rIFJhdGVcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwlm b3IgKGxhbmVfY291bnQgPSBtYXhfbGFuZV9jb3VudDsgbGFuZV9jb3VudCA+IDA7IGxhbmVfY291 bnQgPj49IDEpIHsKPiArCQlmb3IgKGxpbmtfcmF0ZV9pbmRleCA9IG1heF9saW5rX3JhdGVfaW5k ZXg7Cj4gKwkJICAgICBsaW5rX3JhdGVfaW5kZXggPj0gMDsgbGlua19yYXRlX2luZGV4LS0pIHsK PiArCQkJbGlua19yYXRlID0gY29tbW9uX3JhdGVzW2xpbmtfcmF0ZV9pbmRleF07Cj4gKwkJCXBs bCA9IGludGVsX2RkaV9nZXRfbGlua19kcGxsKGludGVsX2RwLCBsaW5rX3JhdGUpOwo+ICsJCQlp ZiAocGxsID09IE5VTEwpIHsKPiArCQkJCURSTV9FUlJPUigiQ291bGQgbm90IGZpbmQgRFBMTCBm b3IgbGluayB0cmFpbmluZy5cbiIpOwo+ICsJCQkJcmV0dXJuIGZhbHNlOwo+ICsJCQl9Cj4gKwkJ CXRtcF9wbGxfY29uZmlnID0gcGxsLT5jb25maWc7Cj4gKwkJCXBsbC0+ZnVuY3MuZW5hYmxlKGRl dl9wcml2LCBwbGwpOwo+ICsKPiArCQkJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2Rw LCBsaW5rX3JhdGUsCj4gKwkJCQkJCSBsYW5lX2NvdW50LCBsaW5rX21zdCk7Cj4gKwo+ICsJCQlp bnRlbF9kZGlfY2xrX3NlbGVjdChlbmNvZGVyLCBwbGwpOwo+ICsJCQlpbnRlbF9wcmVwYXJlX2Rw X2RkaV9idWZmZXJzKGVuY29kZXIpOwo+ICsJCQlpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVnKGVu Y29kZXIpOwo+ICsJCQlpbnRlbF9kcF9zaW5rX2RwbXMoaW50ZWxfZHAsIERSTV9NT0RFX0RQTVNf T04pOwo+ICsJCQlyZXQgPSBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKGludGVsX2RwKTsKPiAr CQkJaWYgKHJldCkKPiArCQkJCWJyZWFrOwo+ICsKPiArCQkJLyogRGlzYWJsZSBwb3J0IGZvbGxv d2VkIGJ5IFBMTCBmb3IgbmV4dAo+ICsJCQkgKnJldHJ5L2NsZWFuIHVwCj4gKwkJCSAqLwo+ICsJ CQlpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKGVuY29kZXIsIE5VTEwsIE5VTEwpOwo+ICsJCQlwbGwt PmZ1bmNzLmRpc2FibGUoZGV2X3ByaXYsIHBsbCk7Cj4gKwkJCXBsbC0+Y29uZmlnID0gdG1wX3Bs bF9jb25maWc7Cj4gKwkJfQo+ICsJCWlmIChyZXQpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiTGlu ayBUcmFpbmluZyBzdWNjZXNzZnVsIGF0IGxpbmsgcmF0ZTogJWQgbGFuZTogJWRcbiIsCj4gKwkJ CQkgICAgICBsaW5rX3JhdGUsIGxhbmVfY291bnQpOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9 Cj4gKwo+ICsJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiArCj4gKwlpZiAo IWxhbmVfY291bnQpCj4gKwkJRFJNX0VSUk9SKCJMaW5rIFRyYWluaW5nIEZhaWxlZFxuIik7Cj4g Kwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+IGluZGV4IDY5Y2VlOWIuLmQ4MWM2N2NiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j Cj4gQEAgLTE1MDYsNiArMTUwNiwyMSBAQCBpbnRlbF9kcF9tYXhfbGlua19yYXRlKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gIAlyZXR1cm4gcmF0ZXNbbGVuIC0gMV07Cj4gIH0KPiAgCj4g K2ludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwg aW50ICpjb21tb25fcmF0ZXMsCj4gKwkJCSAgICAgaW50IGxpbmtfcmF0ZSkKPiArewo+ICsJaW50 IGNvbW1vbl9sZW47Cj4gKwlpbnQgaW5kZXg7Cj4gKwo+ICsJY29tbW9uX2xlbiA9IGludGVsX2Rw X2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsKPiArCWZvciAoaW5kZXggPSAw OyBpbmRleCA8IGNvbW1vbl9sZW47IGluZGV4KyspIHsKPiArCQlpZiAobGlua19yYXRlID09IGNv bW1vbl9yYXRlc1tjb21tb25fbGVuIC0gaW5kZXggLSAxXSkKPiArCQkJcmV0dXJuIGNvbW1vbl9s ZW4gLSBpbmRleCAtIDE7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIC0xOwo+ICt9Cj4gKwo+ICBpbnQg aW50ZWxfZHBfcmF0ZV9zZWxlY3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHJhdGUp Cj4gIHsKPiAgCXJldHVybiByYXRlX3RvX2luZGV4KHJhdGUsIGludGVsX2RwLT5zaW5rX3JhdGVz KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFp bmluZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4g aW5kZXggYzQzOGIwMi4uNmViNWViNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiBAQCAtMzEzLDkgKzMxMywxNiBAQCB2b2lkIGludGVs X2RwX3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJCQkJRFBf VFJBSU5JTkdfUEFUVEVSTl9ESVNBQkxFKTsKPiAgfQo+ICAKPiAtdm9pZAo+ICtib29sCj4gIGlu dGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgewo+ IC0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCk7Cj4gLQlp bnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsKPiAr CWJvb2wgcmV0Owo+ICsKPiArCWlmIChpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292 ZXJ5KGludGVsX2RwKSkgewo+ICsJCXJldCA9IGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5l bF9lcXVhbGl6YXRpb24oaW50ZWxfZHApOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiB0cnVl Owo+ICsJfQo+ICsKPiArCXJldHVybiBmYWxzZTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gaW5kZXggOGZkMTZhZC4uMDhjYjU3MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gQEAgLTExNjQsNiArMTE2NCw4IEBAIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZyk7Cj4gIHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBzdGF0ZSk7Cj4gIHVpbnQzMl90IGRkaV9zaWduYWxf bGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICtib29sIGludGVsX2RkaV9saW5r X3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBtYXhfbGlua19yYXRlLAo+ICsJ CQkgIHVpbnQ4X3QgbWF4X2xhbmVfY291bnQsIGJvb2wgbGlua19tc3QpOwo+ICBzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGwgKmludGVsX2RkaV9nZXRfbGlua19kcGxsKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gIAkJCQkJCSAgaW50IGNsb2NrKTsKPiAgdW5zaWduZWQgaW50IGludGVsX2Zi X2FsaWduX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IEBAIC0xMzg1LDcgKzEzODcs NyBAQCBib29sIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0LAo+ICB2b2lkIGludGVsX2RwX3NldF9saW5rX3BhcmFtcyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkgICAgICBpbnQgbGlua19yYXRlLCB1aW50OF90 IGxhbmVfY291bnQsCj4gIAkJCSAgICAgIGJvb2wgbGlua19tc3QpOwo+IC12b2lkIGludGVsX2Rw X3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gK2Jvb2wgaW50 ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiAgdm9p ZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4g IHZvaWQgaW50ZWxfZHBfc2lua19kcG1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBt b2RlKTsKPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2Rlcik7Cj4gQEAgLTE0MDcsNiArMTQwOSw4IEBAIHZvaWQgaW50ZWxfZHBfYWRkX3Byb3Bl cnRpZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNv Cj4gIHZvaWQgaW50ZWxfZHBfbXN0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g IHZvaWQgaW50ZWxfZHBfbXN0X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgaW50 IGludGVsX2RwX21heF9saW5rX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gK2lu dCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50 ICpjb21tb25fcmF0ZXMsCj4gKwkJCSAgICAgaW50IGxpbmtfcmF0ZSk7Cj4gIGludCBpbnRlbF9k cF9yYXRlX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgcmF0ZSk7Cj4gIHZv aWQgaW50ZWxfZHBfaG90X3BsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp Owo+ICB2b2lkIGludGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNo bm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK