From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 1/4] drm/i915: Add support for DP link training compliance Date: Mon, 23 Jan 2017 12:50:07 -0800 Message-ID: <20170123205007.GB12226@intel.com> References: <1484893418-11309-1-git-send-email-manasi.d.navare@intel.com> <1484893418-11309-2-git-send-email-manasi.d.navare@intel.com> <87bmv1db6o.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <87bmv1db6o.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, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhhbmtzIEphbmkgZm9yIHJldmlld2luZyB0aGlzIHBhdGNoIGFuZCBmb3IgeW91ciBmZWVkYmFj ay4KSXRzIHZlcnkgdXNlZnVsIGZlZWRiYWNrIGFuZCBiZWxvdyBhcmUgc29tZSBvZiBteSBjb21t ZW50czoKCk9uIEZyaSwgSmFuIDIwLCAyMDE3IGF0IDA1OjA1OjAzUE0gKzAyMDAsIEphbmkgTmlr dWxhIHdyb3RlOgo+IE9uIEZyaSwgMjAgSmFuIDIwMTcsIE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5k Lm5hdmFyZUBpbnRlbC5jb20+IHdyb3RlOgo+ID4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8g aGFuZGxlIGF1dG9tYXRlZCBEUCBjb21wbGlhbmNlCj4gPiBsaW5rIHRyYWluaW5nIHRlc3QgcmVx dWVzdHMuIFRoaXMgcGF0Y2ggaGFzIGJlZW4gdGVzdGVkIHdpdGgKPiA+IFVuaWdyYWYgRFBSLTEy MCBEUCBDb21wbGlhbmNlIGRldmljZSBmb3IgdGVzdGluZyBMaW5rCj4gPiBUcmFpbmluZyBDb21w bGlhbmNlLgo+ID4gQWZ0ZXIgd2UgZ2V0IGEgc2hvcnQgcHVsc2UgQ29tcGxpYW5jZSB0ZXN0IHJl cXVlc3QsIHRlc3QKPiA+IHJlcXVlc3QgdmFsdWVzIGFyZSByZWFkIGFuZCBob3RwbHVnIHVldmVu dCBpcyBzZW50IGluIG9yZGVyCj4gPiB0byB0cmlnZ2VyIGFub3RoZXIgbW9kZXNldCBkdXJpbmcg d2hpY2ggdGhlIHBpcGUgaXMgY29uZmlndXJlZAo+ID4gYW5kIGxpbmsgaXMgcmV0cmFpbmVkIGFu ZCBlbmFibGVkIGZvciBsaW5rIHBhcmFtZXRlcnMgcmVxdWVzdGVkCj4gPiBieSB0aGUgdGVzdC4K PiA+Cj4gPiB2MzoKPiA+ICogVmFsaWRhdGUgdGhlIHRlc3QgbGluayByYXRlIGFuZCBsYW5lIGNv dW50IGFzIHNvb24gYXMKPiA+IHRoZSBlcnF1ZXN0IGNvbWVzIChKYW5pIE5pa3VsYSkKPiA+IHYy Ogo+ID4gKiBWYWxpZGF0ZSB0aGUgdGVzdCBsYW5lIGNvdW50IGJlZm9yZSB1c2luZyBpdCBpbgo+ ID4gaW50ZWxfZHBfY29tcHV0ZV9jb25maWcgKEphbmkgTmlrdWxhKQo+ID4gU2lnbmVkLW9mZi1i eTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+ID4gQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ID4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgfCA2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMiArKwo+ID4gIDIg ZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiA+Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IGU4MGQ2MjAuLjNlNzZiNjMgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMTYxMyw2ICsxNjEzLDcgQEAgc3RhdGlj IGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4g IAkvKiBDb252ZW5pZW50bHksIHRoZSBsaW5rIEJXIGNvbnN0YW50cyBiZWNvbWUgaW5kaWNlcyB3 aXRoIGEgc2hpZnQuLi4qLwo+ID4gIAlpbnQgbWluX2Nsb2NrID0gMDsKPiA+ICAJaW50IG1heF9j bG9jazsKPiA+ICsJaW50IGxpbmtfcmF0ZV9pbmRleDsKPiA+ICAJaW50IGJwcCwgbW9kZV9yYXRl Owo+ID4gIAlpbnQgbGlua19hdmFpbCwgbGlua19jbG9jazsKPiA+ICAJaW50IGNvbW1vbl9yYXRl c1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXSA9IHt9Owo+ID4gQEAgLTE2NTQsNiArMTY1NSwxNSBA QCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gPiAgCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMQ0xL KQo+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gIAo+ID4gKwkvKiBVc2UgdmFsdWVzIHJlcXVlc3Rl ZCBieSBDb21wbGlhbmNlIFRlc3QgUmVxdWVzdCAqLwo+ID4gKwlpZiAoaW50ZWxfZHAtPmNvbXBs aWFuY2UudGVzdF90eXBlID09IERQX1RFU1RfTElOS19UUkFJTklORykgewo+ID4gKwkJbGlua19y YXRlX2luZGV4ID0gaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KGludGVsX2RwLAo+ID4gKwkJCQkJ CQkgICBjb21tb25fcmF0ZXMsCj4gPiArCQkJCQkJCSAgIGRybV9kcF9id19jb2RlX3RvX2xpbmtf cmF0ZShpbnRlbF9kcC0+Y29tcGxpYW5jZS50ZXN0X2xpbmtfcmF0ZSkpOwo+IAo+IFlvdSBzaG91 bGQgcHJvYmFibHkgc3RvcmUgdGhlIGxpbmsgKnJhdGUqIGluc3RlYWQgb2YgdGhlIGxpbmsgcmF0 ZQo+ICpjb2RlKiB0byBpbnRlbF9kcC0+Y29tcGxpYW5jZS50ZXN0X2xpbmtfcmF0ZSBpbgo+IGlu dGVsX2RwX2F1dG90ZXN0X2xpbmtfdHJhaW5pbmcoKS4KPiAKCkkgdG90YWxseSBhZ3JlZSBhbmQg dGhpcyBpcyBob3cgaXQgaXMgYWRkcmVzc2VkIGluIHRoZSBuZXcgcmV2aXNpb24uCkkgaGF2ZSBk ZWNsYXJlZCBhIGxvY2FsIHZhcmlhYmxlIHRlc3RfbGlua19idyB0aGF0IHN0b3JlcyB0aGUgQlcg Y29kZQpyZWFkIGZyb20gdGhlIERQQ0QgdGVzdCByZWdpc3RlcnMuIFRoaXMgQlcgY29kZSBpcyB0 aGVuIHZhbGlkYXRlZCB0byBzZWUKdGhhdCBpdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsaWQgbGlu ayByYXRlIHZhbHVlcy4gSWYgaXQgaXMgaW52YWxpZCB0aGVuIEkgcmV0dXJuCmEgVEVTVF9OQUsg YW5kIGlmIGl0IGlzIHZhbGlkIHRoZW4gSSBjb252ZXJ0IHRoaXMgQlcgY29kZSB0byBsaW5rX3Jh dGUKYW5kIHN0b3JlIHRoZSBsaW5rX3JhdGUgaW4gaW50ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF9s aW5rX3JhdGUuCgo+ID4gKwkJaWYgKGxpbmtfcmF0ZV9pbmRleCA+PSAwKQo+ID4gKwkJCW1pbl9j bG9jayA9IG1heF9jbG9jayA9IGxpbmtfcmF0ZV9pbmRleDsKPiA+ICsJCW1pbl9sYW5lX2NvdW50 ID0gbWF4X2xhbmVfY291bnQgPSBpbnRlbF9kcC0+Y29tcGxpYW5jZS50ZXN0X2xhbmVfY291bnQ7 Cj4gPiArCX0KPiA+ICAJRFJNX0RFQlVHX0tNUygiRFAgbGluayBjb21wdXRhdGlvbiB3aXRoIG1h eCBsYW5lIGNvdW50ICVpICIKPiA+ICAJCSAgICAgICJtYXggYncgJWQgcGl4ZWwgY2xvY2sgJWlL SHpcbiIsCj4gPiAgCQkgICAgICBtYXhfbGFuZV9jb3VudCwgY29tbW9uX3JhdGVzW21heF9jbG9j a10sCj4gPiBAQCAtMzkyMCw3ICszOTMwLDQyIEBAIGludCBpbnRlbF9kcF9zaW5rX2NyYyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1OCAqY3JjKQo+ID4gIAo+ID4gIHN0YXRpYyB1aW50OF90 IGludGVsX2RwX2F1dG90ZXN0X2xpbmtfdHJhaW5pbmcoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiA+ICB7Cj4gPiAtCXVpbnQ4X3QgdGVzdF9yZXN1bHQgPSBEUF9URVNUX0FDSzsKPiA+ICsJ dWludDhfdCB0ZXN0X3Jlc3VsdCA9IERQX1RFU1RfTkFLOwo+ID4gKwlpbnQgc3RhdHVzID0gMDsK PiA+ICsJaW50IG1pbl9sYW5lX2NvdW50ID0gMTsKPiA+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9N QVhfU1VQUE9SVEVEX1JBVEVTXSA9IHt9Owo+ID4gKwlpbnQgbGlua19yYXRlX2luZGV4Owo+ID4g KwkvKiAoRFAgQ1RTIDEuMikKPiA+ICsJICogNC4zLjEuMTEKPiA+ICsJICovCj4gPiArCS8qIFJl YWQgdGhlIFRFU1RfTEFORV9DT1VOVCBhbmQgVEVTVF9MSU5LX1JUQUUgZmllbGRzIChEUCBDVFMg My4xLjQpICovCj4gPiArCXN0YXR1cyA9IGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4 LCBEUF9URVNUX0xBTkVfQ09VTlQsCj4gPiArCQkJCSAgJmludGVsX2RwLT5jb21wbGlhbmNlLnRl c3RfbGFuZV9jb3VudCk7Cj4gPiArCj4gPiArCWlmIChzdGF0dXMgPD0gMCkgewo+ID4gKwkJRFJN X0RFQlVHX0tNUygiTGFuZSBjb3VudCByZWFkIGZhaWxlZFxuIik7Cj4gPiArCQlyZXR1cm4gMDsK PiAKPiBTbyBpZiB5b3UgZmFpbCB0byByZWFkIHRoZSBsYW5lIGNvdW50LCB5b3UgcmV0dXJuIDAs IHdyaXRlIHRoYXQgdG8KPiBURVNUX1JFU1BPTlNFLCB3aGljaCBpcyBzdXBwb3NlZCB0byBoYXZl IG5vIGVmZmVjdCBvbiBURVNUX1JFUSBzdGF0ZSBwZXIKPiB0aGUgc3BlYywgaS5lLiB3cml0aW5n IDAgaXMgdXNlbGVzcy4gaW50ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF90eXBlIGlzCj4gc2V0IGFu eXdheSwgd2hpY2ggd2lsbCB0cnkgdG8gdXNlIHRoZSAoc3RhbGUpIGxhbmUgY291bnQgYW5kIGxp bmsgcmF0ZQo+IHZhbHVlcy4KPiAKCkkgYWdyZWUgdGhhdCB3cml0aW5nIGEgMCB0byB0ZXN0X3Jl c3VsdCBoYXMgbm8gZWZmZWN0IHRvIHRoZSB0ZXN0IHJlc3BvbnNlIGFuZAp0aGVyZSBpcyBhIHBv c3NpYmlsaXR5IG9mIHVzaW5nIHN0YWxlIHZhbHVlcyBvZiBsYW5lIGNvdW50IGFuZCBsaW5rIHJh dGUuClNvIG5vdyBpbiB0aGUgbmV3IHJldmlzaW9uLCBJIGFtIHJldHVybmluZyBhIFRFU1RfTkFL IGluIGNhc2Ugb2YgYm90aCByZWFkIGZhaWx1cmVzCmFzIHdlbGwgYXMgdGhlIGludmFsaWQgdmFs dWVzLgpBcyBwZXIgdGhlIG5ldyBwYXRjaCB5b3UgaGF2ZSBzdWJtaXR0ZWQsIG9uY2UgaW50ZWxf ZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdCgpIHJlY2lldmVzCmEgVEVTVF9OQUsgaXQgc2hvdWxkIG5v dCBzZXQgdGhlIHRlc3RfdHlwZSBhbmQgaXQgd2lsbCBlbGltaW5hdGUgdGhlIHBvc3NpYmlsaXR5 Cm9mIHVzaW5nIHN0YWxlIHZhbHVlcyBvZiBsaW5rIHJhdGUgYW5kIGxhbmUgY291bnQuCgoKPiA+ ICsJfQo+ID4gKwlpbnRlbF9kcC0+Y29tcGxpYW5jZS50ZXN0X2xhbmVfY291bnQgJj0gRFBfTUFY X0xBTkVfQ09VTlRfTUFTSzsKPiA+ICsJLyogVmFsaWRhdGUgdGhlIHJlcXVlc3RlZCBsYW5lIGNv dW50ICovCj4gPiArCWlmIChpbnRlbF9kcC0+Y29tcGxpYW5jZS50ZXN0X2xhbmVfY291bnQgPCBt aW5fbGFuZV9jb3VudCB8fAo+ID4gKwkgICAgaW50ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF9sYW5l X2NvdW50ID4gaW50ZWxfZHAtPm1heF9zaW5rX2xhbmVfY291bnQpCj4gPiArCQlyZXR1cm4gdGVz dF9yZXN1bHQ7Cj4gCj4gQnV0IGlmIHRoZSBsYW5lIGNvdW50IGlzIG91dCBvZiBib3VuZHMsIHlv dSByZXR1cm4gTkFLIGFuZCB3cml0ZSB0aGF0IHRvCj4gVEVTVF9SRVNQT05TRSwgKmJ1dCogc2V0 IGludGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfdHlwZSBhbmQKPiBpbnRlbF9kcC0+Y29tcGxpYW5j ZS50ZXN0X2xhbmVfY291bnQgYW55d2F5LCBhbmQgd2lsbCB0cnkgdG8gdXNlIHRoZQo+IHZhbHVl cyBsYXRlciBvbiBhbnl3YXkuCj4gCgpUaGlzIGhhcyBiZWVuIGFkZHJlc3NlZCBpbiB0aGUgbmV3 IHJldmlzaW9uIGJ5IHN0b3JpbmcgdGhlIGxhbmUgY291bnQgcmVhZApmcm9tIERQQ0QgdGVzdCBy ZWdpc3RlcnMgZmlyc3QgaW50byBhIGxvY2FsIHRlc3RfbGFuZV9jb3VudCB2YXJpYWJsZS4gVGhp cwp2YWx1ZXMgaXMgdGhlbiB2YWxpZGF0ZWQgYW5kIG1hZGUgc3VyZSBpdCBpcyBub3Qgb3V0IG9m IGJvdW5kcy4gSWYgaXQgaXMgaW52YWxpZCwKSSByZXR1cm4gYSBURVNUX05BSyBzbyB0ZXN0X3R5 cGUgd2lsbCBub3QgYmUgc2V0IGFuZCB0aGlzIHZhbHVlcyB3aWxsIG5vdCBiZSB3cml0dGVuIHRv CmludGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfbGFuZV9jb3VudC4gSWYgdGhpcyB2YWx1ZSBpcyB3 aXRoaW4gYm91bmRzLCBvbmx5IHRoZW4KSSBnbyBhaGVhZCBhbmQgcG9wdWxhdGUgdGhlIGludGVs X2RwLT5jb21wbGlhbmNlLnRlc3RfbGFuZV9jb3VudCBmaWVsZC4KCgo+ID4gKwo+ID4gKwlzdGF0 dXMgPSBkcm1fZHBfZHBjZF9yZWFkYigmaW50ZWxfZHAtPmF1eCwgRFBfVEVTVF9MSU5LX1JBVEUs Cj4gPiArCQkJCSAgICZpbnRlbF9kcC0+Y29tcGxpYW5jZS50ZXN0X2xpbmtfcmF0ZSk7Cj4gPiAr CWlmIChzdGF0dXMgPD0gMCkgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiTGluayBSYXRlIHJlYWQg ZmFpbGVkXG4iKTsKPiA+ICsJCXJldHVybiAwOwo+ID4gKwl9Cj4gPiArCS8qIFZhbGlkYXRlIHRo ZSByZXF1ZXN0ZWQgbGluayByYXRlICovCj4gPiArCWxpbmtfcmF0ZV9pbmRleCA9IGludGVsX2Rw X2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwKPiA+ICsJCQkJCQkgICBjb21tb25fcmF0ZXMsCj4g PiArCQkJCQkJICAgZHJtX2RwX2J3X2NvZGVfdG9fbGlua19yYXRlKGludGVsX2RwLT5jb21wbGlh bmNlLnRlc3RfbGlua19yYXRlKSk7Cj4gPiArCWlmIChsaW5rX3JhdGVfaW5kZXggPCAwKQo+ID4g KwkJcmV0dXJuIHRlc3RfcmVzdWx0Owo+IAo+IFNhbWUgYXMgYWJvdmUgZm9yIGxhbmUgY291bnQs IGluIGJvdGggZXJyb3Igc2NlbmFyaW9zLgo+IAo+IFlvdSBzaG91bGQgcHJvYmFibHkgcmVhZCBi b3RoIGxhbmUgY291bnQgYW5kIGxpbmsgcmF0ZSB0byBsb2NhbAo+IHZhcmlhYmxlcyBmaXJzdCwg YmFpbCBvdXQgb24gcmVhZCBmYWlsdXJlcywgY2hlY2sgdGhlIHZhbHVlcywgYmFpbCBvdXQKPiBv biBpbnZhbGlkIHZhbHVlcywgdGhlbiBzZXQgdGhlIHZhbHVlcyBpbiBpbnRlbF9kcC0+Y29tcGxp YW5jZS4KPgoKWWVzIHRoaXMgaXMgZXhhY3RseSB3aGF0IHRoZSBuZXcgcmV2aXNpb24gZG9lcy4K IAo+IGludGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVlc3QoKSBzaG91bGQgcHJvYmFibHkgYmUgZml4 ZWQgdG8gbm90IHNldAo+IGludGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfdHlwZSBvbiBlcnJvcnMu IFByZXN1bWFibHkgaXQgc2hvdWxkIG5vdCB3cml0ZQo+IHplcm8gdmFsdWVzIHRvIFRFU1RfUkVT UE9OU0UgYmVjYXVzZSBpdCBzaG91bGQgaGF2ZSBubyBlZmZlY3QgYW55d2F5Owo+IGJ1dCBJJ20g bm90IHN1cmUgaWYgd2Ugc2hvdWxkIHJldHVybiAwIGZyb20gdGhlIGF1dG90ZXN0IGZ1bmN0aW9u cwo+IGFueXdheS4KPgoKWWVzLCB3ZSBzaG91bGQgbm90IHJldHVybiAwIGZyb20gdGhlIGF1dG90 ZXN0IGZ1bmN0aW9ucy4gU28gSSBhbSBvbmx5IHJldHVybmluZwplaXRoZXIgYSBOQUsgb24gcmVh ZCBmYWlsdXJlcyBvciBpbnZhbGlkIHZhbHVlcyBvciBhIFRFU1RfQUNLIGluIGNhc2Ugb2Ygc3Vj Y2Vzcy4KCiAKPiA+ICsKPiA+ICsJdGVzdF9yZXN1bHQgPSBEUF9URVNUX0FDSzsKPiA+ICAJcmV0 dXJuIHRlc3RfcmVzdWx0Owo+IAo+IFBsZWFzZSB0ZWxsIG1lIHdoYXQgcHVycG9zZSBkb2VzIHRo ZSB0ZXN0X3Jlc3VsdCB2YXJpYWJsZSBoYXZlIGluIHRoaXMKPiBmdW5jdGlvbi4gSSB0aG91Z2h0 IEkgc2FpZCB5b3UgY291bGQgZ2V0IHJpZCBvZiB0aGUgdmFyaWFibGUuCj4gCj4gQlIsCj4gSmFu aS4KPgoKVGhlIHdob2xlIHB1cnBvc2Ugb2YgYWRkaW5nIGEgdmFyaWFibGUgbmFtZWQgdGVzdF9y ZXN1bHQgZm9yIHJlYWRhYmlsaXR5LgpJIHRoaW5rIHRoYXQgaW5zdGVhZCBvZiByZXR1cm5pbmcg TkFLIGFuZCBBQ0sgaW4gZGlmZmVybnQgc2NlbmFyaW9zLCBpdHMgbW9yZQpyZWFkYWJsZSB0byBy ZXR1cm4gdGVzdF9yZXN1bHQgaW5zdGVhZC4gVGhpcyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIE5B SyBvciBBQ0sKYXMgcGVyIHRoZSBmYWlsdXJlcyBvciBzdWNjZXNzLgpUaGF0IGlzIHRoZSByZWFz b24gd2h5IEkgaGF2ZSBzdGlsbCBrZXB0IHRoaXMgdmFyaWFibGUuCgpSZWdhcmRzCk1hbmFzaQoK Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTQxMzUsOSArNDE4MCw4IEBAIHN0YXRpYyB2b2lkIGludGVs X2RwX2hhbmRsZV90ZXN0X3JlcXVlc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAJ aWYgKCFpbnRlbF9kcC0+bGFuZV9jb3VudCkKPiA+ICAJCXJldHVybjsKPiA+ICAKPiA+IC0JLyog aWYgbGluayB0cmFpbmluZyBpcyByZXF1ZXN0ZWQgd2Ugc2hvdWxkIHBlcmZvcm0gaXQgYWx3YXlz ICovCj4gPiAtCWlmICgoaW50ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF90eXBlID09IERQX1RFU1Rf TElOS19UUkFJTklORykgfHwKPiA+IC0JICAgICghZHJtX2RwX2NoYW5uZWxfZXFfb2sobGlua19z dGF0dXMsIGludGVsX2RwLT5sYW5lX2NvdW50KSkpIHsKPiA+ICsJLyogUmV0cmFpbiBpZiBDaGFu bmVsIEVRIG9yIENSIG5vdCBvayAqLwo+ID4gKwlpZiAoIWRybV9kcF9jaGFubmVsX2VxX29rKGxp bmtfc3RhdHVzLCBpbnRlbF9kcC0+bGFuZV9jb3VudCkpIHsKPiA+ICAJCURSTV9ERUJVR19LTVMo IiVzOiBjaGFubmVsIEVRIG5vdCBvaywgcmV0cmFpbmluZ1xuIiwKPiA+ICAJCQkgICAgICBpbnRl bF9lbmNvZGVyLT5iYXNlLm5hbWUpOwo+ID4gIAo+ID4gQEAgLTQxNjIsNiArNDIwNiw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2RwX2hhbmRsZV90ZXN0X3JlcXVlc3Qoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiA+ICBpbnRlbF9kcF9zaG9ydF9wdWxzZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2Rl dihpbnRlbF9kcCk7Cj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0g JmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsKPiA+ICAJdTggc2lua19pcnFfdmVjdG9y ID0gMDsKPiA+ICAJdTggb2xkX3NpbmtfY291bnQgPSBpbnRlbF9kcC0+c2lua19jb3VudDsKPiA+ ICAJYm9vbCByZXQ7Cj4gPiBAQCAtNDE5NSw3ICs0MjQwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZHBfaGFuZGxlX3Rlc3RfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAkJ CQkgICBzaW5rX2lycV92ZWN0b3IpOwo+ID4gIAo+ID4gIAkJaWYgKHNpbmtfaXJxX3ZlY3RvciAm IERQX0FVVE9NQVRFRF9URVNUX1JFUVVFU1QpCj4gPiAtCQkJRFJNX0RFQlVHX0RSSVZFUigiVGVz dCByZXF1ZXN0IGluIHNob3J0IHB1bHNlIG5vdCBoYW5kbGVkXG4iKTsKPiA+ICsJCQlpbnRlbF9k cF9oYW5kbGVfdGVzdF9yZXF1ZXN0KGludGVsX2RwKTsKPiA+ICAJCWlmIChzaW5rX2lycV92ZWN0 b3IgJiAoRFBfQ1BfSVJRIHwgRFBfU0lOS19TUEVDSUZJQ19JUlEpKQo+ID4gIAkJCURSTV9ERUJV R19EUklWRVIoIkNQIG9yIHNpbmsgc3BlY2lmaWMgaXJxIHVuaGFuZGxlZFxuIik7Cj4gPiAgCX0K PiA+IEBAIC00MjAzLDYgKzQyNDgsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfaGFuZGxlX3Rl c3RfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAlkcm1fbW9kZXNldF9s b2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOwo+ID4gIAlpbnRl bF9kcF9jaGVja19saW5rX3N0YXR1cyhpbnRlbF9kcCk7Cj4gPiAgCWRybV9tb2Rlc2V0X3VubG9j aygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKPiA+ICsJaWYgKGludGVsX2Rw LT5jb21wbGlhbmNlLnRlc3RfdHlwZSA9PSBEUF9URVNUX0xJTktfVFJBSU5JTkcpIHsKPiA+ICsJ CURSTV9ERUJVR19LTVMoIkxpbmsgVHJhaW5pbmcgQ29tcGxpYW5jZSBUZXN0IHJlcXVlc3RlZFxu Iik7Cj4gPiArCQkvKiBTZW5kIGEgSG90cGx1ZyBVZXZlbnQgdG8gdXNlcnNwYWNlIHRvIHN0YXJ0 IG1vZGVzZXQgKi8KPiA+ICsJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoaW50ZWxfZW5j b2Rlci0+YmFzZS5kZXYpOwo+ID4gKwl9Cj4gPiAgCj4gPiAgCXJldHVybiB0cnVlOwo+ID4gIH0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCAwY2VjMDAxLi4xNTg2YTAyIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtODk0LDYgKzg5NCw4IEBA IHN0cnVjdCBpbnRlbF9kcF9jb21wbGlhbmNlIHsKPiA+ICAJdW5zaWduZWQgbG9uZyB0ZXN0X3R5 cGU7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kcF9jb21wbGlhbmNlX2RhdGEgdGVzdF9kYXRhOwo+ID4g IAlib29sIHRlc3RfYWN0aXZlOwo+ID4gKwl1OCB0ZXN0X2xpbmtfcmF0ZTsKPiA+ICsJdTggdGVz dF9sYW5lX2NvdW50Owo+ID4gIH07Cj4gPiAgCj4gPiAgc3RydWN0IGludGVsX2RwIHsKPiAKPiAt LSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==