From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2] drm/i915/tgl: Implement TGL DisplayPort training sequence Date: Tue, 20 Aug 2019 16:07:39 -0700 Message-ID: <20190820230739.GC25055@intel.com> References: <20190817093902.2171-26-lucas.demarchi@intel.com> <20190820220138.10343-1-jose.souza@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 859E66E8A8 for ; Tue, 20 Aug 2019 23:06:08 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190820220138.10343-1-jose.souza@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?iso-8859-1?Q?Jos=E9?= Roberto de Souza Cc: Lucas De Marchi , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMjAsIDIwMTkgYXQgMDM6MDE6MzhQTSAtMDcwMCwgSm9zw6kgUm9iZXJ0byBk ZSBTb3V6YSB3cm90ZToKPiBPbiBUR0wgc29tZSByZWdpc3RlcnMgbW92ZWQgZnJvbSBEREkgdG8g dHJhbnNjb2RlciBhbmQgdGhlCj4gRGlzcGxheVBvcnQgdHJhaW5pbmcgc2VxdWVuY2UgaGFzIGEg c2VwYXJhdGUgQlNwZWMgcGFnZS4KPiAKPiBJIHN0YXJ0ZWQgYWRkaW5nICdpZnMnIHRvIHRoZSBv cmlnaW5hbCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcCgpIGJ1dAo+IGl0IHdhcyBiZWNvbWluZyBy ZWFsbHkgaGFyZCB0byBmb2xsb3csIHNvIGEgbmV3IGFuZCBjbGVhbmVyIGZ1bmN0aW9uCj4gZm9y IFRHTCB3YXMgYWRkZWQgd2l0aCBjb21tZW50cyBvZiBhbGwgc3RlcHMuIEl0J3Mgc2ltaWxhciB0 byBJQ0wsIGJ1dAo+IGRpZmZlcmVudCBlbm91Z2ggdG8gZGVzZXJ2ZSBhIG5ldyBmdW5jdGlvbgo+ IAo+IFRoZSByZXN0IG9mIERpc3BsYXlQb3J0IGVuYWJsZSBhbmQgdGhlIHdob2xlIGRpc2FibGUg c2VxdWVuY2VzCj4gcmVtYWluZWQgdGhlIHNhbWUuCj4gCj4gdjI6IEZFQyBhbmQgRFNDIHNob3Vs ZCBiZSBlbmFibGVkIG9uIHNpbmsgc2lkZSBiZWZvcmUgc3RhcnQgbGluawo+IHRyYWluaW5nKE1h YXJ0ZW4gcmVwb3J0ZWQgYW5kIE1hbmFzaSBjb25maXJtZWQgdGhlIERTQyBwYXJ0KQo+IAo+IEJT cGVjOiA0OTE5MAo+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPgo+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwu Y29tPgo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlA aW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rk aS5jIHwgMTM4ICsrKysrKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHAuYyAgfCAgIDggKy0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMzggaW5z ZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGRpLmMKPiBpbmRleCA4ZWIyYjNlYzAxZWQuLjFjMTUzNGUyZDgzMyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+IEBAIC0xNzYxLDcgKzE3 NjEsMTQgQEAgdm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlJOTE1X1dSSVRFKFRSQU5TX0RESV9G VU5DX0NUTChjcHVfdHJhbnNjb2RlciksIHRlbXApOwo+ICB9Cj4gIAo+IC12b2lkIGludGVsX2Rk aV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICsvKgo+ICsgKiBSZXR1cm5zIHRoZSBUUkFOU19ERElfRlVOQ19DVEwgdmFs dWUgYmFzZWQgb24gQ1JUQyBzdGF0ZS4KPiArICoKPiArICogT25seSBpbnRlbmRlZCB0byBiZSB1 c2VkIGJ5IGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKCkgYW5kCj4gKyAqIGludGVs X2RkaV9jb25maWdfdHJhbnNjb2Rlcl9mdW5jKCkuCj4gKyAqLwo+ICtzdGF0aWMgdTMyCj4gK2lu dGVsX2RkaV90cmFuc2NvZGVyX2Z1bmNfcmVnX3ZhbF9nZXQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICAJc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIgPSBpbnRlbF9kZGlfZ2V0X2NydGNfZW5jb2RlcihjcnRjKTsKPiBAQCAt MTg0NSw2ICsxODUyLDMzIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAkJdGVtcCB8PSBE RElfUE9SVF9XSURUSChjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiAgCX0KPiAgCj4gKwlyZXR1 cm4gdGVtcDsKPiArfQo+ICsKPiArdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJfZnVu Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArewo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKPiArCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3Rh dGUtPmNwdV90cmFuc2NvZGVyOwo+ICsJdTMyIHRlbXA7Cj4gKwo+ICsJdGVtcCA9IGludGVsX2Rk aV90cmFuc2NvZGVyX2Z1bmNfcmVnX3ZhbF9nZXQoY3J0Y19zdGF0ZSk7Cj4gKwlJOTE1X1dSSVRF KFRSQU5TX0RESV9GVU5DX0NUTChjcHVfdHJhbnNjb2RlciksIHRlbXApOwo+ICt9Cj4gKwo+ICsv Kgo+ICsgKiBTYW1lIGFzIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKCkgYnV0IGl0 IGRvIG5vdCBzZXQgdGhlIGVuYWJsZSBiaXQKPiArICovCj4gK3N0YXRpYyB2b2lkCj4gK2ludGVs X2RkaV9jb25maWdfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICsJZW51bSB0cmFuc2NvZGVy IGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gKwl1MzIgdGVt cDsKPiArCj4gKwl0ZW1wID0gaW50ZWxfZGRpX3RyYW5zY29kZXJfZnVuY19yZWdfdmFsX2dldChj cnRjX3N0YXRlKTsKPiArCXRlbXAgJj0gflRSQU5TX0RESV9GVU5DX0VOQUJMRTsKPiAgCUk5MTVf V1JJVEUoVFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKSwgdGVtcCk7Cj4gIH0KPiAg Cj4gQEAgLTMxNjAsOSArMzE5NCw5MyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9m ZWNfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlQT1NUSU5HX1JFQUQo RFBfVFBfQ1RMKHBvcnQpKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9l bmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCQkgICAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gLQkJCQkgICAgY29uc3Qgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gK3N0YXRpYyB2b2lkIHRnbF9k ZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCQkgIGNvbnN0 IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVu Y29kZXItPnBvcnQpOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBl bmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJYm9vbCBpc19tc3QgPSBpbnRlbF9j cnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9EUF9NU1QpOwo+ICsJaW50IGxl dmVsID0gaW50ZWxfZGRpX2RwX2xldmVsKGludGVsX2RwKTsKPiArCj4gKwlpbnRlbF9kcF9zZXRf bGlua19wYXJhbXMoaW50ZWxfZHAsIGNydGNfc3RhdGUtPnBvcnRfY2xvY2ssCj4gKwkJCQkgY3J0 Y19zdGF0ZS0+bGFuZV9jb3VudCwgaXNfbXN0KTsKPiArCj4gKwkvKiAxLmEgZ290IG9uIGludGVs X2F0b21pY19jb21taXRfdGFpbCgpICovCgpJIHRoaW5rIGlmIHRoaXMgY29tbWVudCBpcyBrZXB0 IGluIHRoZSBjb2RlLCBiZXR0ZXIgZWxhYm9yYXRlIG9uIHdoYXQgMSBpcwoKPiArCj4gKwkvKiAy LiAqLwo+ICsJaW50ZWxfZWRwX3BhbmVsX29uKGludGVsX2RwKTsKPiArCj4gKwkvKgo+ICsJICog MS5iLCAzLiBhbmQgNC4gaXMgZG9uZSBieSBiZWZvcmUgdGhpcyBmdW5jdGlvbnMgYnkKPiArCSAq IGhhc3dlbGxfY3J0Y19lbmFibGUoKS0+aW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoKSBh bmQKPiArCSAqIGhhc3dlbGxfY3J0Y19lbmFibGUoKS0+aW50ZWxfZW5hYmxlX3NoYXJlZF9kcGxs KCkKPiArCSAqLwoKQ3VycmVudGx5IHRoZXJlIGlzIG9ubHkgZ2VuMTFfZHNpX3ByZV9wbGxfZW5h YmxlIHByZV9wbGxfZW5hYmxlIGhvb2ssIGlzIHRoZXJlIGEgCnNlcGFyYXRlIGdlbjEyIGhvb2sg Zm9yIHBvcnQgY2xvY2sgcHJvZ3JhbW1pbmcgaW4gc3RlcCA0PwoKPiArCj4gKwkvKiA1LiAqLwo+ ICsJaWYgKCFpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkgfHwKPiArCSAgICBkaWdfcG9y dC0+dGNfbW9kZSAhPSBUQ19QT1JUX1RCVF9BTFQpCj4gKwkJaW50ZWxfZGlzcGxheV9wb3dlcl9n ZXQoZGV2X3ByaXYsCj4gKwkJCQkJZGlnX3BvcnQtPmRkaV9pb19wb3dlcl9kb21haW4pOwo+ICsK PiArCS8qIDYuICovCj4gKwlpY2xfcHJvZ3JhbV9tZ19kcF9tb2RlKGRpZ19wb3J0KTsKPiArCj4g KwkvKgo+ICsJICogNy5hIC0gU3RlcHMgaW4gdGhpcyBmdW5jdGlvbiB0aGF0IHNob3VsZCBvbmx5 IGJlIGV4ZWN1dGVkIG92ZXIgTVNUCj4gKwkgKiBtYXN0ZXIgYXMgTVNUIGVuY29kZXJzIHdpbGwg b25seSBiZSBleGVjdXRlZCBvbiBNU1QgbWFzdGVyIGFzIE1TVAo+ICsJICogZW5jb2RlciBoYXZl IGhhdmUgaXQncyBvd24gcHJlX2VuYWJsZSgpIGhvb2sKPiArCSAqLwo+ICsJaW50ZWxfZGRpX2Vu YWJsZV9waXBlX2Nsb2NrKGNydGNfc3RhdGUpOwo+ICsKPiArCS8qIDcuYiAqLwo+ICsJaW50ZWxf ZGRpX2NvbmZpZ190cmFuc2NvZGVyX2Z1bmMoY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJLyogNy5kICov Cj4gKwlpY2xfZGlzYWJsZV9waHlfY2xvY2tfZ2F0aW5nKGRpZ19wb3J0KTsKPiArCj4gKwkvKiA3 LmUgKi8KPiArCWljbF9kZGlfdnN3aW5nX3NlcXVlbmNlKGVuY29kZXIsIGNydGNfc3RhdGUtPnBv cnRfY2xvY2ssIGxldmVsLAo+ICsJCQkJZW5jb2Rlci0+dHlwZSk7Cj4gKwo+ICsJLyogNy5mICov Cj4gKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKSB7Cj4gKwkJYm9vbCBs YW5lX3JldmVyc2FsID0KPiArCQkJZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyAmIERESV9CVUZf UE9SVF9SRVZFUlNBTDsKPiArCj4gKwkJaW50ZWxfY29tYm9fcGh5X3Bvd2VyX3VwX2xhbmVzKGRl dl9wcml2LCBwaHksIGZhbHNlLAo+ICsJCQkJCSAgICAgICBjcnRjX3N0YXRlLT5sYW5lX2NvdW50 LAo+ICsJCQkJCSAgICAgICBsYW5lX3JldmVyc2FsKTsKPiArCX0KPiArCj4gKwkvKiA3LmcgKi8K PiArCWludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoZW5jb2Rlcik7Cj4gKwo+ICsJaWYgKCFpc19t c3QpCj4gKwkJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9EUE1TX09OKTsK PiArCj4gKwlpbnRlbF9kcF9zaW5rX3NldF9kZWNvbXByZXNzaW9uX3N0YXRlKGludGVsX2RwLCBj cnRjX3N0YXRlLCB0cnVlKTsKPiArCS8qCj4gKwkgKiBEREkgRkVDOiAiYW50aWNpcGF0ZXMgZW5h YmxpbmcgRkVDIGVuY29kaW5nIHNldHMgdGhlIEZFQ19SRUFEWSBiaXQKPiArCSAqIGluIHRoZSBG RUNfQ09ORklHVVJBVElPTiByZWdpc3RlciB0byAxIGJlZm9yZSBpbml0aWF0aW5nIGxpbmsKPiAr CSAqIHRyYWluaW5nCj4gKwkgKi8KPiArCWludGVsX2RwX3Npbmtfc2V0X2ZlY19yZWFkeShpbnRl bF9kcCwgY3J0Y19zdGF0ZSk7Cj4gKwkvKiA3LmMsIDcuaCwgNy5pLCA3LmogKi8KPiArCWludGVs X2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ICsKPiArCS8qIDcuayAqLwo+ICsJaW50 ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKCmludGVsX2RkaV9lbmFibGVfZmVjKGVu Y29kZXIsIGNydGNfc3RhdGUpOyBjYWxsIGJlZm9yZSBkc2NfZW5hYmxlIGNhbGwgaXMgbWlzc2lu ZwoKTWFuYXNpCgo+ICsKPiArCS8qIDcubCAqLwo+ICsJaW50ZWxfZHNjX2VuYWJsZShlbmNvZGVy LCBjcnRjX3N0YXRlKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaHN3X2RkaV9wcmVfZW5hYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCSAgY29uc3Qgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gQEAg LTMyMjgsNiArMzM0NiwxOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWludGVsX2RzY19lbmFibGUoZW5jb2Rl ciwgY3J0Y19zdGF0ZSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5h YmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkJICAgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCj4g KwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKPiArCQl0Z2xfZGRpX3ByZV9lbmFibGVf ZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7Cj4gKwllbHNlCj4gKwkJaHN3X2Rk aV9wcmVfZW5hYmxlX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIGNvbm5fc3RhdGUpOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqY29ubl9zdGF0ZSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5j Cj4gaW5kZXggNWM0NWEzYmIxMDJkLi4xYTU5YzUwZjdlMGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gQEAgLTM5NTAsMTMgKzM5NTAsMTMgQEAgdm9pZCBp bnRlbF9kcF9zZXRfaWRsZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g IAlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwgdmFsKTsKPiAgCj4gIAkvKgo+IC0JICogT24g UE9SVF9BIHdlIGNhbiBoYXZlIG9ubHkgZURQIGluIFNTVCBtb2RlLiBUaGVyZSB0aGUgb25seSBy ZWFzb24KPiAtCSAqIHdlIG5lZWQgdG8gc2V0IGlkbGUgdHJhbnNtaXNzaW9uIG1vZGUgaXMgdG8g d29yayBhcm91bmQgYSBIVyBpc3N1ZQo+IC0JICogd2hlcmUgd2UgZW5hYmxlIHRoZSBwaXBlIHdo aWxlIG5vdCBpbiBpZGxlIGxpbmstdHJhaW5pbmcgbW9kZS4KPiArCSAqIFVudGlsIFRHTCBvbiBQ T1JUX0Egd2UgY2FuIGhhdmUgb25seSBlRFAgaW4gU1NUIG1vZGUuIFRoZXJlIHRoZSBvbmx5Cj4g KwkgKiByZWFzb24gd2UgbmVlZCB0byBzZXQgaWRsZSB0cmFuc21pc3Npb24gbW9kZSBpcyB0byB3 b3JrIGFyb3VuZCBhIEhXCj4gKwkgKiBpc3N1ZSB3aGVyZSB3ZSBlbmFibGUgdGhlIHBpcGUgd2hp bGUgbm90IGluIGlkbGUgbGluay10cmFpbmluZyBtb2RlLgo+ICAJICogSW4gdGhpcyBjYXNlIHRo ZXJlIGlzIHJlcXVpcmVtZW50IHRvIHdhaXQgZm9yIGEgbWluaW11bSBudW1iZXIgb2YKPiAgCSAq IGlkbGUgcGF0dGVybnMgdG8gYmUgc2VudC4KPiAgCSAqLwo+IC0JaWYgKHBvcnQgPT0gUE9SVF9B KQo+ICsJaWYgKHBvcnQgPT0gUE9SVF9BICYmIElOVEVMX0dFTihkZXZfcHJpdikgPCAxMikKPiAg CQlyZXR1cm47Cj4gIAo+ICAJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgRFBf VFBfU1RBVFVTKHBvcnQpLAo+IC0tIAo+IDIuMjIuMQo+IApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=