From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 11/14] drm/i915: Fallback to lower link rate and lane count during link training Date: Fri, 2 Sep 2016 15:49:02 +0300 Message-ID: <20160902124902.d4hmedtqgqgd47oj@boom> References: <1472767699-31211-1-git-send-email-manasi.d.navare@intel.com> <1472767699-31211-12-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 mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E31E6EA87 for ; Fri, 2 Sep 2016 12:49:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1472767699-31211-12-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMDEsIDIwMTYgYXQgMDM6MDg6MTZQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBBY2NvcmRpbmcgdG8gdGhlIERpc3BsYXlQb3J0IFNwZWMsIGluIGNhc2Ugb2YgQ2xv Y2sgUmVjb3ZlcnkgZmFpbHVyZQo+IHRoZSBsaW5rIHRyYWluaW5nIHNlcXVlbmNlIHNob3VsZCBm YWxsIGJhY2sgdG8gdGhlIGxvd2VyIGxpbmsgcmF0ZQo+IGZvbGxvd2VkIGJ5IGxvd2VyIGxhbmUg Y291bnQgdW50aWwgQ1Igc3VjY2VlZHMuCj4gT24gQ1Igc3VjY2VzcywgdGhlIHNlcXVlbmNlIHBy b2NlZWRzIHdpdGggQ2hhbm5lbCBFUS4KPiBJbiBjYXNlIG9mIENoYW5uZWwgRVEgZmFpbHVyZXMs IGl0IHNob3VsZCBmYWxsYmFjayB0bwo+IGxvd2VyIGxpbmsgcmF0ZSBhbmQgbGFuZSBjb3VudCBh bmQgc3RhcnQgdGhlIENSIHBoYXNlIGFnYWluLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBO YXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RkaS5jICAgICAgICAgICAgICB8IDEwOSArKysrKysrKysrKysrKysrKysr KysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMg fCAgMTIgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAg ICB8ICAgNCArLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAxNSBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IDY3YTZhMGIuLjc4 ZDY2ODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0xNjM0LDI5ICsxNjM0 LDUwIEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMgdm9pZCBpbnRlbF9k ZGlfcHJlX2VuYWJsZV9lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkg ICAgaW50IGxpbmtfcmF0ZSwgdWludDMyX3QgbGFuZV9jb3VudCwKPiAtCQkJCSAgICBzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiAtCQkJCSAgICBib29sIGxpbmtfbXN0KQo+ICsJCQkJ ICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp Owo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNvZGVy KTsKPiAgCj4gIAlpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGxpbmtfcmF0ZSwg bGFuZV9jb3VudCwKPiAtCQkJCSBsaW5rX21zdCk7Cj4gLQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJ TlRFTF9PVVRQVVRfRURQKQo+IC0JCWludGVsX2VkcF9wYW5lbF9vbihpbnRlbF9kcCk7Cj4gKwkJ CQkgZmFsc2UpOwo+ICsKPiArCWludGVsX2VkcF9wYW5lbF9vbihpbnRlbF9kcCk7Cj4gIAo+ICAJ aW50ZWxfZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiAgCWludGVsX3ByZXBhcmVfZHBf ZGRpX2J1ZmZlcnMoZW5jb2Rlcik7Cj4gIAlpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVnKGVuY29k ZXIpOwo+ICAJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9EUE1TX09OKTsK PiAgCWludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+IC0JaWYgKHBvcnQgIT0g UE9SVF9BIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiArCWlmIChwb3J0ICE9IFBPUlRf QSB8fCBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDkpCj4gIAkJaW50ZWxfZHBfc3RvcF9s aW5rX3RyYWluKGludGVsX2RwKTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfZGRpX3By ZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgICAgaW50 IGxpbmtfcmF0ZSwgdWludDMyX3QgbGFuZV9jb3VudCwKPiArCQkJCSAgICBzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKnBsbCwKPiArCQkJCSAgICBib29sIGxpbmtfbXN0KQo+ICt7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsK PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwo+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyB0bXBfcGxsX2Nv bmZpZzsKPiArCj4gKwkvKiBEaXNhYmxlIHRoZSBQTEwgYW5kIG9idGFpbiB0aGUgUExMIGZvciBM aW5rIFRyYWluaW5nCj4gKwkgKiB0aGF0IHN0YXJ0cyB3aXRoIGhpZ2hlc3QgbGluayByYXRlIGFu ZCBsYW5lIGNvdW50Lgo+ICsJICovCj4gKwl0bXBfcGxsX2NvbmZpZyA9IHBsbC0+Y29uZmlnOwo+ ICsJcGxsLT5mdW5jcy5kaXNhYmxlKGRldl9wcml2LCBwbGwpOwo+ICsJcGxsLT5jb25maWcuY3J0 Y19tYXNrID0gMDsKPiArCj4gKwkvKiBJZiBMaW5rIFRyYWluaW5nIGZhaWxzLCBzZW5kIGEgdWV2 ZW50IHRvIGdlbmVyYXRlIGEgaG90cGx1ZyAqLwo+ICsJaWYgKCEoaW50ZWxfZGRpX2xpbmtfdHJh aW4oaW50ZWxfZHAsIGxpbmtfcmF0ZSwgbGFuZV9jb3VudCwgbGlua19tc3QpKSkKPiArCQlkcm1f a21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXBsbC0+Y29u ZmlnID0gdG1wX3BsbF9jb25maWc7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGludGVsX2RkaV9w cmVfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICAg ICBib29sIGhhc19oZG1pX3NpbmssCj4gIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSwKPiBAQCAtMTY5MCwyMCArMTcxMSwyNiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwK PiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRj KTsKPiAgCWludCB0eXBlID0gaW50ZWxfZW5jb2Rlci0+dHlwZTsKPiAgCj4gLQlpZiAodHlwZSA9 PSBJTlRFTF9PVVRQVVRfRFAgfHwgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gKwlpZiAo dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+ICsJCWludGVsX2RkaV9wcmVfZW5hYmxlX2VkcChp bnRlbF9lbmNvZGVyLAo+ICsJCQkJCWNydGMtPmNvbmZpZy0+cG9ydF9jbG9jaywKPiArCQkJCQlj cnRjLT5jb25maWctPmxhbmVfY291bnQsCj4gKwkJCQkJY3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBs bCk7Cj4gKwo+ICsJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0RQKQo+ICAJCWludGVsX2RkaV9w cmVfZW5hYmxlX2RwKGludGVsX2VuY29kZXIsCj4gIAkJCQkJY3J0Yy0+Y29uZmlnLT5wb3J0X2Ns b2NrLAo+ICAJCQkJCWNydGMtPmNvbmZpZy0+bGFuZV9jb3VudCwKPiAgCQkJCQljcnRjLT5jb25m aWctPnNoYXJlZF9kcGxsLAo+ICAJCQkJCWludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmln LAo+ICAJCQkJCQkJICAgIElOVEVMX09VVFBVVF9EUF9NU1QpKTsKPiAtCX0KPiAtCWlmICh0eXBl ID09IElOVEVMX09VVFBVVF9IRE1JKSB7Cj4gKwo+ICsJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVU X0hETUkpCj4gIAkJaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShpbnRlbF9lbmNvZGVyLAo+ICAJ CQkJCSAgY3J0Yy0+Y29uZmlnLT5oYXNfaGRtaV9zaW5rLAo+ICAJCQkJCSAgJmNydGMtPmNvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlLAo+ICAJCQkJCSAgY3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBs bCk7Cj4gLQl9Cj4gKwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNh YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+IEBAIC0yNDMxLDYgKzI0 NTgsNjYgQEAgaW50ZWxfZGRpX2dldF9saW5rX2RwbGwoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgaW50IGNsb2NrKQo+ICAJcmV0dXJuIHBsbDsKPiAgfQo+ICAKPiArYm9vbAo+ICtpbnRlbF9k ZGlfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgbWF4X2xpbmtfcmF0 ZSwKPiArCQkgICAgdWludDhfdCBtYXhfbGFuZV9jb3VudCwgYm9vbCBsaW5rX21zdCkKPiArewo+ ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gaW50ZWxfZHAtPmF0dGFjaGVk X2Nvbm5lY3RvcjsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9y LT5lbmNvZGVyOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK PiArCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgdG1wX3BsbF9jb25maWc7Cj4gKwlp bnQgbGlua19yYXRlOwo+ICsJdWludDhfdCBsYW5lX2NvdW50Owo+ICsJYm9vbCBsaW5rX3JhdGVf bm90X2ZvdW5kID0gdHJ1ZTsKPiArCWJvb2wgcmV0ID0gZmFsc2U7Cj4gKwo+ICsJZm9yIChsYW5l X2NvdW50ID0gbWF4X2xhbmVfY291bnQ7IGxhbmVfY291bnQgPiAwOyBsYW5lX2NvdW50ID4+PSAx KSB7Cj4gKwo+ICsJCWxpbmtfcmF0ZSA9IG1heF9saW5rX3JhdGU7Cj4gKwkJd2hpbGUgKGxpbmtf cmF0ZV9ub3RfZm91bmQpIHsKPiArCQkJcGxsID0gaW50ZWxfZGRpX2dldF9saW5rX2RwbGwoaW50 ZWxfZHAsIGxpbmtfcmF0ZSk7Cj4gKwkJCWlmIChwbGwgPT0gTlVMTCkgewo+ICsJCQkJRFJNX0VS Uk9SKCJDb3VsZCBub3QgZmluZCBEUExMIGZvciBsaW5rICIKPiArCQkJCQkgICJ0cmFpbmluZy5c biIpOwo+ICsJCQkJcmV0dXJuIGZhbHNlOwo+ICsJCQl9Cj4gKwkJCXRtcF9wbGxfY29uZmlnID0g cGxsLT5jb25maWc7Cj4gKwkJCXBsbC0+ZnVuY3MuZW5hYmxlKGRldl9wcml2LCBwbGwpOwo+ICsK PiArCQkJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBsaW5rX3JhdGUsCj4gKwkJ CQkJCSBsYW5lX2NvdW50LCBsaW5rX21zdCk7Cj4gKwo+ICsJCQlpbnRlbF9kZGlfY2xrX3NlbGVj dChlbmNvZGVyLCBwbGwpOwo+ICsJCQlpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVuY29k ZXIpOwo+ICsJCQlpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVnKGVuY29kZXIpOwoKRG8geW91IHJl YWxseSBuZWVkIHRvIHJ1biB0aGVzZSB0d28gZm9yIGV2ZXJ5IGxpbmsgcmF0ZT8KCj4gKwkJCWlu dGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PTik7Cj4gKwkJCXJldCA9 IGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ICsJCQlpZiAocmV0KQo+ICsJ CQkJYnJlYWs7CgpXaGVyZSBkbyB5b3Ugc3RvcCBsaW5rIHRyYWluaW5nIG9uIGZhaWx1cmU/IFBl cmhhcHM6CgpyZXQgPSBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKGludGVsX2RwKTsKaW50ZWxf ZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKaWYgKHJldCkKCWJyZWFrOwoKYW5kIHJlbW92 ZSB0aGUgc3RvcCBvbiB0aGUgc3VjY2VzcyBwYXRoPwoKPiArCj4gKwkJCS8qIERpc2FibGUgcG9y dCBmb2xsb3dlZCBieSBQTEwgZm9yIG5leHQgcmV0cnkvY2xlYW4gdXAgKi8KPiArCQkJaW50ZWxf ZGRpX3Bvc3RfZGlzYWJsZShlbmNvZGVyLCBOVUxMLCBOVUxMKTsKPiArCQkJcGxsLT5mdW5jcy5k aXNhYmxlKGRldl9wcml2LCBwbGwpOwo+ICsJCQlpZiAobGlua19yYXRlID09IDU0MDAwMCkKPiAr CQkJCWxpbmtfcmF0ZSA9IDI3MDAwMDsKPiArCQkJZWxzZSBpZiAobGlua19yYXRlID09IDI3MDAw MCkKPiArCQkJCWxpbmtfcmF0ZSA9IDE2MjAwMDsKPiArCQkJZWxzZQo+ICsJCQkJbGlua19yYXRl X25vdF9mb3VuZCA9IGZhbHNlOwo+ICsJCX0KPiArCQlpZiAocmV0KSB7Cj4gKwkJCURSTV9ERUJV R19LTVMoIkxpbmsgVHJhaW5pbmcgc3VjY2Vzc2Z1bFxuIik7Cj4gKwkJCWludGVsX2RwX3N0b3Bf bGlua190cmFpbihpbnRlbF9kcCk7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KPiArCWlmICgh bGFuZV9jb3VudCkKPiArCQlEUk1fRVJST1IoIkxpbmsgVHJhaW5pbmcgRmFpbGVkXG4iKTsKPiAr Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+IGluZGV4IDA3ZjAxNTkuLjBkZjQ5ZTggMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4g QEAgLTMwOSw5ICszMDksMTUgQEAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQkJCURQX1RSQUlOSU5HX1BBVFRFUk5fRElTQUJMRSk7 Cj4gIH0KPiAgCj4gLXZvaWQKPiArYm9vbAo+ICBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdf Y2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+IC0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFu bmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7Cj4gKwlib29sIHJldDsKPiArCj4gKwlpZiAoaW50 ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCkpIHsKPiArCQlyZXQg PSBpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsK PiArCQlpZiAocmV0KQo+ICsJCQlyZXR1cm4gdHJ1ZTsKPiArCX0KPiArCXJldHVybiBmYWxzZTsK PiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZTViYzk3Ni4uMzQyYTJkNSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTExNjAsNiArMTE2MCw4IEBAIHZv aWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg CQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gIHZvaWQgaW50ZWxf ZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBzdGF0 ZSk7Cj4gIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApOwo+ICtib29sIGludGVsX2RkaV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIGludCBtYXhfbGlua19yYXRlLAo+ICsJCQkgdWludDhfdCBtYXhfbGFuZV9jb3VudCwgYm9v bCBsaW5rX21zdCk7Cj4gIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZGRpX2dldF9s aW5rX2RwbGwoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkJCQkJICBpbnQgY2xvY2sp Owo+ICB1bnNpZ25lZCBpbnQgaW50ZWxfZmJfYWxpZ25faGVpZ2h0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gQEAgLTEzODEsNyArMTM4Myw3IEBAIGJvb2wgaW50ZWxfZHBfaW5pdF9jb25uZWN0 b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIHZvaWQgaW50 ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCSAg ICAgIGludCBsaW5rX3JhdGUsIHVpbnQ4X3QgbGFuZV9jb3VudCwKPiAgCQkJICAgICAgYm9vbCBs aW5rX21zdCk7Cj4gLXZvaWQgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKTsKPiArYm9vbCBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApOwo+ICB2b2lkIGludGVsX2RwX3N0b3BfbGlua190cmFpbihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiAgdm9pZCBpbnRlbF9kcF9zaW5rX2RwbXMoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1vZGUpOwo+ICB2b2lkIGludGVsX2RwX2VuY29kZXJf cmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiAtLSAKPiAxLjkuMQo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK