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:48 +0300 Message-ID: <87mvjhv96z.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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id B36FB6E6AF for ; Fri, 9 Sep 2016 07:11:51 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi , Manasi Navare Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAwOSBTZXAgMjAxNiwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAZ21haWwuY29t PiB3cm90ZToKPiBPbiBXZWQsIFNlcCA3LCAyMDE2IGF0IDU6MzAgUE0sIE1hbmFzaSBOYXZhcmUg PG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+IHdyb3RlOgo+PiBBY2NvcmRpbmcgdG8gdGhlIERp c3BsYXlQb3J0IFNwZWMsIGluIGNhc2Ugb2YgQ2xvY2sgUmVjb3ZlcnkgZmFpbHVyZQo+PiB0aGUg bGluayB0cmFpbmluZyBzZXF1ZW5jZSBzaG91bGQgZmFsbCBiYWNrIHRvIHRoZSBsb3dlciBsaW5r IHJhdGUKPj4gZm9sbG93ZWQgYnkgbG93ZXIgbGFuZSBjb3VudCB1bnRpbCBDUiBzdWNjZWVkcy4K Pj4gT24gQ1Igc3VjY2VzcywgdGhlIHNlcXVlbmNlIHByb2NlZWRzIHdpdGggQ2hhbm5lbCBFUS4K Pj4gSW4gY2FzZSBvZiBDaGFubmVsIEVRIGZhaWx1cmVzLCBpdCBzaG91bGQgZmFsbGJhY2sgdG8K Pj4gbG93ZXIgbGluayByYXRlIGFuZCBsYW5lIGNvdW50IGFuZCBzdGFydCB0aGUgQ1IgcGhhc2Ug YWdhaW4uCj4+Cj4+IHY0Ogo+PiAqIEZpeGVkIHRoZSBsaW5rIHJhdGUgZmFsbGJhY2sgbG9vcCAo TWFuYXNpIE5hdmFyZSkKPj4gdjM6Cj4+ICogRml4ZWQgc29tZSByZWJhc2UgaXNzdWVzIChNaWth IEthaG9sYSkKPj4gdjI6Cj4+ICogQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVybiBpbmRl eCBvZiByZXF1ZXN0ZWQgbGluayByYXRlCj4+IGludG8gY29tbW9uX3JhdGVzIGFycmF5Cj4+ICog Q2hhbmdlZCB0aGUgbGluayByYXRlIGZhbGxiYWNrIGxvb3AgdG8gbWFrZSB1c2UKPj4gb2YgY29t bW9uX3JhdGVzIGFycmF5IChNaWthIEthaG9sYSkKPj4gKiBDaGFuZ2VkIElOVEVMX0lORk8gdG8g SU5URUxfR0VOIChEYXZpZCBXZWluZWhhbGwpCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBO YXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICAgICAgICAgIHwgMTA5ICsrKysrKysrKysrKysrKysr KysrKysrLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgICAg ICAgfCAgMTUgKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFp bmluZy5jIHwgIDEyICsrLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAg ICAgICAgICAgIHwgICA2ICstCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCsp LCAxNCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gaW5kZXgg MjVlNzk3My4uMTI3OGRhYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gQEAg LTE2MzQsMTkgKzE2MzQsMTggQEAgdm9pZCBpbnRlbF9kZGlfY2xrX3NlbGVjdChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gICAgICAgICB9Cj4+ICB9Cj4+Cj4+IC1zdGF0aWMgdm9p ZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK Pj4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2VkcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IGxpbmtfcmF0ZSwgdWludDMyX3QgbGFuZV9jb3VudCwKPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbGlua19tc3QpCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+ PiAgewo+PiAgICAgICAgIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoJmVuY29kZXItPmJhc2UpOwo+PiAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiAgICAgICAgIGVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4+Cj4+ICAgICAg ICAgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBsaW5rX3JhdGUsIGxhbmVfY291 bnQsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtfbXN0KTsKPj4gLSAg ICAgICBpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+PiAtICAgICAgICAg ICAgICAgaW50ZWxfZWRwX3BhbmVsX29uKGludGVsX2RwKTsKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmFsc2UpOwo+PiArCj4+ICsgICAgICAgaW50ZWxfZWRwX3BhbmVsX29u KGludGVsX2RwKTsKPj4KPj4gICAgICAgICBpbnRlbF9kZGlfY2xrX3NlbGVjdChlbmNvZGVyLCBw bGwpOwo+PiAgICAgICAgIGludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7Cj4+ IEBAIC0xNjU3LDYgKzE2NTYsMjggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVf ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgICAgICAgICAgICAgICBpbnRl bF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+PiAgfQo+Pgo+PiArc3RhdGljIHZvaWQg aW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5rX3JhdGUsIHVpbnQz Ml90IGxhbmVfY291bnQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIGxpbmtfbXN0KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+PiArICAgICAg IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgdG1wX3Bs bF9jb25maWc7Cj4+ICsKPj4gKyAgICAgICAvKiBEaXNhYmxlIHRoZSBQTEwgYW5kIG9idGFpbiB0 aGUgUExMIGZvciBMaW5rIFRyYWluaW5nCj4+ICsgICAgICAgICogdGhhdCBzdGFydHMgd2l0aCBo aWdoZXN0IGxpbmsgcmF0ZSBhbmQgbGFuZSBjb3VudC4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAg ICB0bXBfcGxsX2NvbmZpZyA9IHBsbC0+Y29uZmlnOwo+PiArICAgICAgIHBsbC0+ZnVuY3MuZGlz YWJsZShkZXZfcHJpdiwgcGxsKTsKPj4gKyAgICAgICBwbGwtPmNvbmZpZy5jcnRjX21hc2sgPSAw Owo+PiArCj4+ICsgICAgICAgLyogSWYgTGluayBUcmFpbmluZyBmYWlscywgc2VuZCBhIHVldmVu dCB0byBnZW5lcmF0ZSBhIGhvdHBsdWcgKi8KPj4gKyAgICAgICBpZiAoIShpbnRlbF9kZGlfbGlu a190cmFpbihpbnRlbF9kcCwgbGlua19yYXRlLCBsYW5lX2NvdW50LCBsaW5rX21zdCkpKQo+PiAr ICAgICAgICAgICAgICAgZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChlbmNvZGVyLT5iYXNl LmRldik7Cj4+ICsgICAgICAgcGxsLT5jb25maWcgPSB0bXBfcGxsX2NvbmZpZzsKPj4gK30KPj4g Kwo+PiAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sIGhhc19oZG1pX3NpbmssCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsCj4+IEBAIC0xNjkw LDIwICsxNzExLDI2IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+PiAgICAgICAgIHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPj4gICAgICAgICBpbnQgdHlw ZSA9IGludGVsX2VuY29kZXItPnR5cGU7Cj4+Cj4+IC0gICAgICAgaWYgKHR5cGUgPT0gSU5URUxf T1VUUFVUX0RQIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+PiArICAgICAgIGlmICh0 eXBlID09IElOVEVMX09VVFBVVF9FRFApCj4+ICsgICAgICAgICAgICAgICBpbnRlbF9kZGlfcHJl X2VuYWJsZV9lZHAoaW50ZWxfZW5jb2RlciwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNydGMtPmNvbmZpZy0+cG9ydF9jbG9jaywKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNydGMtPmNvbmZpZy0+bGFuZV9jb3VudCwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNydGMtPmNvbmZpZy0+c2hhcmVk X2RwbGwpOwo+PiArCj4+ICsgICAgICAgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0RQKQo+PiAg ICAgICAgICAgICAgICAgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoaW50ZWxfZW5jb2RlciwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNydGMtPmNvbmZpZy0+cG9y dF9jbG9jaywKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNydGMt PmNvbmZpZy0+bGFuZV9jb3VudCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNydGMtPmNvbmZpZy0+c2hhcmVkX2RwbGwsCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnRlbF9jcnRjX2hhc190eXBlKGNydGMtPmNvbmZpZywKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSU5URUxfT1VUUFVUX0RQX01TVCkpOwo+PiAtICAgICAgIH0KPj4gLSAgICAgICBpZiAodHlw ZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+PiArCj4+ICsgICAgICAgaWYgKHR5cGUgPT0gSU5U RUxfT1VUUFVUX0hETUkpCj4+ICAgICAgICAgICAgICAgICBpbnRlbF9kZGlfcHJlX2VuYWJsZV9o ZG1pKGludGVsX2VuY29kZXIsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNydGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaywKPj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcnRjLT5jb25m aWctPnNoYXJlZF9kcGxsKTsKPj4gLSAgICAgICB9Cj4+ICsKPj4gIH0KPj4KPj4gIHN0YXRpYyB2 b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIsCj4+IEBAIC0yNDMyLDYgKzI0NTksNjggQEAgaW50ZWxfZGRpX2dldF9saW5rX2RwbGwo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IGNsb2NrKQo+PiAgICAgICAgIHJldHVybiBw bGw7Cj4+ICB9Cj4+Cj4+ICtib29sCj4+ICtpbnRlbF9kZGlfbGlua190cmFpbihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCBpbnQgbWF4X2xpbmtfcmF0ZSwKPj4gKyAgICAgICAgICAgICAgICAg ICAgdWludDhfdCBtYXhfbGFuZV9jb3VudCwgYm9vbCBsaW5rX21zdCkKPj4gK3sKPj4gKyAgICAg ICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRf Y29ubmVjdG9yOwo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29u bmVjdG9yLT5lbmNvZGVyOwo+PiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiArICAgICAgIHN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqcGxsOwo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9j b25maWcgdG1wX3BsbF9jb25maWc7Cj4+ICsgICAgICAgaW50IGxpbmtfcmF0ZSwgbGlua19yYXRl X2luZGV4Owo+PiArICAgICAgIHVpbnQ4X3QgbGFuZV9jb3VudDsKPj4gKyAgICAgICBpbnQgY29t bW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4+ICsgICAgICAgYm9vbCBy ZXQgPSBmYWxzZTsKPj4gKwo+PiArICAgICAgIGxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2RwX2xp bmtfcmF0ZV9pbmRleChpbnRlbF9kcCwgY29tbW9uX3JhdGVzLAo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfbGlua19yYXRlKTsKPj4gKyAg ICAgICBpZiAobGlua19yYXRlX2luZGV4IDwgMCkgewo+PiArICAgICAgICAgICAgICAgRFJNX0VS Uk9SKCJJbnZhbGlkIExpbmsgUmF0ZVxuIik7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7Cj4+ICsgICAgICAgfQo+PiArICAgICAgIGZvciAobGFuZV9jb3VudCA9IG1heF9sYW5lX2Nv dW50OyBsYW5lX2NvdW50ID4gMDsgbGFuZV9jb3VudCA+Pj0gMSkgewo+PiArICAgICAgICAgICAg ICAgZm9yICg7IGxpbmtfcmF0ZV9pbmRleCA+PSAwOyBsaW5rX3JhdGVfaW5kZXggLS0pIHsKPgo+ IEVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGJlZm9yZSB0aGF0ICctLScgKGN0eDpXeEIpCj4gIzE0 ODogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmM6MjQ4MzoKPiArIGZvciAo OyBsaW5rX3JhdGVfaW5kZXggPj0gMDsgbGlua19yYXRlX2luZGV4IC0tKSB7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgbGlua19yYXRlID0gY29tbW9uX3JhdGVzW2xpbmtfcmF0ZV9pbmRleF07Cj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIHBsbCA9IGludGVsX2RkaV9nZXRfbGlua19kcGxsKGludGVs X2RwLCBsaW5rX3JhdGUpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocGxsID09IE5V TEwpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIkNvdWxk IG5vdCBmaW5kIERQTEwgZm9yIGxpbmsgIgo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAidHJhaW5pbmcuXG4iKTsKPgo+IFRoZSBtb3N0IGNvbW1vbiB3YXkgaW4g b3VyIGNvZGUgaXMgdG8gbm90IHNwbGl0IHRoZSBjb21tZW50IGFuZCBnbyBvdmVyIDgwIGNvbHMu Cj4KPiBjaGVja3BhdGNoIGNvbXBsYWlucyBlaXRoZXIgd2F5cyBhbnl3YXk6Cj4KPiBXQVJOSU5H OiBxdW90ZWQgc3RyaW5nIHNwbGl0IGFjcm9zcyBsaW5lcwo+ICMxNTM6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jOjI0ODg6Cj4gKyBEUk1fRVJST1IoIkNvdWxkIG5vdCBm aW5kIERQTEwgZm9yIGxpbmsgIgo+ICsgICJ0cmFpbmluZy5cbiIpOwo+Cj4gTm90IHN1cmUgd2hh dCBvdXIgbWFpbnRhaW5lciBwcmVmZXIuIEphbmk/CgpJbiB0aGlzIGNhc2UsIEknZCBwcmVmZXIg cmlnb3JvdXMgcmV2aWV3IG9mIHRoZSBmdW5jdGlvbmFsIGFzcGVjdHMgb2YKdGhlIGNoYW5nZXMu Cgo+Cj4KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIH0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgdG1w X3BsbF9jb25maWcgPSBwbGwtPmNvbmZpZzsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcGxs LT5mdW5jcy5lbmFibGUoZGV2X3ByaXYsIHBsbCk7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBsaW5rX3JhdGUsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5lX2NvdW50 LCBsaW5rX21zdCk7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfZGRpX2Ns a19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxf cHJlcGFyZV9kcF9kZGlfYnVmZmVycyhlbmNvZGVyKTsKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhlbmNvZGVyKTsKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9EUE1TX09OKTsK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gaW50ZWxfZHBfc3RhcnRfbGlua190cmFp bihpbnRlbF9kcCk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICsKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgLyogRGlzYWJsZSBwb3J0IGZvbGxvd2VkIGJ5IFBMTCBmb3IgbmV4dCByZXRyeS9j bGVhbiB1cCAqLwo+Cj4gQW5kIGhlcmUgaXQgZ29lcyBvdmVyIDgwIGNvbHMgdGhlIG1vc3QgY29t bW9uIGlzIHRvCj4KPiAvKgo+ICAqIERpc2FibGUuLi4KPiAgKiAuLi5jbGVhbiB1cAo+ICovCj4K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShlbmNvZGVy LCBOVUxMLCBOVUxMKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcGxsLT5mdW5jcy5kaXNh YmxlKGRldl9wcml2LCBwbGwpOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBwbGwtPmNvbmZp ZyA9IHRtcF9wbGxfY29uZmlnOwo+PiArICAgICAgICAgICAgICAgfQo+PiArICAgICAgICAgICAg ICAgaWYgKHJldCkgewo+PiArICAgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJM aW5rIFRyYWluaW5nIHN1Y2Nlc3NmdWwgYXQgbGluayByYXRlOiAiCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiVkIGxhbmU6JWRcbiIsIGxpbmtfcmF0ZSwgbGFuZV9j b3VudCk7Cj4KPiBhbHNvIGhlcmUgYW5kIGluIDIgb3RoZXIgcGxhY2VzIGluCj4gZHJtLWk5MTUt TWFrZS1EUC1saW5rLXRyYWluaW5nLWNoYW5uZWwtZXF1YWxpemF0aW9uLS5wYXRjaAo+Cj4gVGhh bmtzLAo+IFJvZHJpZ28uCj4KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICsg ICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgfQo+PiArICAgICAgIGludGVsX2RwX3N0b3BfbGlu a190cmFpbihpbnRlbF9kcCk7Cj4+ICsKPj4gKyAgICAgICBpZiAoIWxhbmVfY291bnQpCj4+ICsg ICAgICAgICAgICAgICBEUk1fRVJST1IoIkxpbmsgVHJhaW5pbmcgRmFpbGVkXG4iKTsKPj4gKwo+ PiArICAgICAgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gIHZvaWQgaW50ZWxfZGRpX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBvcnQpCj4+ICB7Cj4+ICAgICAgICAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPj4gaW5kZXggNzVhYzYyZi4uMTM3ODExNiAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4+IEBAIC0xNDQzLDYgKzE0NDMsMjEgQEAgaW50ZWxfZHBfbWF4 X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiAgICAgICAgIHJldHVybiBy YXRlc1tsZW4gLSAxXTsKPj4gIH0KPj4KPj4gK2ludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50ICpjb21tb25fcmF0ZXMsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmtfcmF0ZSkKPj4gK3sKPj4gKyAgICAgICBpbnQg Y29tbW9uX2xlbjsKPj4gKyAgICAgICBpbnQgaW5kZXg7Cj4+ICsKPj4gKyAgICAgICBjb21tb25f bGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCBjb21tb25fcmF0ZXMpOwo+PiAr ICAgICAgIGZvciAoaW5kZXggPSBjb21tb25fbGVuIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkg ewo+PiArICAgICAgICAgICAgICAgaWYgKGxpbmtfcmF0ZSA9PSBjb21tb25fcmF0ZXNbaW5kZXhd KQo+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7Cj4+ICsgICAgICAgfQo+ PiArCj4+ICsgICAgICAgcmV0dXJuIC0xOwo+PiArfQo+PiArCj4+ICBpbnQgaW50ZWxfZHBfcmF0 ZV9zZWxlY3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHJhdGUpCj4+ICB7Cj4+ICAg ICAgICAgcmV0dXJuIHJhdGVfdG9faW5kZXgocmF0ZSwgaW50ZWxfZHAtPnNpbmtfcmF0ZXMpOwo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmlu Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4+IGlu ZGV4IGM0MzhiMDIuLmYxZTA4ZjAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPj4gQEAgLTMxMyw5ICszMTMsMTUgQEAgdm9pZCBpbnRl bF9kcF9zdG9wX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEUF9UUkFJTklOR19QQVRURVJOX0RJU0FCTEUpOwo+ PiAgfQo+Pgo+PiAtdm9pZAo+PiArYm9vbAo+PiAgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiAgewo+PiAtICAgICAgIGludGVsX2RwX2xpbmtf dHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+PiAtICAgICAgIGludGVsX2RwX2xp bmtfdHJhaW5pbmdfY2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApOwo+PiArICAgICAgIGJv b2wgcmV0Owo+PiArCj4+ICsgICAgICAgaWYgKGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tf cmVjb3ZlcnkoaW50ZWxfZHApKSB7Cj4+ICsgICAgICAgICAgICAgICByZXQgPSBpbnRlbF9kcF9s aW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsKPj4gKyAgICAgICAg ICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+ PiArICAgICAgIH0KPj4gKyAgICAgICByZXR1cm4gZmFsc2U7Cj4+ICB9Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4+IGluZGV4IGNhNTFlMWEuLjViOTdhN2Q0IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtMTE2MCw2ICsxMTYwLDggQEAgdm9pZCBpbnRlbF9kZGlf Y2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPj4gIHZv aWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg Ym9vbCBzdGF0ZSk7Cj4+ICB1aW50MzJfdCBkZGlfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKTsKPj4gK2Jvb2wgaW50ZWxfZGRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwgaW50IG1heF9saW5rX3JhdGUsCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDhfdCBtYXhfbGFuZV9jb3VudCwgYm9vbCBsaW5rX21zdCk7Cj4+ICBzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2RkaV9nZXRfbGlua19kcGxsKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IGNsb2NrKTsKPj4gIHVuc2lnbmVkIGludCBpbnRlbF9mYl9hbGlnbl9oZWln aHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gQEAgLTEzODEsNyArMTM4Myw3IEBAIGJvb2wg aW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQsCj4+ICB2b2lkIGludGVsX2RwX3NldF9saW5rX3BhcmFtcyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGlua19y YXRlLCB1aW50OF90IGxhbmVfY291bnQsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgbGlua19tc3QpOwo+PiAtdm9pZCBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+PiArYm9vbCBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWlu KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+PiAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtf dHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4+ICB2b2lkIGludGVsX2RwX3Npbmtf ZHBtcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgbW9kZSk7Cj4+ICB2b2lkIGludGVs X2RwX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPj4gQEAgLTE0 MDMsNiArMTQwNSw4IEBAIHZvaWQgaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvCj4+ICB2b2lkIGludGVsX2Rw X21zdF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgdm9pZCBpbnRlbF9kcF9t c3RfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgaW50IGludGVsX2RwX21heF9s aW5rX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4+ICtpbnQgaW50ZWxfZHBfbGlu a19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCAqY29tbW9uX3JhdGVz LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5rX3JhdGUpOwo+PiAgaW50 IGludGVsX2RwX3JhdGVfc2VsZWN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCByYXRl KTsKPj4gIHZvaWQgaW50ZWxfZHBfaG90X3BsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIpOwo+PiAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gLS0KPj4gMS45LjEKPj4KPj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKSmFuaSBO aWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=