From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/5] drm/i915: Add support for DP link training compliance Date: Thu, 24 Nov 2016 10:07:25 +0200 Message-ID: <878ts9z4g2.fsf@intel.com> References: <1479850766-32748-1-git-send-email-manasi.d.navare@intel.com> <1479850766-32748-2-git-send-email-manasi.d.navare@intel.com> <87fumiwdil.fsf@intel.com> <20161123233311.GA9178@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161123233311.GA9178@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Manasi Navare Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyNCBOb3YgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4gd3JvdGU6Cj4gT24gV2VkLCBOb3YgMjMsIDIwMTYgYXQgMDM6MDc6MzBQTSArMDIwMCwg SmFuaSBOaWt1bGEgd3JvdGU6Cj4+IE9uIFR1ZSwgMjIgTm92IDIwMTYsIE1hbmFzaSBOYXZhcmUg PG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+IHdyb3RlOgo+PiA+IFRoaXMgcGF0Y2ggYWRkcyBz dXBwb3J0IHRvIGhhbmRsZSBhdXRvbWF0ZWQgRFAgY29tcGxpYW5jZQo+PiA+IGxpbmsgdHJhaW5p bmcgdGVzdCByZXF1ZXN0cy4gVGhpcyBwYXRjaCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aAo+PiA+IFVu aWdyYWYgRFBSLTEyMCBEUCBDb21wbGlhbmNlIGRldmljZSBmb3IgdGVzdGluZyBMaW5rCj4+ID4g VHJhaW5pbmcgQ29tcGxpYW5jZS4KPj4gPiBBZnRlciB3ZSBnZXQgYSBzaG9ydCBwdWxzZSBDb21w bGlhbmNlIHRlc3QgcmVxdWVzdCwgdGVzdAo+PiA+IHJlcXVlc3QgdmFsdWVzIGFyZSByZWFkIGFu ZCBob3RwbHVnIHVldmVudCBpcyBzZW50IGluIG9yZGVyCj4+ID4gdG8gdHJpZ2dlciBhbm90aGVy IG1vZGVzZXQgZHVyaW5nIHdoaWNoIHRoZSBwaXBlIGlzIGNvbmZpZ3VyZWQKPj4gPiBhbmQgbGlu ayBpcyByZXRyYWluZWQgYW5kIGVuYWJsZWQgZm9yIGxpbmsgcGFyYW1ldGVycyByZXF1ZXN0ZWQK Pj4gPiBieSB0aGUgdGVzdC4KPj4gPgo+PiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUg PG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBsaW51eC5pbnRlbC5jb20+Cj4+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAaW50ZWwuY29tPgo+PiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPj4gPiAtLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyAgfCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwgIDIgKysKPj4gPiAgMiBmaWxlcyBjaGFu Z2VkLCA2OSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+PiA+Cj4+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4+ID4gaW5kZXggOTAyODNlZC4uNjk5NDRkMSAxMDA2NDQKPj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiA+IEBAIC0yODgsNiArMjg4LDIxIEBAIHN0YXRpYyBpbnQg aW50ZWxfZHBfY29tbW9uX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4+ID4gIAkJ CSAgICAgICBjb21tb25fcmF0ZXMpOwo+PiA+ICB9Cj4+ID4gIAo+PiA+ICtzdGF0aWMgaW50IGlu dGVsX2RwX2xpbmtfcmF0ZV9pbmRleChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+PiA+ICsJ CQkJICAgIGludCAqY29tbW9uX3JhdGVzLCBpbnQgbGlua19yYXRlKQo+PiA+ICt7Cj4+ID4gKwlp bnQgY29tbW9uX2xlbjsKPj4gPiArCWludCBpbmRleDsKPj4gPiArCj4+ID4gKwljb21tb25fbGVu ID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCBjb21tb25fcmF0ZXMpOwo+PiA+ICsJ Zm9yIChpbmRleCA9IDA7IGluZGV4IDwgY29tbW9uX2xlbjsgaW5kZXgrKykgewo+PiA+ICsJCWlm IChsaW5rX3JhdGUgPT0gY29tbW9uX3JhdGVzW2NvbW1vbl9sZW4gLSBpbmRleCAtIDFdKQo+PiA+ ICsJCQlyZXR1cm4gY29tbW9uX2xlbiAtIGluZGV4IC0gMTsKPj4gPiArCX0KPj4gPiArCj4+ID4g KwlyZXR1cm4gLTE7Cj4+ID4gK30KPj4gPiArCj4+ID4gIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0 YXR1cwo+PiA+ICBpbnRlbF9kcF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4+ID4gIAkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+PiA+IEBA IC0xNTU0LDYgKzE1NjksNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4+ID4gIAkvKiBDb252ZW5pZW50bHksIHRoZSBsaW5rIEJX IGNvbnN0YW50cyBiZWNvbWUgaW5kaWNlcyB3aXRoIGEgc2hpZnQuLi4qLwo+PiA+ICAJaW50IG1p bl9jbG9jayA9IDA7Cj4+ID4gIAlpbnQgbWF4X2Nsb2NrOwo+PiA+ICsJaW50IGxpbmtfcmF0ZV9p bmRleDsKPj4gPiAgCWludCBicHAsIG1vZGVfcmF0ZTsKPj4gPiAgCWludCBsaW5rX2F2YWlsLCBs aW5rX2Nsb2NrOwo+PiA+ICAJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVT XSA9IHt9Owo+PiA+IEBAIC0xNTk1LDYgKzE2MTEsMTYgQEAgc3RhdGljIGludCBpbnRlbF9kcF9j b21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+PiA+ICAJaWYgKGFkanVzdGVk X21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspCj4+ID4gIAkJcmV0dXJuIGZhbHNl Owo+PiA+ICAKPj4gPiArCS8qIFVzZSB2YWx1ZXMgcmVxdWVzdGVkIGJ5IENvbXBsaWFuY2UgVGVz dCBSZXF1ZXN0ICovCj4+ID4gKwlpZiAoaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBlID09 IERQX1RFU1RfTElOS19UUkFJTklORykgewo+PiA+ICsJCQlsaW5rX3JhdGVfaW5kZXggPSBpbnRl bF9kcF9saW5rX3JhdGVfaW5kZXgoaW50ZWxfZHAsCj4+ID4gKwkJCQkJCQkJICAgY29tbW9uX3Jh dGVzLAo+PiA+ICsJCQkJCQkJCSAgIGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZShpbnRlbF9k cC0+Y29tcGxpYW5jZV90ZXN0X2xpbmtfcmF0ZSkpOwo+PiA+ICsJCQlpZiAobGlua19yYXRlX2lu ZGV4ID49IDApCj4+ID4gKwkJCQltaW5fY2xvY2sgPSBtYXhfY2xvY2sgPSBsaW5rX3JhdGVfaW5k ZXg7Cj4+ID4gKwkJCW1pbl9sYW5lX2NvdW50ID0gbWF4X2xhbmVfY291bnQgPSBpbnRlbF9kcC0+ Y29tcGxpYW5jZV90ZXN0X2xhbmVfY291bnQ7Cj4+IAo+PiBZb3UgbmVlZCB0byBiZSBtb3JlIHN0 cmljdCBhYm91dCB2YWxpZGF0aW5nCj4+IGNvbXBsaWFuY2VfdGVzdF9sYW5lX2NvdW50LiBZb3Ug ZG8gbWFzayBpdCB3aXRoIERQX01BWF9MQU5FX0NPVU5UX01BU0ssCj4+IGJ1dCB0aGF0J3MgMHgx ZiwgcXVpdGUgYSBmZXcgbW9yZSBsYW5lcyB0aGFuIHdlIGhhdmUuLi4KPj4KPgo+IFNvIHRoZSBy ZWFzb24gSSBkaWRudCBhZGQgdmFsaWRhdGlvbiBoZXJlIGlzIGJlY2F1c2Ugd2UgZW50ZXIgdGhl IERVVAo+IGNhcGFiaWxpdGllcyBpbnRvIERQUi0xMjAgYmVmb3JlIHN0YXJ0aW5nIHRoZSB0ZXN0 LCBzbyB0aGUgdGVzdCBsYW5lCj4gY291bnQgaXRzIGdvbm5hIHJlcXVlc3Qgd2lsbCBub3QgZXhj ZWVkIHRoZSBEVVQgbWF4IGxhbmUgY291bnQuICBCdXQKPiB3ZSBjYW4gc3RpbGwgdGFrZSBzYWZl IGFwcHJvYWNoIGFuZCB0YWtlIHRoZSBtaW4gYmV0d2VlbiB0aGUKPiBjb21wbGlhbmNlX2xhbmVf Y291bnQgYW5kIG1heCBzb3VyY2UgbGFuZSBjb3VudC4KClRoZSBrZXJuZWwgbXVzdCB2YWxpZGF0 ZSBhbnkgYW5kIGFsbCBpbnB1dCB3aGV0aGVyIGl0IGNvbWVzIGZyb20KdXNlcnNwYWNlIG9yIGZy b20gb3RoZXIgZGV2aWNlcy4KCj4+ID4gKwl9Cj4+ID4gKwo+PiA+ICAJRFJNX0RFQlVHX0tNUygi RFAgbGluayBjb21wdXRhdGlvbiB3aXRoIG1heCBsYW5lIGNvdW50ICVpICIKPj4gPiAgCQkgICAg ICAibWF4IGJ3ICVkIHBpeGVsIGNsb2NrICVpS0h6XG4iLAo+PiA+ICAJCSAgICAgIG1heF9sYW5l X2NvdW50LCBjb21tb25fcmF0ZXNbbWF4X2Nsb2NrXSwKPj4gPiBAQCAtMTY0Miw2ICsxNjY4LDcg QEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+PiA+ICAJCQkJfQo+PiA+ICAJCQl9Cj4+ID4gIAkJfQo+PiA+ICsKPj4gCj4+IFBsZWFz ZSBwYXkgYXR0ZW50aW9uIHRvIG5vdCBtYWtpbmcgdW5yZWxhdGVkIGNoYW5nZXMuCj4+IAo+PiA+ ICAJfQo+PiA+ICAKPj4gPiAgCXJldHVybiBmYWxzZTsKPj4gPiBAQCAtMzgwNCw2ICszODMxLDI5 IEBAIGludCBpbnRlbF9kcF9zaW5rX2NyYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1OCAq Y3JjKQo+PiA+ICBzdGF0aWMgdWludDhfdCBpbnRlbF9kcF9hdXRvdGVzdF9saW5rX3RyYWluaW5n KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ID4gIHsKPj4gPiAgCXVpbnQ4X3QgdGVzdF9y ZXN1bHQgPSBEUF9URVNUX0FDSzsKPj4gPiArCWludCBzdGF0dXMgPSAwOwo+PiA+ICsJLyogKERQ IENUUyAxLjIpCj4+ID4gKwkgKiA0LjMuMS4xMQo+PiA+ICsJICovCj4+ID4gKwkvKiBSZWFkIHRo ZSBURVNUX0xBTkVfQ09VTlQgYW5kIFRFU1RfTElOS19SVEFFIGZpZWxkcyAoRFAgQ1RTIDMuMS40 KSAqLwo+PiA+ICsJc3RhdHVzID0gZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsIERQ X1RFU1RfTEFORV9DT1VOVCwKPj4gPiArCQkJCSAgJmludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3Rf bGFuZV9jb3VudCk7Cj4+ID4gKwo+PiA+ICsJaWYgKHN0YXR1cyA8PSAwKSB7Cj4+ID4gKwkJRFJN X0RFQlVHX0tNUygiQ291bGQgbm90IHJlYWQgdGVzdCBsYW5lIGNvdW50IGZyb20gIgo+PiA+ICsJ CQkgICAgICAicmVmZXJlbmNlIHNpbmtcbiIpOwo+PiAKPj4gTm8gbmVlZCB0byBiZSBzbyB2ZXJi b3NlLCBEUk1fREVCVUdfS01TIHdpbGwgaW5jbHVkZSB0aGUgZnVuY3Rpb24gbmFtZSwKPj4gc28g YSBzaW1wbGUgIkxhbmUgY291bnQgcmVhZCBmYWlsZWQiIG9yIHNvbWV0aGluZyB3aWxsIHN1ZmZp Y2UuCj4+IAo+PiA+ICsJCXJldHVybiAwOwo+PiAKPj4gU2hvdWxkIHRoZXNlIHJldHVybiBEUF9U RVNUX05BSyBvbiBlcnJvcnMgb3Igd2hhdD8KPj4KPgo+IE5vIGluIHRoaXMgY2FzZSBpdCBzaG91 bGQganVzdCByZXR1cm4gd2hpY2ggd2lsbCBub3Qgc2VuZCBhbnkgdGVzdAo+IHJlc3BvbnNlIGFu ZCB0aGUgdGVzdCB3aWxsIHRpbWVvdXQgYWZ0ZXIgNSByZXRyaWVzIGFuZCBzdG9wLgo+IFRFU1Rf TkFLIGlzIHVzdWFsbHkgaWYgdGhlIHRlc3QgaXMgbm90IHN1cHBvcnRlZC4KCk9rLgoKPgo+Cj4+ ID4gKwl9Cj4+ID4gKwlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X2xhbmVfY291bnQgJj0gRFBf TUFYX0xBTkVfQ09VTlRfTUFTSzsKPj4gPiArCj4+ID4gKwlzdGF0dXMgPSBkcm1fZHBfZHBjZF9y ZWFkYigmaW50ZWxfZHAtPmF1eCwgRFBfVEVTVF9MSU5LX1JBVEUsCj4+ID4gKwkJCQkgICAmaW50 ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9saW5rX3JhdGUpOwo+PiA+ICsJaWYgKHN0YXR1cyA8PSAw KSB7Cj4+ID4gKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHJlYWQgdGVzdCBsaW5rIHJhdGUg ZnJvbSAiCj4+ID4gKwkJCSAgICAgICJyZWZlcm5jZSBzaW5rXG4iKTsKPj4gCj4+IERpdHRvLgo+ PiAKPj4gPiArCQlyZXR1cm4gMDsKPj4gPiArCX0KPj4gPiArCj4+ID4gIAlyZXR1cm4gdGVzdF9y ZXN1bHQ7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gQEAgLTM5MDgsNyArMzk1OCw4IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVlc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPj4gPiAgCQkJCSAgIERQX1RFU1RfUkVTUE9OU0UsCj4+ID4gIAkJCQkgICAmcmVzcG9uc2Us IDEpOwo+PiA+ICAJaWYgKHN0YXR1cyA8PSAwKQo+PiA+IC0JCURSTV9ERUJVR19LTVMoIkNvdWxk IG5vdCB3cml0ZSB0ZXN0IHJlc3BvbnNlIHRvIHNpbmtcbiIpOwo+PiA+ICsJCURSTV9ERUJVR19L TVMoIkNvdWxkIG5vdCB3cml0ZSB0ZXN0IHJlc3BvbnNlICIKPj4gPiArCQkJICAgICAgInRvIHNp bmtcbiIpOwo+PiAKPj4gVW5yZWxhdGVkIGNoYW5nZSwgYW5kIG9uZSB3ZSBkb24ndCB3YW50Lgo+ PiAKPj4gPiAgfQo+PiA+ICAKPj4gPiAgc3RhdGljIGludAo+PiA+IEBAIC00MDE4LDkgKzQwNjks OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9oYW5kbGVfdGVzdF9yZXF1ZXN0KHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4+ID4gIAlpZiAoV0FSTl9PTl9PTkNFKCFpbnRlbF9kcC0+bGFuZV9j b3VudCkpCj4+ID4gIAkJcmV0dXJuOwo+PiA+ICAKPj4gPiAtCS8qIGlmIGxpbmsgdHJhaW5pbmcg aXMgcmVxdWVzdGVkIHdlIHNob3VsZCBwZXJmb3JtIGl0IGFsd2F5cyAqLwo+PiA+IC0JaWYgKChp bnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPT0gRFBfVEVTVF9MSU5LX1RSQUlOSU5HKSB8 fAo+PiA+IC0JICAgICghZHJtX2RwX2NoYW5uZWxfZXFfb2sobGlua19zdGF0dXMsIGludGVsX2Rw LT5sYW5lX2NvdW50KSkpIHsKPj4gPiArCS8qIFJldHJhaW4gaWYgQ2hhbm5lbCBFUSBvciBDUiBu b3Qgb2sgKi8KPj4gPiArCWlmICgoIWRybV9kcF9jaGFubmVsX2VxX29rKGxpbmtfc3RhdHVzLCBp bnRlbF9kcC0+bGFuZV9jb3VudCkpKSB7Cj4+IAo+PiBUb28gbWFueSBicmFjZXMuCj4+IAo+PiA+ ICAJCURSTV9ERUJVR19LTVMoIiVzOiBjaGFubmVsIEVRIG5vdCBvaywgcmV0cmFpbmluZ1xuIiwK Pj4gPiAgCQkJICAgICAgaW50ZWxfZW5jb2Rlci0+YmFzZS5uYW1lKTsKPj4gPiAgCj4+ID4gQEAg LTQwNDUsNiArNDA5NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVl c3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gPiAgaW50ZWxfZHBfc2hvcnRfcHVsc2Uo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gPiAgewo+PiA+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4+ID4gKwlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2U7 Cj4+ID4gIAl1OCBzaW5rX2lycV92ZWN0b3IgPSAwOwo+PiA+ICAJdTggb2xkX3NpbmtfY291bnQg PSBpbnRlbF9kcC0+c2lua19jb3VudDsKPj4gPiAgCWJvb2wgcmV0Owo+PiA+IEBAIC00MDU2LDYg KzQxMDcsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9oYW5kbGVfdGVzdF9yZXF1ZXN0KHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ID4gIAlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X2Fj dGl2ZSA9IDA7Cj4+ID4gIAlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPSAwOwo+PiA+ ICAJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9kYXRhID0gMDsKPj4gPiArCWludGVsX2RwLT5j b21wbGlhbmNlX3Rlc3RfbGFuZV9jb3VudCA9IDA7Cj4+ID4gKwlpbnRlbF9kcC0+Y29tcGxpYW5j ZV90ZXN0X2xpbmtfcmF0ZSA9IDA7Cj4+IAo+PiBMb29rcyBsaWtlIGNvbXBsaWFuY2Ugc3R1ZmYg c2hvdWxkIGJlIGEgc3ViIHN0cnVjdCBpbiBpbnRlbF9kcCwgYW5kIHlvdQo+PiBjb3VsZCBqdXN0 IG1lbXNldCBpdCB0byAwLgo+Pgo+Cj4gWWVzIEkgY2FuIGFkZCBhIHN0cnVjdCBmb3IgdGhpcy4K PiAgCj4+ID4gIAo+PiA+ICAJLyoKPj4gPiAgCSAqIE5vdyByZWFkIHRoZSBEUENEIHRvIHNlZSBp ZiBpdCdzIGFjdHVhbGx5IHJ1bm5pbmcKPj4gPiBAQCAtNDA3OSw4ICs0MTMyLDkgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+PiA+ICAJCQkJICAgRFBfREVWSUNFX1NFUlZJQ0VfSVJRX1ZFQ1RPUiwKPj4gPiAgCQkJ CSAgIHNpbmtfaXJxX3ZlY3Rvcik7Cj4+ID4gIAo+PiA+IC0JCWlmIChzaW5rX2lycV92ZWN0b3Ig JiBEUF9BVVRPTUFURURfVEVTVF9SRVFVRVNUKQo+PiA+IC0JCQlEUk1fREVCVUdfRFJJVkVSKCJU ZXN0IHJlcXVlc3QgaW4gc2hvcnQgcHVsc2Ugbm90IGhhbmRsZWRcbiIpOwo+PiA+ICsJCWlmIChz aW5rX2lycV92ZWN0b3IgJiBEUF9BVVRPTUFURURfVEVTVF9SRVFVRVNUKSB7Cj4+ID4gKwkJCWlu dGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVlc3QoaW50ZWxfZHApOwo+PiA+ICsJCX0KPj4gCj4+IFVu bmVjZXNzYXJ5IGN1cmx5IGJyYWNlcy4KPj4gCj4+ID4gIAkJaWYgKHNpbmtfaXJxX3ZlY3RvciAm IChEUF9DUF9JUlEgfCBEUF9TSU5LX1NQRUNJRklDX0lSUSkpCj4+ID4gIAkJCURSTV9ERUJVR19E UklWRVIoIkNQIG9yIHNpbmsgc3BlY2lmaWMgaXJxIHVuaGFuZGxlZFxuIik7Cj4+ID4gIAl9Cj4+ ID4gQEAgLTQwODgsNiArNDE0MiwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9oYW5kbGVfdGVz dF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4+ID4gIAlkcm1fbW9kZXNldF9s b2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOwo+PiA+ICAJaW50 ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoaW50ZWxfZHApOwo+PiA+ICAJZHJtX21vZGVzZXRfdW5s b2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwo+PiA+ICsJaWYgKChpbnRl bF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPT0gRFBfVEVTVF9MSU5LX1RSQUlOSU5HKSkgewo+ PiAKPj4gVG9vIG1hbnkgYnJhY2VzLgo+PiAKPj4gPiArCQlEUk1fREVCVUdfS01TKCJMaW5rIFRy YWluaW5nIENvbXBsaWFuY2UgVGVzdCByZXF1ZXN0ZWRcbiIpOwo+PiA+ICsJCS8qIFNlbmQgYSBI b3RwbHVnIFVldmVudCB0byB1c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNldCAqLwo+PiA+ICsJCWRy bV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiA+ ICsJfQo+PiA+ICAKPj4gPiAgCXJldHVybiB0cnVlOwo+PiA+ICB9Cj4+ID4gQEAgLTQzNzUsNiAr NDQzNCw4IEBAIHN0YXRpYyBib29sIGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiA+ICAJCWludGVsX2RwLT5jb21wbGlhbmNl X3Rlc3RfYWN0aXZlID0gMDsKPj4gPiAgCQlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUg PSAwOwo+PiA+ICAJCWludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfZGF0YSA9IDA7Cj4+ID4gKwkJ aW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9sYW5lX2NvdW50ID0gMDsKPj4gPiArCQlpbnRlbF9k cC0+Y29tcGxpYW5jZV90ZXN0X2xpbmtfcmF0ZSA9IDA7Cj4+IAo+PiBTYW1lIHRoaW5nIGFib3V0 IG1ha2luZyBjb21wbGlhbmNlIHN1YiBzdHJ1Y3QuCj4+IAo+PiA+ICAKPj4gPiAgCQlpZiAoaW50 ZWxfZHAtPmlzX21zdCkgewo+PiA+ICAJCQlEUk1fREVCVUdfS01TKCJNU1QgZGV2aWNlIG1heSBo YXZlIGRpc2FwcGVhcmVkICVkIHZzICVkXG4iLAo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4+ID4gaW5kZXggY2QxMzJjMi4uMWU4ODI4OCAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4+ID4gQEAgLTk1OCw2ICs5NTgsOCBAQCBzdHJ1Y3QgaW50ZWxfZHAgewo+PiA+ ICAJdW5zaWduZWQgbG9uZyBjb21wbGlhbmNlX3Rlc3RfdHlwZTsKPj4gPiAgCXVuc2lnbmVkIGxv bmcgY29tcGxpYW5jZV90ZXN0X2RhdGE7Cj4+ID4gIAlib29sIGNvbXBsaWFuY2VfdGVzdF9hY3Rp dmU7Cj4+ID4gKwl1OCBjb21wbGlhbmNlX3Rlc3RfbGFuZV9jb3VudDsKPj4gPiArCXU4IGNvbXBs aWFuY2VfdGVzdF9saW5rX3JhdGU7Cj4+ID4gIH07Cj4+ID4gIAo+PiA+ICBzdHJ1Y3QgaW50ZWxf bHNwY29uIHsKPj4gCj4+IC0tIAo+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVj aG5vbG9neSBDZW50ZXIKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5v bG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==