From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v3 4/4] drm/i915: Implement Link Rate fallback on Link training failure Date: Mon, 7 Nov 2016 11:24:39 -0800 Message-ID: <20161107192439.GA24899@intel.com> References: <1477703245-27375-5-git-send-email-manasi.d.navare@intel.com> <1478120139-10763-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84F6F6E413 for ; Mon, 7 Nov 2016 19:22:43 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1478120139-10763-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: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SmFuaSwgY291bGQgeW91IHBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGlzIHBhdGNoPyAKSSBoYXZl IGFkZHJlc3NlZCB5b3VyIGNvbW1lbnRzIG9uIHRoZSBwcmV2aW91cyByZXZpc2lvbi4KVGhlIGNv bW1vbl9yYXRlcyBhcnJheSBjYW4gYmUgbW92ZWQgaW50byBJbnRlbCBkcApzdHJ1Y3R1cmUgaW4g YSBmb2xsb3cgdXAgcGF0Y2ggc2luY2UgdGhhdCB3b3VsZCByZXF1aXJlIGNoYW5nZXMKaW4gYSBs b3Qgb2YgcGxhY2VzIG90aGVyIHRoYW4gdGhlIGxpbmsgcmF0ZSBmYWxsYmFjayBpbXBsZW1lbnRh dGlvbi4KClJlZ2FyZHMKTWFuYXNpCgpPbiBXZWQsIE5vdiAwMiwgMjAxNiBhdCAwMTo1NTozOVBN IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+IElmIGxpbmsgdHJhaW5pbmcgYXQgYSBsaW5r IHJhdGUgb3B0aW1hbCBmb3IgYSBwYXJ0aWN1bGFyCj4gbW9kZSBmYWlscyBkdXJpbmcgbW9kZXNl dCdzIGF0b21pYyBjb21taXQgcGhhc2UsIHRoZW4gd2UKPiBsZXQgdGhlIG1vZGVzZXQgY29tcGxl dGUgYW5kIHRoZW4gcmV0cnkuIFdlIHNhdmUgdGhlIGxpbmsgcmF0ZQo+IHZhbHVlIGF0IHdoaWNo IGxpbmsgdHJhaW5pbmcgZmFpbGVkLCB1cGRhdGUgdGhlIGxpbmsgc3RhdHVzIHByb3BlcnR5Cj4g dG8gIkJBRCIgYW5kIHVzZSBhIGxvd2VyIGxpbmsgcmF0ZSB0byBwcnVuZSB0aGUgbW9kZXMuIEl0 IHdpbGwgcmVkbwo+IHRoZSBtb2Rlc2V0IG9uIHRoZSBjdXJyZW50IG1vZGUgYXQgbG93ZXIgbGlu ayByYXRlIG9yIGlmIHRoZSBjdXJyZW50Cj4gbW9kZSBnZXRzIHBydW5lZCBkdWUgdG8gbG93ZXIg bGluayBjb25zdHJhaW50cyB0aGVuLCBpdCB3aWxsIHNlbmQgYQo+IGhvdHBsdWcgdWV2ZW50IGZv ciB1c2Vyc3BhY2UgdG8gaGFuZGxlIGl0Lgo+IAo+IFRoaXMgaXMgYWxzbyByZXF1aXJlZCB0byBw YXNzIERQIENUUyB0ZXN0cyA0LjMuMS4zLCA0LjMuMS40LAo+IDQuMy4xLjYuCj4gCj4gdjM6Cj4g KiBTZXQgbGluayBzdGF0dXMgcHJvcGVydHkgdG8gQkFkIHVuY29uZGl0aW9uYWxseSAoSmFuaSBO aWt1bGEpCj4gKiBEb250IHVzZSB0d28gc2VwYXJhdGUgdmFyaWFibGVzIGxpbmtfdHJhaW5fZmFp bGVkIGFuZCBsaW5rX3N0YXR1cwo+IHRvIGluZGljYXRlIHNhbWUgdGhpbmcgKEphbmkgTmlrdWxh KQo+IHYyOgo+ICogU3F1YXNoZWQgYSBmZXcgcGF0Y2hlcyAoSmFuaSBOaWt1bGEpCj4gCj4gQ2M6 IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJl IDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYyAgICAgICAgICAgfCAgNyArKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMgICAgICAgICAgICAgIHwgMjIgKysrKysrKystCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysr KysrKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5n LmMgfCAxMiArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAg ICAgICAgfCAgNiArKy0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwgMTIg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCA3 NWFkMDFkLi45NGIwYjNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBA QCAtNTE5LDYgKzUxOSwxMyBAQCBzdGF0aWMgaW50IGhhbmRsZV9jb25mbGljdGluZ19lbmNvZGVy cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkJICAgICAgIGNvbm5lY3Rv cl9zdGF0ZSk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiArCj4gKwkJaWYgKGNv bm5lY3Rvci0+c3RhdGUtPmNydGMpIHsKPiArCQkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0 X2V4aXN0aW5nX2NydGNfc3RhdGUoc3RhdGUsCj4gKwkJCQkJCQkJCWNvbm5lY3Rvci0+c3RhdGUt PmNydGMpOwo+ICsJCQlpZiAoY29ubmVjdG9yLT5saW5rX3N0YXR1cyA9PSBEUk1fTU9ERV9MSU5L X1NUQVRVU19CQUQpCj4gKwkJCQljcnRjX3N0YXRlLT5jb25uZWN0b3JzX2NoYW5nZWQgPSB0cnVl Owo+ICsJCX0KPiAgCX0KPiAgCj4gIAkvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5k ZXggOTM4YWM0ZC4uYTU5ZjhkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAg LTE2ODQsNiArMTY4NCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCWVudW0g cG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRf Y29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9j b25uZWN0b3ItPmJhc2U7Cj4gIAo+ICAJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2Rw LCBsaW5rX3JhdGUsIGxhbmVfY291bnQsCj4gIAkJCQkgbGlua19tc3QpOwo+IEBAIC0xNjk0LDcg KzE2OTYsMjUgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVu Y29kZXIpOwo+ICAJaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhlbmNvZGVyKTsKPiAgCWludGVs X2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PTik7Cj4gLQlpbnRlbF9kcF9z dGFydF9saW5rX3RyYWluKGludGVsX2RwKTsKPiArCWlmICghaW50ZWxfZHBfc3RhcnRfbGlua190 cmFpbihpbnRlbF9kcCkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIGZhaWxl ZCBhdCBsaW5rIHJhdGUgPSAlZCwgbGFuZSBjb3VudCA9ICVkIiwKPiArCQkJICAgICAgbGlua19y YXRlLCBsYW5lX2NvdW50KTsKPiArCQljb25uZWN0b3ItPmxpbmtfc3RhdHVzID0gRFJNX01PREVf TElOS19TVEFUVVNfQkFEOwo+ICsJCWludGVsX2RwX2dldF9saW5rX3RyYWluX2ZhbGxiYWNrX3Zh bHVlcyhpbnRlbF9kcCwgbGlua19yYXRlLAo+ICsJCQkJCQkJbGFuZV9jb3VudCk7Cj4gKwkJLyog U2NoZWR1bGUgYSBIb3RwbHVnIFVldmVudCB0byB1c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNldCAq Lwo+ICsJCXNjaGVkdWxlX3dvcmsoJmludGVsX2Nvbm5lY3Rvci0+bW9kZXNldF9yZXRyeV93b3Jr KTsKPiArCX0gZWxzZSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiTGluayBUcmFpbmluZyBQYXNzZWQg YXQgTGluayBSYXRlID0gJWQsIExhbmUgY291bnQgPSAlZCIsCj4gKwkJCSAgICAgIGxpbmtfcmF0 ZSwgbGFuZV9jb3VudCk7Cj4gKwkJaW50ZWxfZHAtPmZhbGxiYWNrX2xpbmtfcmF0ZV9pbmRleCA9 IC0xOwo+ICsJCWludGVsX2RwLT5mYWxsYmFja19saW5rX3JhdGUgPSAwOwo+ICsJCWludGVsX2Rw LT5mYWxsYmFja19sYW5lX2NvdW50ID0gMDsKPiArCQljb25uZWN0b3ItPmxpbmtfc3RhdHVzID0g RFJNX01PREVfTElOS19TVEFUVVNfR09PRDsKPiArCQlpbnRlbF9kcF9zZXRfbGlua19zdGF0dXNf cHJvcGVydHkoY29ubmVjdG9yLAo+ICsJCQkJCQkgIERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0Qp Owo+ICsJfQo+ICsKPiAgCWlmIChwb3J0ICE9IFBPUlRfQSB8fCBJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkpCj4gIAkJaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiAgfQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGZiNGZjZGQuLjY1OWIxN2YgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtMzEwLDkgKzMxMCw2IEBAIHZvaWQgaW50ZWxfZHBfZ2V0 X2xpbmtfdHJhaW5fZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g IAlpbnQgY29tbW9uX2xlbjsKPiAgCWludCBsaW5rX3JhdGVfaW5kZXggPSAtMTsKPiAgCj4gLQlp ZiAoIWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZCkKPiAtCQlyZXR1cm47Cj4gLQo+ICAJY29t bW9uX2xlbiA9IGludGVsX2RwX2NvbW1vbl9yYXRlcyhpbnRlbF9kcCwgY29tbW9uX3JhdGVzKTsK PiAgCWxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwK PiAgCQkJCQkJICAgY29tbW9uX3JhdGVzLAo+IEBAIC0zMjcsNyArMzI0LDYgQEAgdm9pZCBpbnRl bF9kcF9nZXRfbGlua190cmFpbl9mYWxsYmFja192YWx1ZXMoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKPiAgCQlpbnRlbF9kcC0+ZmFsbGJhY2tfbGFuZV9jb3VudCA9IGxhbmVfY291bnQgPj4g MTsKPiAgCX0gZWxzZSB7Cj4gIAkJRFJNX0VSUk9SKCJMaW5rIFRyYWluaW5nIFVuc3VjY2Vzc2Z1 bFxuIik7Cj4gLQkJaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkID0gZmFsc2U7Cj4gIAl9Cj4g IH0KPiAgCj4gQEAgLTM1NCw4ICszNTAsMTQgQEAgdm9pZCBpbnRlbF9kcF9nZXRfbGlua190cmFp bl9mYWxsYmFja192YWx1ZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQl0YXJnZXRf Y2xvY2sgPSBmaXhlZF9tb2RlLT5jbG9jazsKPiAgCX0KPiAgCj4gLQltYXhfbGlua19jbG9jayA9 IGludGVsX2RwX21heF9saW5rX3JhdGUoaW50ZWxfZHApOwo+IC0JbWF4X2xhbmVzID0gaW50ZWxf ZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ICsJLyogUHJ1bmUgdGhlIG1vZGVzIHVzaW5n IHRoZSBmYWxsYmFjayBsaW5rIHJhdGUvbGFuZSBjb3VudCAqLwo+ICsJaWYgKGNvbm5lY3Rvci0+ bGlua19zdGF0dXMgPT0gRFJNX01PREVfTElOS19TVEFUVVNfQkFEKSB7Cj4gKwkJbWF4X2xpbmtf Y2xvY2sgPSBpbnRlbF9kcC0+ZmFsbGJhY2tfbGlua19yYXRlOwo+ICsJCW1heF9sYW5lcyA9IGlu dGVsX2RwLT5mYWxsYmFja19sYW5lX2NvdW50Owo+ICsJfSBlbHNlIHsKPiArCQltYXhfbGlua19j bG9jayA9IGludGVsX2RwX21heF9saW5rX3JhdGUoaW50ZWxfZHApOwo+ICsJCW1heF9sYW5lcyA9 IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiArCX0KPiAgCj4gIAltYXhfcmF0 ZSA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobWF4X2xpbmtfY2xvY2ssIG1heF9sYW5lcyk7Cj4g IAltb2RlX3JhdGUgPSBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKHRhcmdldF9jbG9jaywgMTgpOwo+ IEBAIC0xNTkzLDYgKzE1OTUsNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19w b3J0KGludGVsX2RwKS0+cG9ydDsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7 Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+ YmFzZTsKPiAgCWludCBsYW5lX2NvdW50LCBjbG9jazsKPiAgCWludCBtaW5fbGFuZV9jb3VudCA9 IDE7Cj4gIAlpbnQgbWF4X2xhbmVfY291bnQgPSBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRl bF9kcCk7Cj4gQEAgLTE2NDAsNiArMTY0MywxMiBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1 dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTENMSykKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICsJ LyogRmFsbCBiYWNrIHRvIGxvd2VyIGxpbmsgcmF0ZSBpbiBjYXNlIG9mIGZhaWx1cmUgaW4gcHJl dmlvdXMgbW9kZXNldCAqLwo+ICsJaWYgKGNvbm5lY3Rvci0+bGlua19zdGF0dXMgPT0gRFJNX01P REVfTElOS19TVEFUVVNfQkFEKSB7Cj4gKwkJbWluX2xhbmVfY291bnQgPSBtYXhfbGFuZV9jb3Vu dCA9IGludGVsX2RwLT5mYWxsYmFja19sYW5lX2NvdW50Owo+ICsJCW1pbl9jbG9jayA9IG1heF9j bG9jayA9IGludGVsX2RwLT5mYWxsYmFja19saW5rX3JhdGVfaW5kZXg7Cj4gKwl9Cj4gKwo+ICAJ RFJNX0RFQlVHX0tNUygiRFAgbGluayBjb21wdXRhdGlvbiB3aXRoIG1heCBsYW5lIGNvdW50ICVp ICIKPiAgCQkgICAgICAibWF4IGJ3ICVkIHBpeGVsIGNsb2NrICVpS0h6XG4iLAo+ICAJCSAgICAg IG1heF9sYW5lX2NvdW50LCBjb21tb25fcmF0ZXNbbWF4X2Nsb2NrXSwKPiBAQCAtNDQyMyw2ICs0 NDMyLDEyIEBAIHN0YXRpYyBib29sIGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCWludGVsX2RwLT5jb21wbGlhbmNlX3Rl c3RfYWN0aXZlID0gMDsKPiAgCQlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPSAwOwo+ ICAJCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfZGF0YSA9IDA7Cj4gKwkJaW50ZWxfZHAtPmZh bGxiYWNrX2xpbmtfcmF0ZV9pbmRleCA9IC0xOwo+ICsJCWludGVsX2RwLT5mYWxsYmFja19saW5r X3JhdGUgPSAwOwo+ICsJCWludGVsX2RwLT5mYWxsYmFja19sYW5lX2NvdW50ID0gMDsKPiArCQlj b25uZWN0b3ItPmxpbmtfc3RhdHVzID0gRFJNX01PREVfTElOS19TVEFUVVNfR09PRDsKPiArCQlp bnRlbF9kcF9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkoY29ubmVjdG9yLAo+ICsJCQkJCQkgIERS TV9NT0RFX0xJTktfU1RBVFVTX0dPT0QpOwo+ICAKPiAgCQlpZiAoaW50ZWxfZHAtPmlzX21zdCkg ewo+ICAJCQlEUk1fREVCVUdfS01TKCJNU1QgZGV2aWNlIG1heSBoYXZlIGRpc2FwcGVhcmVkICVk IHZzICVkXG4iLAo+IEBAIC00NTE0LDYgKzQ1MjksMTEgQEAgc3RhdGljIGJvb2wgaW50ZWxfZGln aXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKPiAgCQkgICAgICBjb25uZWN0 b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gIAo+ICsJLyogSWYgdGhpcyBpcyBhIHJl dHJ5IGR1ZSB0byBsaW5rIHRyaWFuaW5nIGZhaWx1cmUgKi8KPiArCWlmIChzdGF0dXMgPT0gY29u bmVjdG9yX3N0YXR1c19jb25uZWN0ZWQgJiYKPiArCSAgICBjb25uZWN0b3ItPmxpbmtfc3RhdHVz ID09IERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCkKPiArCQlyZXR1cm4gc3RhdHVzOwo+ICsKPiAg CS8qIElmIGZ1bGwgZGV0ZWN0IGlzIG5vdCBwZXJmb3JtZWQgeWV0LCBkbyBhIGZ1bGwgZGV0ZWN0 ICovCj4gIAlpZiAoIWludGVsX2RwLT5kZXRlY3RfZG9uZSkKPiAgCQlzdGF0dXMgPSBpbnRlbF9k cF9sb25nX3B1bHNlKGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3IpOwo+IEBAIC01NjkyLDYg KzU3MTIsNDAgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlyZXR1cm4gZmFsc2U7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2 b2lkIGludGVsX2RwX21vZGVzZXRfcmV0cnlfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcjsKPiAr CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKPiArCWJvb2wgdmVyYm9zZV9wcnVuZSA9IHRydWU7Cj4gKwo+ICsJaW50ZWxf Y29ubmVjdG9yID0gY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqaW50ZWxfY29ubmVjdG9yKSwK PiArCQkJCSAgICAgICBtb2Rlc2V0X3JldHJ5X3dvcmspOwo+ICsJY29ubmVjdG9yID0gJmludGVs X2Nvbm5lY3Rvci0+YmFzZTsKPiArCj4gKwkvKiBHcmFiIHRoZSBsb2NrcyBiZWZvcmUgY2hhbmdp bmcgY29ubmVjdG9yIHByb3BlcnR5Ki8KPiArCW11dGV4X2xvY2soJmNvbm5lY3Rvci0+ZGV2LT5t b2RlX2NvbmZpZy5tdXRleCk7Cj4gKwlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxu IiwgY29ubmVjdG9yLT5iYXNlLmlkLAo+ICsJCSAgICAgIGNvbm5lY3Rvci0+bmFtZSk7Cj4gKwls aXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPm1vZGVzLCBoZWFkKSB7Cj4gKwkJ bW9kZS0+c3RhdHVzID0gaW50ZWxfZHBfbW9kZV92YWxpZChjb25uZWN0b3IsCj4gKwkJCQkJCSAg IG1vZGUpOwo+ICsJfQo+ICsJZHJtX21vZGVfcHJ1bmVfaW52YWxpZChjb25uZWN0b3ItPmRldiwg JmNvbm5lY3Rvci0+bW9kZXMsCj4gKwkJCSAgICAgICB2ZXJib3NlX3BydW5lKTsKPiArCj4gKwkv KiBTZXQgY29ubmVjdG9yIGxpbmsgc3RhdHVzIHRvIEJBRCBhbmQgc2VuZCBhIFVldmVudCB0byBu b3RpZnkKPiArCSAqIHVzZXJzcGFjZSB0byBkbyBhIG1vZGVzZXQuCj4gKwkgKi8KPiArCWNvbm5l Y3Rvci0+bGlua19zdGF0dXMgPSBEUk1fTU9ERV9MSU5LX1NUQVRVU19CQUQ7Cj4gKwlpbnRlbF9k cF9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkoY29ubmVjdG9yLAo+ICsJCQkJCSAgRFJNX01PREVf TElOS19TVEFUVVNfQkFEKTsKPiArCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5kZXYtPm1vZGVf Y29uZmlnLm11dGV4KTsKPiArCj4gKwkvKiBTZW5kIEhvdHBsdWcgdWV2ZW50IHNvIHVzZXJzcGFj ZSBjYW4gcmVwcm9iZSAqLwo+ICsJZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChjb25uZWN0 b3ItPmRldik7Cj4gK30KPiArCj4gIGJvb2wKPiAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAkJCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiBAQCAtNTcwNCw2ICs1NzU4LDEwIEBAIHN0 YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKPiAgCWludCB0 eXBlOwo+ICAKPiArCS8qIEluaXRpYWxpemUgdGhlIHdvcmsgZm9yIG1vZGVzZXQgaW4gY2FzZSBv ZiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KPiArCUlOSVRfV09SSygmaW50ZWxfY29ubmVjdG9yLT5t b2Rlc2V0X3JldHJ5X3dvcmssCj4gKwkJICBpbnRlbF9kcF9tb2Rlc2V0X3JldHJ5X3dvcmtfZm4p Owo+ICsKPiAgCWlmIChXQVJOKGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPCAxLAo+ICAJCSAi Tm90IGVub3VnaCBsYW5lcyAoJWQpIGZvciBEUCBvbiBwb3J0ICVjXG4iLAo+ICAJCSBpbnRlbF9k aWdfcG9ydC0+bWF4X2xhbmVzLCBwb3J0X25hbWUocG9ydCkpKQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiBpbmRleCAwMDQ4YjUyLi4xMGY4MWFi IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5p bmcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcu Ywo+IEBAIC0zMTAsOSArMzEwLDE1IEBAIHZvaWQgaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAkJCQlEUF9UUkFJTklOR19QQVRURVJOX0RJU0FC TEUpOwo+ICB9Cj4gIAo+IC12b2lkCj4gK2Jvb2wKPiAgaW50ZWxfZHBfc3RhcnRfbGlua190cmFp bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlpbnRlbF9kcF9saW5rX3RyYWlu aW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsKPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdf Y2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApOwo+ICsJYm9vbCByZXQ7Cj4gKwo+ICsJaWYg KGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApKSB7Cj4gKwkJ cmV0ID0gaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9k cCk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHRydWU7Cj4gKwl9Cj4gKwlyZXR1cm4gZmFs c2U7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGJjMjViMmIuLmMwMzc4 YTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0zMTIsNiArMzEyLDkgQEAg c3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4gIAl2b2lkICpwb3J0OyAvKiBzdG9yZSB0aGlzIG9w YXF1ZSBhcyBpdHMgaWxsZWdhbCB0byBkZXJlZmVyZW5jZSBpdCAqLwo+ICAKPiAgCXN0cnVjdCBp bnRlbF9kcCAqbXN0X3BvcnQ7Cj4gKwo+ICsJLyogV29yayBzdHJ1Y3QgdG8gc2NoZWR1bGUgYSB1 ZXZlbnQgb24gbGluayB0cmFpbiBmYWlsdXJlICovCj4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgbW9k ZXNldF9yZXRyeV93b3JrOwo+ICB9Owo+ICAKPiAgc3RydWN0IGRwbGwgewo+IEBAIC05MDAsNyAr OTAzLDYgQEAgc3RydWN0IGludGVsX2RwIHsKPiAgCWludCBmYWxsYmFja19saW5rX3JhdGU7Cj4g IAl1aW50OF90IGZhbGxiYWNrX2xhbmVfY291bnQ7Cj4gIAlpbnQgZmFsbGJhY2tfbGlua19yYXRl X2luZGV4Owo+IC0JYm9vbCBsaW5rX3RyYWluX2ZhaWxlZDsKPiAgCXVpbnQ4X3Qgc2lua19jb3Vu dDsKPiAgCWJvb2wgbGlua19tc3Q7Cj4gIAlib29sIGhhc19hdWRpbzsKPiBAQCAtMTQwMiw3ICsx NDA0LDcgQEAgdm9pZCBpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPiAgCQkJICAgICAgYm9vbCBsaW5rX21zdCk7Cj4gIHZvaWQgaW50ZWxfZHBfZ2V0 X2xpbmtfdHJhaW5fZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g IAkJCQkJICAgICBpbnQgbGlua19yYXRlLCB1aW50OF90IGxhbmVfY291bnQpOwo+IC12b2lkIGlu dGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gK2Jv b2wgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsK PiAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCk7Cj4gIHZvaWQgaW50ZWxfZHBfc2lua19kcG1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs IGludCBtb2RlKTsKPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2Rlcik7Cj4gLS0gCj4gMS45LjEKPiAKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==