From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH v4] drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug Date: Wed, 06 Feb 2019 18:56:06 -0800 Message-ID: <741ea2a06b50e3d65b6d416d07bba58e0ec43087.camel@intel.com> References: <20190206211845.5322-1-jose.souza@intel.com> Reply-To: dhinakaran.pandiyan@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7374C6E0A8 for ; Thu, 7 Feb 2019 02:56:12 +0000 (UTC) In-Reply-To: <20190206211845.5322-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE5LTAyLTA2IGF0IDEzOjE4IC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOgo+IENoYW5naW5nIHRoZSBpOTE1X2VkcF9wc3JfZGVidWcgd2FzIGVuYWJsaW5nLCBk aXNhYmxpbmcgb3Igc3dpdGNoaW5nCj4gUFNSIHZlcnNpb24gYnkgZGlyZWN0bHkgY2FsbGluZyBp bnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoKSBhbmQKPiBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZCgp LCB3aGF0IGlzIG5vdCB0aGUgZGVmYXVsdCBQU1IgcGF0aCB0aGF0IHdpbGwKPiBiZSBleGVjdXRl ZCBieSByZWFsIHVzZXJzLgo+IAo+IFNvIGxldHMgZm9yY2UgYSBmYXN0c2V0IGluIHRoZSBQU1Ig Q1JUQyB0byB0cmlnZ2VyIGEgcGlwZSB1cGRhdGUgYW5kCj4gc3RyZXNzIHRoZSBkZWZhdWx0IGNv ZGUgcGF0aC4KPiAKPiBSZWNlbnRseSBhIGJ1ZyB3YXMgZm91bmQgd2hlbiBzd2l0Y2hpbmcgZnJv bSBQU1IyIHRvIFBTUjEgd2hpbGUKPiBlbmFibGVfcHNyIGtlcm5lbCBwYXJhbWV0ZXIgd2FzIHNl dCB0byB0aGUgZGVmYXVsdCBwYXJhbWV0ZXIsIHRoaXMKPiBjaGFuZ2VzIGZpeCBpdCBhbmQgYWxz byBmaXhlcyB0aGUgYnVnIGxpbmtlZCBiZWxsb3cgd2VyZSBEUlJTIHdhcwo+IGxlZnQgZW5hYmxl ZCB0b2dldGhlciB3aXRoIFBTUiB3aGVuIGVuYWJsaW5nIFBTUiBmcm9tIGRlYnVnZnMuCj4gCj4g djI6IEhhbmRsaW5nIG1pc3NpbmcgY2FzZTogZGlzYWJsZWQgdG8gUFNSMQo+IAo+IHYzOiBOb3Qg ZHVwbGljYXRpbmcgdGhlIHdob2xlIGF0b21pYyBzdGF0ZShNYWFydGVuKQo+IAo+IHY0OiBBZGRp bmcgYmFjayB0aGUgbWlzc2luZyBjYWxsIHRvIGludGVsX3Bzcl9pcnFfY29udHJvbChEaGluYWth cmFuKQoKUmV2aWV3ZWQtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5 YW5AaW50ZWwuY29tPgoKPiAKPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9y Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzQxCj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRo aW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28u dml2aUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8 am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIHwgIDE0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICB8ICAgMiAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAgNiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyAgICB8IDE4MiArKysrKysrKysrKysrKysrLS0t LS0tLS0KPiAtLS0tCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMoKyksIDkzIGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCAw YmQ4OTBjMDRmZTQuLjIwYTQ5Y2M0YTlhMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gQEAgLTI2MDcsNyArMjYwNyw2IEBAIHN0YXRpYyBpbnQKPiAgaTkxNV9lZHBfcHNy X2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwo+IC0Jc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4IGN0eDsKPiAgCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwo+ICAJaW50IHJldDsKPiAgCj4g QEAgLTI2MTgsMTggKzI2MTcsNyBAQCBpOTE1X2VkcF9wc3JfZGVidWdfc2V0KHZvaWQgKmRhdGEs IHU2NCB2YWwpCj4gIAo+ICAJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2 KTsKPiAgCj4gLQlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwKPiBEUk1fTU9ERVNFVF9B Q1FVSVJFX0lOVEVSUlVQVElCTEUpOwo+IC0KPiAtcmV0cnk6Cj4gLQlyZXQgPSBpbnRlbF9wc3Jf c2V0X2RlYnVnZnNfbW9kZShkZXZfcHJpdiwgJmN0eCwgdmFsKTsKPiAtCWlmIChyZXQgPT0gLUVE RUFETEspIHsKPiAtCQlyZXQgPSBkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwo+IC0JCWlmICgh cmV0KQo+IC0JCQlnb3RvIHJldHJ5Owo+IC0JfQo+IC0KPiAtCWRybV9tb2Rlc2V0X2Ryb3BfbG9j a3MoJmN0eCk7Cj4gLQlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gKwlyZXQgPSBp bnRlbF9wc3JfZGVidWdfc2V0KGRldl9wcml2LCB2YWwpOwo+ICAKPiAgCWludGVsX3J1bnRpbWVf cG1fcHV0KGRldl9wcml2LCB3YWtlcmVmKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiBpbmRleCBhMjI5MzE1MmNiNmEuLjk4OWQxYWM3MmVjOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IEBAIC00OTYsNyArNDk2LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKPiAgCj4gIAl1 MzIgZGVidWc7Cj4gIAlib29sIHNpbmtfc3VwcG9ydDsKPiAtCWJvb2wgcHJlcGFyZWQsIGVuYWJs ZWQ7Cj4gKwlib29sIGVuYWJsZWQ7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmRwOwo+ICAJZW51bSBw aXBlIHBpcGU7Cj4gIAlib29sIGFjdGl2ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4g aW5kZXggY2E3MDU1NDZhMGFiLi45MjExZTQ1Nzk0ODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+IEBAIC0zNTU2LDcgKzM1NTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfdXBk YXRlX3BpcGVfZHAoc3RydWN0Cj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7 Cj4gIAo+IC0JaW50ZWxfcHNyX2VuYWJsZShpbnRlbF9kcCwgY3J0Y19zdGF0ZSk7Cj4gKwlpbnRl bF9wc3JfdXBkYXRlKGludGVsX2RwLCBjcnRjX3N0YXRlKTsKPiAgCWludGVsX2VkcF9kcnJzX2Vu YWJsZShpbnRlbF9kcCwgY3J0Y19zdGF0ZSk7Cj4gIAo+ICAJaW50ZWxfcGFuZWxfdXBkYXRlX2Jh Y2tsaWdodChlbmNvZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggOWVjM2QwMGZiZDE5Li4zZWJhMzNhMmY5NTEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0yMDc3LDkgKzIwNzcsOSBAQCB2b2lkIGludGVs X3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwLAo+ICAJCSAgICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgdm9pZCBpbnRlbF9wc3Jf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCSAgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSk7Cj4gLWludCBpbnRlbF9wc3Jfc2V0 X2RlYnVnZnNfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCSAg ICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwKPiAtCQkJICAgICAgIHU2 NCB2YWx1ZSk7Cj4gK3ZvaWQgaW50ZWxfcHNyX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ICsJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KTsKPiAraW50IGludGVsX3Bzcl9kZWJ1Z19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCB1NjQKPiB2YWx1ZSk7Cj4gIHZvaWQgaW50ZWxfcHNyX2ludmFsaWRhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgIHVuc2lnbmVkIGZyb250YnVmZmVy X2JpdHMsCj4gIAkJCSAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Bzci5jCj4gaW5kZXggODRhMGZiOTgxNTYxLi43NWMxYTVkZWViZjUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IEBAIC01MSw2ICs1MSw4IEBACj4gICAqIG11c3QgYmUg Y29ycmVjdGx5IHN5bmNocm9uaXplZC9jYW5jZWxsZWQgd2hlbiBzaHV0dGluZyBkb3duIHRoZQo+ IHBpcGUuIgo+ICAgKi8KPiAgCj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICsjaW5jbHVkZSA8 ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gIAo+ICAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4g ICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+IEBAIC03MTgsOCArNzIwLDExIEBAIHN0YXRpYyB2b2lk IGludGVsX3Bzcl9lbmFibGVfbG9ja2VkKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZGV2X3ByaXYtPnBzci5k cDsKPiAgCj4gLQlpZiAoZGV2X3ByaXYtPnBzci5lbmFibGVkKQo+IC0JCXJldHVybjsKPiArCVdB Uk5fT04oZGV2X3ByaXYtPnBzci5lbmFibGVkKTsKPiArCj4gKwlkZXZfcHJpdi0+cHNyLnBzcjJf ZW5hYmxlZCA9IGludGVsX3BzcjJfZW5hYmxlZChkZXZfcHJpdiwKPiBjcnRjX3N0YXRlKTsKPiAr CWRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzID0gMDsKPiArCWRldl9wcml2LT5w c3IucGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0KPiA+cGlwZTsK PiAgCj4gIAlEUk1fREVCVUdfS01TKCJFbmFibGluZyBQU1Ilc1xuIiwKPiAgCQkgICAgICBkZXZf cHJpdi0+cHNyLnBzcjJfZW5hYmxlZCA/ICIyIiA6ICIxIik7Cj4gQEAgLTc1MiwyMCArNzU3LDEz IEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAKPiAqaW50ZWxfZHAsCj4g IAlXQVJOX09OKGRldl9wcml2LT5kcnJzLmRwKTsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJp di0+cHNyLmxvY2spOwo+IC0JaWYgKGRldl9wcml2LT5wc3IucHJlcGFyZWQpIHsKPiAtCQlEUk1f REVCVUdfS01TKCJQU1IgYWxyZWFkeSBpbiB1c2VcbiIpOwo+ICsKPiArCWlmICghcHNyX2dsb2Jh bF9lbmFibGVkKGRldl9wcml2LT5wc3IuZGVidWcpKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiUFNS IGRpc2FibGVkIGJ5IGZsYWdcbiIpOwo+ICAJCWdvdG8gdW5sb2NrOwo+ICAJfQo+ICAKPiAtCWRl dl9wcml2LT5wc3IucHNyMl9lbmFibGVkID0gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2LAo+ IGNydGNfc3RhdGUpOwo+IC0JZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAw Owo+IC0JZGV2X3ByaXYtPnBzci5wcmVwYXJlZCA9IHRydWU7Cj4gLQlkZXZfcHJpdi0+cHNyLnBp cGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktCj4gPnBpcGU7Cj4gLQo+ IC0JaWYgKHBzcl9nbG9iYWxfZW5hYmxlZChkZXZfcHJpdi0+cHNyLmRlYnVnKSkKPiAtCQlpbnRl bF9wc3JfZW5hYmxlX2xvY2tlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7Cj4gLQllbHNlCj4gLQkJ RFJNX0RFQlVHX0tNUygiUFNSIGRpc2FibGVkIGJ5IGZsYWdcbiIpOwo+ICsJaW50ZWxfcHNyX2Vu YWJsZV9sb2NrZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOwo+ICAKPiAgdW5sb2NrOgo+ICAJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+IEBAIC04NDgsMTggKzg0Niw1NCBAQCB2 b2lkIGludGVsX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCwKPiAgCQly ZXR1cm47Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiAtCWlmICgh ZGV2X3ByaXYtPnBzci5wcmVwYXJlZCkgewo+IC0JCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBz ci5sb2NrKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gIAo+ICAJaW50ZWxfcHNyX2Rpc2FibGVfbG9j a2VkKGludGVsX2RwKTsKPiAgCj4gLQlkZXZfcHJpdi0+cHNyLnByZXBhcmVkID0gZmFsc2U7Cj4g IAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gIAljYW5jZWxfd29ya19zeW5j KCZkZXZfcHJpdi0+cHNyLndvcmspOwo+ICB9Cj4gIAo+ICsvKioKPiArICogaW50ZWxfcHNyX3Vw ZGF0ZSAtIFVwZGF0ZSBQU1Igc3RhdGUKPiArICogQGludGVsX2RwOiBJbnRlbCBEUAo+ICsgKiBA Y3J0Y19zdGF0ZTogbmV3IENSVEMgc3RhdGUKPiArICoKPiArICogVGhpcyBmdW5jdGlvbnMgd2ls bCB1cGRhdGUgUFNSIHN0YXRlcywgZGlzYWJsaW5nLCBlbmFibGluZyBvcgo+IHN3aXRjaGluZyBQ U1IKPiArICogdmVyc2lvbiB3aGVuIGV4ZWN1dGluZyBmYXN0c2V0cy4gRm9yIGZ1bGwgbW9kZXNl dCwKPiBpbnRlbF9wc3JfZGlzYWJsZSgpIGFuZAo+ICsgKiBpbnRlbF9wc3JfZW5hYmxlKCkgc2hv dWxkIGJlIGNhbGxlZCBpbnN0ZWFkLgo+ICsgKi8KPiArdm9pZCBpbnRlbF9wc3JfdXBkYXRlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gKwkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICsJc3RydWN0IGk5MTVfcHNyICpwc3Ig PSAmZGV2X3ByaXYtPnBzcjsKPiArCWJvb2wgZW5hYmxlLCBwc3IyX2VuYWJsZTsKPiArCj4gKwlp ZiAoIUNBTl9QU1IoZGV2X3ByaXYpIHx8IFJFQURfT05DRShwc3ItPmRwKSAhPSBpbnRlbF9kcCkK PiArCQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiAr Cj4gKwllbmFibGUgPSBjcnRjX3N0YXRlLT5oYXNfcHNyICYmIHBzcl9nbG9iYWxfZW5hYmxlZChw c3ItPmRlYnVnKTsKPiArCXBzcjJfZW5hYmxlID0gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2 LCBjcnRjX3N0YXRlKTsKPiArCj4gKwlpZiAoZW5hYmxlID09IHBzci0+ZW5hYmxlZCAmJiBwc3Iy X2VuYWJsZSA9PSBwc3ItPnBzcjJfZW5hYmxlZCkKPiArCQlnb3RvIHVubG9jazsKPiArCj4gKwlp ZiAocHNyLT5lbmFibGVkKSB7Cj4gKwkJaWYgKCFlbmFibGUgfHwgcHNyMl9lbmFibGUgIT0gcHNy LT5wc3IyX2VuYWJsZWQpCj4gKwkJCWludGVsX3Bzcl9kaXNhYmxlX2xvY2tlZChpbnRlbF9kcCk7 Cj4gKwl9Cj4gKwo+ICsJaWYgKGVuYWJsZSkgewo+ICsJCWlmICghcHNyLT5lbmFibGVkIHx8IHBz cjJfZW5hYmxlICE9IHBzci0+cHNyMl9lbmFibGVkKQo+ICsJCQlpbnRlbF9wc3JfZW5hYmxlX2xv Y2tlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7Cj4gKwl9Cj4gKwo+ICt1bmxvY2s6Cj4gKwltdXRl eF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gK30KPiArCj4gIC8qKgo+ICAgKiBpbnRl bF9wc3Jfd2FpdF9mb3JfaWRsZSAtIHdhaXQgZm9yIFBTUjEgdG8gaWRsZQo+ICAgKiBAbmV3X2Ny dGNfc3RhdGU6IG5ldyBDUlRDIHN0YXRlCj4gQEAgLTkyNCwzNiArOTU4LDY0IEBAIHN0YXRpYyBi b29sIF9fcHNyX3dhaXRfZm9yX2lkbGVfbG9ja2VkKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAJcmV0dXJuIGVyciA9PSAwICYmIGRldl9wcml2LT5wc3IuZW5hYmxlZDsK PiAgfQo+ICAKPiAtc3RhdGljIGJvb2wgc3dpdGNoaW5nX3BzcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gLQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gLQkJCSAgdTMyIG1vZGUpCj4gK3N0YXRpYyBpbnQgaW50ZWxfcHNyX2Zhc3RzZXRfZm9y Y2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gIHsKPiAtCS8qIENhbid0 IHN3aXRjaCBwc3Igc3RhdGUgYW55d2F5IGlmIFBTUjIgaXMgbm90IHN1cHBvcnRlZC4gKi8KPiAt CWlmICghY3J0Y19zdGF0ZSB8fCAhY3J0Y19zdGF0ZS0+aGFzX3BzcjIpCj4gLQkJcmV0dXJuIGZh bHNlOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ICsJc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCWludCBlcnI7Cj4gIAo+ IC0JaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkICYmIG1vZGUgPT0KPiBJOTE1X1BTUl9E RUJVR19GT1JDRV9QU1IxKQo+IC0JCXJldHVybiB0cnVlOwo+ICsJc3RhdGUgPSBkcm1fYXRvbWlj X3N0YXRlX2FsbG9jKGRldik7Cj4gKwlpZiAoIXN0YXRlKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICAKPiAtCWlmICghZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgJiYgbW9kZSAhPQo+IEk5MTVf UFNSX0RFQlVHX0ZPUkNFX1BTUjEpCj4gLQkJcmV0dXJuIHRydWU7Cj4gKwlkcm1fbW9kZXNldF9h Y3F1aXJlX2luaXQoJmN0eCwKPiBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lOVEVSUlVQVElCTEUpOwo+ ICsJc3RhdGUtPmFjcXVpcmVfY3R4ID0gJmN0eDsKPiArCj4gK3JldHJ5Ogo+ICsJZHJtX2Zvcl9l YWNoX2NydGMoY3J0YywgZGV2KSB7Cj4gKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlOwo+ICsJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jcnRjX3N0YXRlOwo+ICsK PiArCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7 Cj4gKwkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgewo+ICsJCQllcnIgPSBQVFJfRVJSKGNydGNf c3RhdGUpOwo+ICsJCQlnb3RvIGVycm9yOwo+ICsJCX0KPiArCj4gKwkJaW50ZWxfY3J0Y19zdGF0 ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJCWlmIChpbnRlbF9j cnRjX2hhc190eXBlKGludGVsX2NydGNfc3RhdGUsCj4gSU5URUxfT1VUUFVUX0VEUCkgJiYKPiAr CQkgICAgaW50ZWxfY3J0Y19zdGF0ZS0+aGFzX3Bzcikgewo+ICsJCQkvKiBNYXJrIG1vZGUgYXMg Y2hhbmdlZCB0byB0cmlnZ2VyIGEgcGlwZS0KPiA+dXBkYXRlKCkgKi8KPiArCQkJY3J0Y19zdGF0 ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJfQo+ICsKPiAr CWVyciA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKPiAgCj4gLQlyZXR1cm4gZmFsc2U7Cj4g K2Vycm9yOgo+ICsJaWYgKGVyciA9PSAtRURFQURMSykgewo+ICsJCWRybV9hdG9taWNfc3RhdGVf Y2xlYXIoc3RhdGUpOwo+ICsJCWVyciA9IGRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7Cj4gKwkJ aWYgKCFlcnIpCj4gKwkJCWdvdG8gcmV0cnk7Cj4gKwl9Cj4gKwo+ICsJZHJtX21vZGVzZXRfZHJv cF9sb2NrcygmY3R4KTsKPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKPiArCWRy bV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiArCj4gKwlyZXR1cm4gZXJyOwo+ICB9Cj4gIAo+ IC1pbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IC0JCQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpj dHgsCj4gLQkJCSAgICAgICB1NjQgdmFsKQo+ICtpbnQgaW50ZWxfcHNyX2RlYnVnX3NldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU2NCB2YWwpCj4gIHsKPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uX3N0YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUgPSBOVUxMOwo+IC0Jc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+IC0Jc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+IC0Jc3RydWN0IGludGVsX2RwICpkcDsKPiArCWNvbnN0IHUzMiBt b2RlID0gdmFsICYgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNLOwo+ICsJdTMyIG9sZF9tb2RlOwo+ ICAJaW50IHJldDsKPiAtCWJvb2wgZW5hYmxlOwo+IC0JdTMyIG1vZGUgPSB2YWwgJiBJOTE1X1BT Ul9ERUJVR19NT0RFX01BU0s7Cj4gIAo+ICAJaWYgKHZhbCAmIH4oSTkxNV9QU1JfREVCVUdfSVJR IHwgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNLKSB8fAo+ICAJICAgIG1vZGUgPiBJOTE1X1BTUl9E RUJVR19GT1JDRV9QU1IxKSB7Cj4gQEAgLTk2MSw0OSArMTAyMywxOSBAQCBpbnQgaW50ZWxfcHNy X3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZHJtX21vZGVzZXRfbG9jaygm ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LAo+IGN0eCk7Cj4gLQlpZiAocmV0KQo+ IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JLyogZGV2X3ByaXYtPnBzci5kcCBzaG91bGQgYmUgc2V0 IG9uY2UgYW5kIHRoZW4gbmV2ZXIgdG91Y2hlZAo+IGFnYWluLiAqLwo+IC0JZHAgPSBSRUFEX09O Q0UoZGV2X3ByaXYtPnBzci5kcCk7Cj4gLQljb25uX3N0YXRlID0gZHAtPmF0dGFjaGVkX2Nvbm5l Y3Rvci0+YmFzZS5zdGF0ZTsKPiAtCWNydGMgPSBjb25uX3N0YXRlLT5jcnRjOwo+IC0JaWYgKGNy dGMpIHsKPiAtCQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgY3R4KTsKPiAt CQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0KPiAtCQljcnRjX3N0YXRlID0gdG9faW50 ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gLQkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+YmFz ZS5jb21taXQ7Cj4gLQl9IGVsc2Ugewo+IC0JCWNvbW1pdCA9IGNvbm5fc3RhdGUtPmNvbW1pdDsK PiAtCX0KPiAtCWlmIChjb21taXQpIHsKPiAtCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2lu dGVycnVwdGlibGUoJmNvbW1pdC0KPiA+aHdfZG9uZSk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJcmV0 dXJuIHJldDsKPiAtCX0KPiAtCj4gIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRl dl9wcml2LT5wc3IubG9jayk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0J ZW5hYmxlID0gcHNyX2dsb2JhbF9lbmFibGVkKHZhbCk7Cj4gLQo+IC0JaWYgKCFlbmFibGUgfHwg c3dpdGNoaW5nX3BzcihkZXZfcHJpdiwgY3J0Y19zdGF0ZSwgbW9kZSkpCj4gLQkJaW50ZWxfcHNy X2Rpc2FibGVfbG9ja2VkKGRldl9wcml2LT5wc3IuZHApOwo+IC0KPiArCW9sZF9tb2RlID0gZGV2 X3ByaXYtPnBzci5kZWJ1ZyAmIEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSzsKPiAgCWRldl9wcml2 LT5wc3IuZGVidWcgPSB2YWw7Cj4gLQlpZiAoY3J0YykKPiAtCQlkZXZfcHJpdi0+cHNyLnBzcjJf ZW5hYmxlZCA9Cj4gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2LCBjcnRjX3N0YXRlKTsKPiAt Cj4gIAlpbnRlbF9wc3JfaXJxX2NvbnRyb2woZGV2X3ByaXYsIGRldl9wcml2LT5wc3IuZGVidWcp Owo+ICAKPiAtCWlmIChkZXZfcHJpdi0+cHNyLnByZXBhcmVkICYmIGVuYWJsZSkKPiAtCQlpbnRl bF9wc3JfZW5hYmxlX2xvY2tlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7Cj4gLQo+ICAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICsKPiArCWlmIChvbGRfbW9kZSAhPSBtb2Rl KQo+ICsJCXJldCA9IGludGVsX3Bzcl9mYXN0c2V0X2ZvcmNlKGRldl9wcml2KTsKPiArCj4gIAly ZXR1cm4gcmV0Owo+ICB9Cj4gIAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==