From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 5/5] drm/i915: Link Rate fallback on Link training failure Date: Tue, 25 Oct 2016 11:37:22 -0700 Message-ID: <20161025183722.GB5184@intel.com> References: <1477093543-11622-1-git-send-email-manasi.d.navare@intel.com> <1477093543-11622-6-git-send-email-manasi.d.navare@intel.com> <87r374mxlg.fsf@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 5E55B6E68B for ; Tue, 25 Oct 2016 18:35:51 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87r374mxlg.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: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMjUsIDIwMTYgYXQgMDM6MTc6NDdQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gU2F0LCAyMiBPY3QgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJl QGludGVsLmNvbT4gd3JvdGU6Cj4gPiBJZiBsaW5rIHRyYWluaW5nIGF0IGEgbGluayByYXRlIG9w dGltYWwgZm9yIGEgcGFydGljdWxhcgo+ID4gbW9kZSBmYWlscyBkdXJpbmcgbW9kZXNldCdzIGF0 b21pYyBjb21taXQgcGhhc2UsIHRoZW4gd2UKPiA+IGxldCB0aGUgbW9kZXNldCBjb21wbGV0ZSBh bmQgdGhlbiByZXRyeS4gV2Ugc2F2ZSB0aGUgbGluayByYXRlCj4gPiB2YWx1ZSBhdCB3aGljaCBs aW5rIHRyYWluaW5nIGZhaWxlZCBhbmQgdXNlIGEgbG93ZXIgbGluayByYXRlCj4gPiB0byBwcnVu ZSB0aGUgbW9kZXMuIEl0IHdpbGwgcmVkbyB0aGUgbW9kZXNldCBvbiB0aGUgY3VycmVudCBtb2Rl Cj4gPiBhdCBsb3dlciBsaW5rIHJhdGUgb3IgaWYgdGhlIGN1cnJlbnQgbW9kZSBnZXRzIHBydW5l ZCBkdWUgdG8gbG93ZXIKPiA+IGxpbmsgY29uc3RyYWludHMgdGhlbiwgaXQgd2lsbCBzZW5kIGEg aG90cGx1ZyB1ZXZlbnQgZm9yIHVzZXJzcGFjZQo+ID4gdG8gaGFuZGxlIGl0Lgo+ID4KPiA+IFRo aXMgaXMgYWxzbyByZXF1aXJlZCB0byBwYXNzIERQIENUUyB0ZXN0cyA0LjMuMS4zLCA0LjMuMS40 LAo+ID4gNC4zLjEuNi4KPiA+Cj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNv bT4KPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAg ICAgICAgfCAxNSArKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAg ICAgICAgICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgfCAxMiArKystLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgICB8ICA2ICsrLQo+ID4g IDQgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiA+Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gaW5kZXggZmIxOGQ2OS4uNDUxNDMzYiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gQEAgLTE3MTIsNiArMTcxMiw4IEBA IHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVs X2RwKCZlbmNvZGVyLT5iYXNlKTsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0g aW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gPiArCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7 Cj4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxfY29ubmVjdG9y LT5iYXNlOwo+ID4gIAo+ID4gIAlpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGxp bmtfcmF0ZSwgbGFuZV9jb3VudCwKPiA+ICAJCQkJIGxpbmtfbXN0KTsKPiA+IEBAIC0xNzIyLDcg KzE3MjQsMTggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCWludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMo ZW5jb2Rlcik7Cj4gPiAgCWludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoZW5jb2Rlcik7Cj4gPiAg CWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PTik7Cj4gPiAtCWlu dGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ID4gKwlpZiAoIWludGVsX2RwX3N0 YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApKSB7Cj4gPiArCQlEUk1fRVJST1IoIkxpbmsgVHJhaW5p bmcgZmFpbGVkIGF0IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50ID0gJWRcbiIsCj4gPiArCQkJ ICBsaW5rX3JhdGUsIGxhbmVfY291bnQpOwo+ID4gKwkJaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFp bGVkID0gdHJ1ZTsKPiA+ICsJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUg PSBsaW5rX3JhdGU7Cj4gPiArCQlpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWRfbGFuZV9jb3Vu dCA9IGxhbmVfY291bnQ7Cj4gCj4gSSB0aGluayBldmVudHVhbGx5IHlvdSdsbCBuZWVkIHRvIHN0 b3JlIGEgbGlzdCAoYXJyYXkpIG9mIGZhaWxpbmcgbGluawo+IHJhdGUsIGxhbmUgY291bnQgcGFp cnMsIG5vdCBqdXN0IHRoZSBsYXN0IHRoYXQgZmFpbGVkLiBOb3cgeW91IHJlc3RyaWN0Cj4gdGhl IGxpbmsgY29uZmlnIGNvbXB1dGF0aW9uIHRvIG9ubHkgcmVkdWNpbmcgdGhlIGxpbmsgcmF0ZS4g QnV0Cj4gY3VycmVudGx5IChmb3Igd2hhdGV2ZXIgcmVhc29uLCBpdCdzIGZsaXAtZmxvcHBlZCB0 b28gbWFueSB0aW1lcykgd2UKPiBzdGFydCB3aXRoIHdpZGUgJiBzbG93LCBtZWFuaW5nIHRoYXQg aW4gbWFueSBjYXNlcyB3ZSd2ZSBhbHJlYWR5Cj4gZXhoYXVzdGVkIHRoZSBvcHRpb24gdG8gZ28g c2xvd2VyLiBJZiBvcHRpbWFsIGZhaWxzLCBtYXliZSB3ZSBuZWVkIHRvCj4gdHJ5IG5hcnJvdyAm IGZhc3QgaW5zdGVhZC4KPiAKPiBCUiwKPiBKYW5pLgo+IAo+CgpTbyB0aGUgRFAgMS4yIHNwZWMg c2F5cyB0aGF0IHdlIG5lZWQgdG8gZmlyc3QgdHJ5IHJlZHVjaW5nIHRoZSBsaW5rIHJhdGUKYWxs IHRoZSB3YXkgdG8gUkJSIHdpdGhvdXQgcmVkdWNpbmcgdGhlIGxhbmUgY291bnQgYW5kIGlmIHRo YXQgZmFpbHMgdGhlbgpqdXN0IGZhaWwgdGhlIGxpbmsgdHJhaW5pbmcuIERQIHNwZWMgMS4zIGFs c28gcmVkdWNlcyB0aGUgbGFuZSBjb3VudCBhZnRlcgpyZWR1Y2luZyB0aGUgbGluayByYXRlIGFs bCB0aGUgd2F5IHRvIFJCUiwgdGhlbiBpdCBzaG91bGQgdHJ5IGxvd2VyCmxhbmUgY291bnQgYW5k IGhpZ2hlc3QgbGluayByYXRlIGFnYWluLiBCdXQgSSBoYXZlbnQgZXhwYW5kZWQgdGhpcyB0byBp bmNsdWRlCnNwZWMgMS4zIHlldCwgdGhpcyBjYW4gYmUgYWRkZWQgbGF0ZXIuIFRoZSBEUCBjb21w bGlhbmNlIG9ubHkgZm9sbG93cwpDVFMgYWNjb3JkaW5nIHRPIERQIFNwZWMgMS4yIGFuZCB0aGV5 IHdvdWxkIGJlIGluY2x1ZGluZyBsYW5lIGNvdW50CnJlZHVjdGlvbiBsYXRlciBmb3IgQ1RTIDEu My4KCkJ1dCBpbiBlaXRoZXIgY2FzZSBJIGRvbnQgdGhpbmsgd2UgbmVlZCBhbiBhcnJheSwgYXQg bGluayB0cmFpbiBmYWlsdXJlLCB3ZSBqdXN0IG5lZWQgdG8ga25vdwp0aGUgZmFpbGVkIGxpbmsg cmF0ZSBhbmQgbGFuZSBjb3VudCBiYXNlZCBvbiB3aGljaCB0aGUgbmV4dCBsb3dlciBsaW5rIHJh dGUvbGFuZQpjb3VudCB2YWx1ZSBjYW4gYmUgZGVjaWRlZCBoZXJlIGR1cmluZyBtb2RlIHZhbGlk YXRpb24gYW5kIGJlIHVzZWQgZHVyaW5nCmNvbXB1dGUgY29uZmlnLiAKCk1hbmFzaQo+ID4gKwkJ LyogU2NoZWR1bGUgYSBIb3RwbHVnIFVldmVudCB0byB1c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNl dCAqLwo+ID4gKwkJc2NoZWR1bGVfd29yaygmY29ubmVjdG9yLT5pOTE1X21vZGVzZXRfcmV0cnlf d29yayk7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWQg PSBmYWxzZTsKPiA+ICsJfQo+ID4gKwo+ID4gIAlpZiAocG9ydCAhPSBQT1JUX0EgfHwgSU5URUxf R0VOKGRldl9wcml2KSA+PSA5KQo+ID4gIAkJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVs X2RwKTsKPiA+ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IGMxOTJlMTgu LjVkNWY0YTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMzEzLDYg KzMxMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCj4gPiAgCWludCB0YXJnZXRfY2xvY2sgPSBtb2RlLT5jbG9jazsKPiA+ ICAJaW50IG1heF9yYXRlLCBtb2RlX3JhdGUsIG1heF9sYW5lcywgbWF4X2xpbmtfY2xvY2s7Cj4g PiAgCWludCBtYXhfZG90Y2xrOwo+ID4gKwlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JU RURfUkFURVNdID0ge307Cj4gPiAgCj4gPiAgCW1heF9kb3RjbGsgPSBpbnRlbF9kcF9kb3duc3Ry ZWFtX21heF9kb3RjbG9jayhpbnRlbF9kcCk7Cj4gPiAgCj4gPiBAQCAtMzI2LDggKzMyNywyNyBA QCBzdGF0aWMgaW50IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLAo+ID4gIAkJdGFyZ2V0X2Nsb2NrID0gZml4ZWRfbW9kZS0+Y2xvY2s7Cj4gPiAgCX0K PiA+ICAKPiA+IC0JbWF4X2xpbmtfY2xvY2sgPSBpbnRlbF9kcF9tYXhfbGlua19yYXRlKGludGVs X2RwKTsKPiA+IC0JbWF4X2xhbmVzID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHAp Owo+ID4gKwkvKiBQcnVuZSB0aGUgbW9kZXMgYmFzZWQgb24gdGhlIGxpbmsgcmF0ZSB0aGF0IGZh aWxlZCAqLwo+ID4gKwlpZiAoaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkX2xpbmtfcmF0ZSkg ewo+ID4gKwkJaW50ZWxfZHAtPmxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9p bmRleChpbnRlbF9kcCwKPiA+ICsJCQkJCQkJCSAgICAgY29tbW9uX3JhdGVzLAo+ID4gKwkJCQkJ CQkJICAgICBpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWRfbGlua19yYXRlKTsKPiA+ICsJCWlm IChpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4ID4gMCkgewo+ID4gKwkJCW1heF9saW5rX2Nsb2Nr ID0gY29tbW9uX3JhdGVzW2ludGVsX2RwLT5saW5rX3JhdGVfaW5kZXggLSAxXTsKPiA+ICsJCQlt YXhfbGFuZXMgPSBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gPiArCQl9IGVs c2Ugewo+ID4gKwkJCS8qIEhlcmUgd2UgY2FuIGxvd2VyIHRoZSBsYW5lIGNvdW50LCBidXQgdGhh dCB3aWxsIGJlCj4gPiArCQkJICogYWRkZWQgZm9yIERQIFNwZWMgMS4zCj4gPiArCQkJICovCj4g PiArCQkJRFJNX0VSUk9SKCJObyBWYWxpZCBNb2RlIFN1cHBvcnRlZCBmb3IgdGhpcyBMaW5rXG4i KTsKPiA+ICsJCQlpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWRfbGlua19yYXRlID0gMDsKPiA+ ICsJCQlpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4ID0gLTE7Cj4gPiArCQkJaW50ZWxfZHAtPmxp bmtfdHJhaW5fZmFpbGVkID0gZmFsc2U7Cj4gPiArCQl9Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlt YXhfbGlua19jbG9jayA9IGludGVsX2RwX21heF9saW5rX3JhdGUoaW50ZWxfZHApOwo+ID4gKwkJ bWF4X2xhbmVzID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4gKwl9Cj4g PiAgCj4gPiAgCW1heF9yYXRlID0gaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShtYXhfbGlua19jbG9j aywgbWF4X2xhbmVzKTsKPiA+ICAJbW9kZV9yYXRlID0gaW50ZWxfZHBfbGlua19yZXF1aXJlZCh0 YXJnZXRfY2xvY2ssIDE4KTsKPiA+IEBAIC0xNjE5LDYgKzE2MzksMTQgQEAgc3RhdGljIGludCBp bnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAlpZiAo YWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTENMSykKPiA+ICAJCXJldHVy biBmYWxzZTsKPiA+ICAKPiA+ICsJLyogRmFsbCBiYWNrIHRvIGxvd2VyIGxpbmsgcmF0ZSBpbiBj YXNlIG9mIGZhaWx1cmUgaW4gcHJldmlvdXMgbW9kZXNldCAqLwo+ID4gKwlpZiAoaW50ZWxfZHAt PmxpbmtfdHJhaW5fZmFpbGVkX2xpbmtfcmF0ZSkgewo+ID4gKwkJbWluX2xhbmVfY291bnQgPSBt YXhfbGFuZV9jb3VudDsKPiA+ICsJCW1pbl9jbG9jayA9IG1heF9jbG9jayA9IGludGVsX2RwLT5s aW5rX3JhdGVfaW5kZXggLSAxOwo+ID4gKwkJaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkX2xp bmtfcmF0ZSA9IDA7Cj4gPiArCQlpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4ID0gLTE7Cj4gPiAr CX0KPiA+ICsKPiA+ICAJRFJNX0RFQlVHX0tNUygiRFAgbGluayBjb21wdXRhdGlvbiB3aXRoIG1h eCBsYW5lIGNvdW50ICVpICIKPiA+ICAJCSAgICAgICJtYXggYncgJWQgcGl4ZWwgY2xvY2sgJWlL SHpcbiIsCj4gPiAgCQkgICAgICBtYXhfbGFuZV9jb3VudCwgY29tbW9uX3JhdGVzW21heF9jbG9j a10sCj4gPiBAQCAtNTY4OSw2ICs1NzE3LDM5IEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0 X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAlyZXR1cm4gZmFsc2U7 Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RwX21vZGVzZXRfcmV0cnlfd29y a19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOwo+ID4g KwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiA+ICsJYm9vbCB2ZXJib3NlX3BydW5l ID0gdHJ1ZTsKPiA+ICsJYm9vbCByZXByb2JlID0gZmFsc2U7Cj4gPiArCj4gPiArCWNvbm5lY3Rv ciA9IGNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmNvbm5lY3RvciksCj4gPiArCQkJCSBpOTE1 X21vZGVzZXRfcmV0cnlfd29yayk7Cj4gPiArCWludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAo Y29ubmVjdG9yKTsKPiA+ICsKPiA+ICsJLyogR3JhYiB0aGUgbG9ja3MgYmVmb3JlIGNoYW5naW5n IGNvbm5lY3RvciBwcm9wZXJ0eSovCj4gPiArCW11dGV4X2xvY2soJmNvbm5lY3Rvci0+ZGV2LT5t b2RlX2NvbmZpZy5tdXRleCk7Cj4gPiArCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNd XG4iLCBjb25uZWN0b3ItPmJhc2UuaWQsCj4gPiArCQkgICAgICBjb25uZWN0b3ItPm5hbWUpOwo+ ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPm1vZGVzLCBoZWFkKSB7 Cj4gPiArCQltb2RlLT5zdGF0dXMgPSBpbnRlbF9kcF9tb2RlX3ZhbGlkKGNvbm5lY3RvciwKPiA+ ICsJCQkJCQkgICBtb2RlKTsKPiA+ICsJCWlmIChtb2RlLT5zdGF0dXMgIT0gTU9ERV9PSykKPiA+ ICsJCQlyZXByb2JlID0gdHJ1ZTsKPiA+ICsJfQo+ID4gKwlkcm1fbW9kZV9wcnVuZV9pbnZhbGlk KGNvbm5lY3Rvci0+ZGV2LCAmY29ubmVjdG9yLT5tb2RlcywKPiA+ICsJCQkgICAgICAgdmVyYm9z ZV9wcnVuZSk7Cj4gPiArCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5kZXYtPm1vZGVfY29uZmln Lm11dGV4KTsKPiA+ICsJaWYgKHJlcHJvYmUpIHsKPiA+ICsJCS8qIFNlbmQgSG90cGx1ZyB1ZXZl bnQgc28gdXNlcnNwYWNlIGNhbiByZXByb2JlICovCj4gPiArCQlkcm1fa21zX2hlbHBlcl9ob3Rw bHVnX2V2ZW50KGNvbm5lY3Rvci0+ZGV2KTsKPiA+ICsJfQo+ID4gKwlpZiAoaW50ZWxfZHAtPmxp bmtfdHJhaW5fZmFpbGVkKQo+ID4gKwkJZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX21vZGVz ZXQoY29ubmVjdG9yKTsKPiA+ICt9Cj4gPiArCj4gPiAgYm9vbAo+ID4gIGludGVsX2RwX2luaXRf Y29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ID4g IAkJCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiA+IEBAIC01NzAx LDYgKzU3NjIsMTAgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPnBvcnQ7Cj4gPiAgCWludCB0eXBlOwo+ID4gIAo+ID4gKwkvKiBJbml0aWFsaXplIHRoZSB3 b3JrIGZvciBtb2Rlc2V0IGluIGNhc2Ugb2YgbGluayB0cmFpbiBmYWlsdXJlICovCj4gPiArCUlO SVRfV09SSygmY29ubmVjdG9yLT5pOTE1X21vZGVzZXRfcmV0cnlfd29yaywKPiA+ICsJCSAgaW50 ZWxfZHBfbW9kZXNldF9yZXRyeV93b3JrX2ZuKTsKPiA+ICsKPiA+ICAJaWYgKFdBUk4oaW50ZWxf ZGlnX3BvcnQtPm1heF9sYW5lcyA8IDEsCj4gPiAgCQkgIk5vdCBlbm91Z2ggbGFuZXMgKCVkKSBm b3IgRFAgb24gcG9ydCAlY1xuIiwKPiA+ICAJCSBpbnRlbF9kaWdfcG9ydC0+bWF4X2xhbmVzLCBw b3J0X25hbWUocG9ydCkpKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX2xpbmtfdHJhaW5pbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xp bmtfdHJhaW5pbmcuYwo+ID4gaW5kZXggMDA0OGI1Mi4uMTBmODFhYiAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4gPiBAQCAtMzEw LDkgKzMxMCwxNSBAQCB2b2lkIGludGVsX2RwX3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ID4gIAkJCQlEUF9UUkFJTklOR19QQVRURVJOX0RJU0FCTEUpOwo+ID4g IH0KPiA+ICAKPiA+IC12b2lkCj4gPiArYm9vbAo+ID4gIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCWludGVsX2RwX2xpbmtf dHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+ID4gLQlpbnRlbF9kcF9saW5rX3Ry YWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsKPiA+ICsJYm9vbCByZXQ7Cj4g PiArCj4gPiArCWlmIChpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVs X2RwKSkgewo+ID4gKwkJcmV0ID0gaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFs aXphdGlvbihpbnRlbF9kcCk7Cj4gPiArCQlpZiAocmV0KQo+ID4gKwkJCXJldHVybiB0cnVlOwo+ ID4gKwl9Cj4gPiArCXJldHVybiBmYWxzZTsKPiA+ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+ID4gaW5kZXggNGU5MGIwNy4uZDNmY2ZmYyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gQEAgLTg5MCw2ICs4OTAsMTAgQEAgc3RydWN0IGludGVsX2RwIHsKPiA+ ICAJdWludDMyX3QgRFA7Cj4gPiAgCWludCBsaW5rX3JhdGU7Cj4gPiAgCXVpbnQ4X3QgbGFuZV9j b3VudDsKPiA+ICsJaW50IGxpbmtfdHJhaW5fZmFpbGVkX2xpbmtfcmF0ZTsKPiA+ICsJdWludDhf dCBsaW5rX3RyYWluX2ZhaWxlZF9sYW5lX2NvdW50Owo+ID4gKwlpbnQgbGlua19yYXRlX2luZGV4 Owo+ID4gKwlib29sIGxpbmtfdHJhaW5fZmFpbGVkOwo+ID4gIAl1aW50OF90IHNpbmtfY291bnQ7 Cj4gPiAgCWJvb2wgbGlua19tc3Q7Cj4gPiAgCWJvb2wgaGFzX2F1ZGlvOwo+ID4gQEAgLTEzOTQs NyArMTM5OCw3IEBAIGJvb2wgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gPiAgdm9pZCBpbnRlbF9kcF9zZXRfbGlua19w YXJhbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCQkgICAgICBpbnQgbGlua19y YXRlLCB1aW50OF90IGxhbmVfY291bnQsCj4gPiAgCQkJICAgICAgYm9vbCBsaW5rX21zdCk7Cj4g PiAtdm9pZCBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApOwo+ID4gK2Jvb2wgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKTsKPiA+ICB2b2lkIGludGVsX2RwX3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKTsKPiA+ICB2b2lkIGludGVsX2RwX3NpbmtfZHBtcyhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCBpbnQgbW9kZSk7Cj4gPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jl c2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gCj4gLS0gCj4gSmFuaSBOaWt1bGEs IEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=