From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH v2] drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug Date: Thu, 31 Jan 2019 15:10:39 -0800 Message-ID: <2279f685314636ec31fe3fd79c028974c58bcc16.camel@intel.com> References: <20190131005821.24662-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC22D6E204 for ; Thu, 31 Jan 2019 23:10:42 +0000 (UTC) In-Reply-To: <20190131005821.24662-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 T24gV2VkLCAyMDE5LTAxLTMwIGF0IDE2OjU4IC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOgo+IENoYW5naW5nIHRoZSBpOTE1X2VkcF9wc3JfZGVidWcgd2FzIGVuYWJsaW5nLCBk aXNhYmxpbmcgb3Igc3dpdGNoaW5nCj4gUFNSIHZlcnNpb24gYnkgZGlyZWN0bHkgY2FsbGluZyBp bnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoKSBhbmQKPiBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZCgp LCB3aGF0IGlzIG5vdCB0aGUgZGVmYXVsdCBQU1IgcGF0aCB0aGF0IHdpbGwKPiBiZSBleGVjdXRl ZCBieSByZWFsIHVzZXJzLgo+IAo+IFNvIGxldHMgZm9yY2UgYSBmYXN0c2V0IGluIHRoZSBQU1Ig Q1JUQyB0byB0cmlnZ2VyIGEgcGlwZSB1cGRhdGUgYW5kCj4gc3RyZXNzIHRoZSBkZWZhdWx0IGNv ZGUgcGF0aC4KPiAKPiBSZWNlbnRseSBhIGJ1ZyB3YXMgZm91bmQgd2hlbiBzd2l0Y2hpbmcgZnJv bSBQU1IyIHRvIFBTUjEgd2hpbGUKPiBlbmFibGVfcHNyIGtlcm5lbCBwYXJhbWV0ZXIgd2FzIHNl dCB0byB0aGUgZGVmYXVsdCBwYXJhbWV0ZXIsIHRoaXMKPiBjaGFuZ2VzIGZpeCBpdCBhbmQgYWxz byBmaXhlcyB0aGUgYnVnIGxpbmtlZCBiZWxsb3cgd2VyZSBEUlJTIHdhcwo+IGxlZnQgZW5hYmxl ZCB0b2dldGhlciB3aXRoIFBTUiB3aGVuIGVuYWJsaW5nIFBTUiBmcm9tIGRlYnVnZnMuCj4gCj4g djI6IEhhbmRsaW5nIG1pc3NpbmcgY2FzZTogZGlzYWJsZWQgdG8gUFNSMQo+IAo+IEJ1Z3ppbGxh OiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgzNDEKPiBD YzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K PiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ Cj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBTaWduZWQtb2Zm LWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiAtLS0K PiAKPiBTaG91bGQgSSBhZGQgSUdUIHRlc3RzIHRvIHRlc3QgZXZlcnkgc3RhdGUgc3dpdGNoIGNv bWJpbmF0aW9uPwpZZXMsIHBsZWFzZS4gQXQgdGhlIG1pbmltdW0gd2UgbmVlZCwgUFNSMS0+UFNS Mi0+UFNSMSB0byBtYWtlIHN1cmUgdGhlCmRyaXZlciB3YXJuaW5ncyBhcmVuJ3QgdHJpZ2dlcmVk LgoKCj4gCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgIDE0ICstLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAgMiArLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICB8ICAgNiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wc3IuYyAgICB8IDE4NyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+IC0tCj4gIDUgZmls ZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDkzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBmYTJjMjI2ZmM3NzkuLjc2NmE1YjRh ZDNkNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTI2MDcsNyAr MjYwNyw2IEBAIHN0YXRpYyBpbnQKPiAgaTkxNV9lZHBfcHNyX2RlYnVnX3NldCh2b2lkICpkYXRh LCB1NjQgdmFsKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk YXRhOwo+IC0Jc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKPiAgCWludGVsX3dh a2VyZWZfdCB3YWtlcmVmOwo+ICAJaW50IHJldDsKPiAgCj4gQEAgLTI2MTgsMTggKzI2MTcsNyBA QCBpOTE1X2VkcF9wc3JfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gIAo+ICAJd2Fr ZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiAgCj4gLQlkcm1fbW9kZXNl dF9hY3F1aXJlX2luaXQoJmN0eCwKPiBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lOVEVSUlVQVElCTEUp Owo+IC0KPiAtcmV0cnk6Cj4gLQlyZXQgPSBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNfbW9kZShkZXZf cHJpdiwgJmN0eCwgdmFsKTsKPiAtCWlmIChyZXQgPT0gLUVERUFETEspIHsKPiAtCQlyZXQgPSBk cm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwo+IC0JCWlmICghcmV0KQo+IC0JCQlnb3RvIHJldHJ5 Owo+IC0JfQo+IC0KPiAtCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7Cj4gLQlkcm1fbW9k ZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gKwlyZXQgPSBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNf bW9kZShkZXZfcHJpdiwgdmFsKTsKPiAgCj4gIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJp diwgd2FrZXJlZik7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMjJkYTlk ZjFmMGE3Li5mNzViNGNlNGRmNWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAt NDk2LDcgKzQ5Niw3IEBAIHN0cnVjdCBpOTE1X3BzciB7Cj4gIAo+ICAJdTMyIGRlYnVnOwo+ICAJ Ym9vbCBzaW5rX3N1cHBvcnQ7Cj4gLQlib29sIHByZXBhcmVkLCBlbmFibGVkOwo+ICsJYm9vbCBl bmFibGVkOwo+ICAJc3RydWN0IGludGVsX2RwICpkcDsKPiAgCWVudW0gcGlwZSBwaXBlOwo+ICAJ Ym9vbCBhY3RpdmU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGNhNzA1NTQ2 YTBhYi4uOTIxMWU0NTc5NDg5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAt MzU1Niw3ICszNTU2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3VwZGF0ZV9waXBlX2RwKHN0 cnVjdAo+IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAKPiAtCWludGVs X3Bzcl9lbmFibGUoaW50ZWxfZHAsIGNydGNfc3RhdGUpOwo+ICsJaW50ZWxfcHNyX3VwZGF0ZShp bnRlbF9kcCwgY3J0Y19zdGF0ZSk7Cj4gIAlpbnRlbF9lZHBfZHJyc19lbmFibGUoaW50ZWxfZHAs IGNydGNfc3RhdGUpOwo+ICAKPiAgCWludGVsX3BhbmVsX3VwZGF0ZV9iYWNrbGlnaHQoZW5jb2Rl ciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ IGluZGV4IDkwYmE1NDM2MzcwZS4uNGMwMWRlY2MzMGQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBAQCAtMjA2Nyw5ICsyMDY3LDkgQEAgdm9pZCBpbnRlbF9wc3JfZW5hYmxlKHN0 cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCwKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIHZvaWQgaW50ZWxfcHNyX2Rpc2FibGUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqb2xkX2NydGNfc3RhdGUpOwo+IC1pbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgICAgICAgc3RydWN0IGRy bV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCj4gLQkJCSAgICAgICB1NjQgdmFsdWUpOwo+ICt2 b2lkIGludGVsX3Bzcl91cGRhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkgICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gK2ludCBpbnRl bF9wc3Jfc2V0X2RlYnVnZnNfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gdTY0IHZhbHVlKTsKPiAgdm9pZCBpbnRlbF9wc3JfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cywK PiAgCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cHNyLmMKPiBpbmRleCA4NGEwZmI5ODE1NjEuLjkwZmUwNWEzM2I3MSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Bzci5jCj4gQEAgLTUxLDYgKzUxLDggQEAKPiAgICogbXVzdCBiZSBjb3JyZWN0 bHkgc3luY2hyb25pemVkL2NhbmNlbGxlZCB3aGVuIHNodXR0aW5nIGRvd24gdGhlCj4gcGlwZS4i Cj4gICAqLwo+ICAKPiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJt X2F0b21pY19oZWxwZXIuaD4KPiAgCj4gICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiAgI2luY2x1 ZGUgImk5MTVfZHJ2LmgiCj4gQEAgLTcxOCw4ICs3MjAsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxf cHNyX2VuYWJsZV9sb2NrZWQoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+cHNyLmRwOwo+ICAK PiAtCWlmIChkZXZfcHJpdi0+cHNyLmVuYWJsZWQpCj4gLQkJcmV0dXJuOwo+ICsJV0FSTl9PTihk ZXZfcHJpdi0+cHNyLmVuYWJsZWQpOwo+ICsKPiArCWRldl9wcml2LT5wc3IucHNyMl9lbmFibGVk ID0gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2LAo+IGNydGNfc3RhdGUpOwo+ICsJZGV2X3By aXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOwo+ICsJZGV2X3ByaXYtPnBzci5waXBl ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLQo+ID5waXBlOwo+ICAKPiAg CURSTV9ERUJVR19LTVMoIkVuYWJsaW5nIFBTUiVzXG4iLAo+ICAJCSAgICAgIGRldl9wcml2LT5w c3IucHNyMl9lbmFibGVkID8gIjIiIDogIjEiKTsKPiBAQCAtNzUyLDIwICs3NTcsMTMgQEAgdm9p ZCBpbnRlbF9wc3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCwKPiAgCVdBUk5f T04oZGV2X3ByaXYtPmRycnMuZHApOwo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5wc3Iu bG9jayk7Cj4gLQlpZiAoZGV2X3ByaXYtPnBzci5wcmVwYXJlZCkgewo+IC0JCURSTV9ERUJVR19L TVMoIlBTUiBhbHJlYWR5IGluIHVzZVxuIik7Cj4gKwo+ICsJaWYgKCFwc3JfZ2xvYmFsX2VuYWJs ZWQoZGV2X3ByaXYtPnBzci5kZWJ1ZykpIHsKPiArCQlEUk1fREVCVUdfS01TKCJQU1IgZGlzYWJs ZWQgYnkgZmxhZ1xuIik7Cj4gIAkJZ290byB1bmxvY2s7Cj4gIAl9Cj4gIAo+IC0JZGV2X3ByaXYt PnBzci5wc3IyX2VuYWJsZWQgPSBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYsCj4gY3J0Y19z dGF0ZSk7Cj4gLQlkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyA9IDA7Cj4gLQlk ZXZfcHJpdi0+cHNyLnByZXBhcmVkID0gdHJ1ZTsKPiAtCWRldl9wcml2LT5wc3IucGlwZSA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0KPiA+cGlwZTsKPiAtCj4gLQlpZiAo cHNyX2dsb2JhbF9lbmFibGVkKGRldl9wcml2LT5wc3IuZGVidWcpKQo+IC0JCWludGVsX3Bzcl9l bmFibGVfbG9ja2VkKGRldl9wcml2LCBjcnRjX3N0YXRlKTsKPiAtCWVsc2UKPiAtCQlEUk1fREVC VUdfS01TKCJQU1IgZGlzYWJsZWQgYnkgZmxhZ1xuIik7Cj4gKwlpbnRlbF9wc3JfZW5hYmxlX2xv Y2tlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7Cj4gIAo+ICB1bmxvY2s6Cj4gIAltdXRleF91bmxv Y2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gQEAgLTg0OCwxOCArODQ2LDYyIEBAIHZvaWQgaW50 ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwLAo+ICAJCXJldHVybjsK PiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+IC0JaWYgKCFkZXZfcHJp di0+cHNyLnByZXBhcmVkKSB7Cj4gLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2sp Owo+IC0JCXJldHVybjsKPiAtCX0KPiAgCj4gIAlpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoaW50 ZWxfZHApOwo+ICAKPiAtCWRldl9wcml2LT5wc3IucHJlcGFyZWQgPSBmYWxzZTsKPiAgCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiAgCWNhbmNlbF93b3JrX3N5bmMoJmRldl9w cml2LT5wc3Iud29yayk7Cj4gIH0KPiAgCj4gKyNkZWZpbmUgUFNSX01PREVfU1RSSU5HX0dFVChl bmFibGVkLCBwc3IyX2VuYWJsZWQpIFwKPiArCQllbmFibGVkID8gKHBzcjJfZW5hYmxlZCA/ICJQ U1IyIiA6ICJQU1IxIikgOiAiZGlzYWJsZWQiCj4gKwo+ICsvKioKPiArICogaW50ZWxfcHNyX3Vw ZGF0ZSAtIFVwZGF0ZSBQU1Igc3RhdGUKPiArICogQGludGVsX2RwOiBJbnRlbCBEUAo+ICsgKiBA Y3J0Y19zdGF0ZTogbmV3IENSVEMgc3RhdGUKPiArICoKPiArICogVGhpcyBmdW5jdGlvbnMgd2ls bCB1cGRhdGUgUFNSIHN0YXRlcywgZGlzYWJsaW5nLCBlbmFibGluZyBvcgo+IHN3aXRjaGluZyBQ U1IKPiArICogdmVyc2lvbiB3aGVuIGV4ZWN1dGluZyBmYXN0c2V0cy4gRm9yIGZ1bGwgbW9kZXNl dCwKPiBpbnRlbF9wc3JfZGlzYWJsZSgpIGFuZAo+ICsgKiBpbnRlbF9wc3JfZW5hYmxlKCkgc2hv dWxkIGJlIGNhbGxlZCBpbnN0ZWFkLgo+ICsgKi8KPiArdm9pZCBpbnRlbF9wc3JfdXBkYXRlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gKwkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICsJc3RydWN0IGk5MTVfcHNyICpwc3Ig PSAmZGV2X3ByaXYtPnBzcjsKPiArCWJvb2wgZW5hYmxlLCBwc3IyX2VuYWJsZTsKPiArCWNvbnN0 IGNoYXIgKm9sZF9tb2RlLCAqbmV3X21vZGU7Cj4gKwo+ICsJaWYgKCFDQU5fUFNSKGRldl9wcml2 KSB8fCBSRUFEX09OQ0UocHNyLT5kcCkgIT0gaW50ZWxfZHApCj4gKwkJcmV0dXJuOwo+ICsKPiAr CW11dGV4X2xvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gKwo+ICsJZW5hYmxlID0gY3J0Y19z dGF0ZS0+aGFzX3BzciAmJiBwc3JfZ2xvYmFsX2VuYWJsZWQocHNyLT5kZWJ1Zyk7Cj4gKwlwc3Iy X2VuYWJsZSA9IGludGVsX3BzcjJfZW5hYmxlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7Cj4gKwo+ ICsJaWYgKHBzci0+ZW5hYmxlZCA9PSBlbmFibGUgJiYgcHNyMl9lbmFibGUgPT0gcHNyLT5wc3Iy X2VuYWJsZWQpCj4gKwkJZ290byB1bmxvY2s7Cj4gKwo+ICsJb2xkX21vZGUgPSBQU1JfTU9ERV9T VFJJTkdfR0VUKHBzci0+ZW5hYmxlZCwgcHNyLQo+ID5wc3IyX2VuYWJsZWQpOwo+ICsJbmV3X21v ZGUgPSBQU1JfTU9ERV9TVFJJTkdfR0VUKGVuYWJsZSwgcHNyMl9lbmFibGUpOwo+ICsJRFJNX0RF QlVHX0tNUygiVXBkYXRpbmcgZnJvbSAlcyB0byAlcyIsIG9sZF9tb2RlLCBuZXdfbW9kZSk7Cj4g Kwo+ICsJaWYgKHBzci0+ZW5hYmxlZCkgewo+ICsJCWlmICghZW5hYmxlIHx8IHBzcjJfZW5hYmxl ICE9IHBzci0+cHNyMl9lbmFibGVkKQo+ICsJCQlpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoaW50 ZWxfZHApOwo+ICsJfQo+ICsKPiArCWlmIChlbmFibGUpIHsKPiArCQlpZiAoIXBzci0+ZW5hYmxl ZCB8fCBwc3IyX2VuYWJsZSAhPSBwc3ItPnBzcjJfZW5hYmxlZCkKPiArCQkJaW50ZWxfcHNyX2Vu YWJsZV9sb2NrZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOwo+ICsJfQo+ICsKPiArdW5sb2NrOgo+ ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICt9Cj4gKwo+ICAvKioKPiAg ICogaW50ZWxfcHNyX3dhaXRfZm9yX2lkbGUgLSB3YWl0IGZvciBQU1IxIHRvIGlkbGUKPiAgICog QG5ld19jcnRjX3N0YXRlOiBuZXcgQ1JUQyBzdGF0ZQo+IEBAIC05MjQsMzYgKzk2Niw2MiBAQCBz dGF0aWMgYm9vbCBfX3Bzcl93YWl0X2Zvcl9pZGxlX2xvY2tlZChzdHJ1Y3QKPiBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiAgCXJldHVybiBlcnIgPT0gMCAmJiBkZXZfcHJpdi0+cHNyLmVu YWJsZWQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIHN3aXRjaGluZ19wc3Ioc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+IC0JCQkgIHUzMiBtb2RlKQo+ICtzdGF0aWMgaW50IGludGVsX3Bzcl9mYXN0 c2V0X2ZvcmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2KQo+ICB7Cj4gLQkv KiBDYW4ndCBzd2l0Y2ggcHNyIHN0YXRlIGFueXdheSBpZiBQU1IyIGlzIG5vdCBzdXBwb3J0ZWQu ICovCj4gLQlpZiAoIWNydGNfc3RhdGUgfHwgIWNydGNfc3RhdGUtPmhhc19wc3IyKQo+IC0JCXJl dHVybiBmYWxzZTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsK PiArCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gKwlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7 Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gKwlpbnQgZXJyLCBpOwo+ICsKPiArCW11dGV4 X2xvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwpXaHkgZG8gd2UgbmVlZCBtb2RlX2NvbmZp Zy5tdXRleCwgaXNuJ3QgbW9kZXNldF9sb2NrX2FsbCgpIHN1ZmZpY2llbnQ/Cgo+ICsJZHJtX21v ZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ICsKPiArbW9kZXNldF9sb2NrX3JldHJ5Ogo+ ICsJZXJyID0gZHJtX21vZGVzZXRfbG9ja19hbGxfY3R4KGRldiwgJmN0eCk7CkFsc28gd2h5IG5v dCB0YWtlcyBsb2NrcyBmb3IgdGhlIHNwZWNpZmljIGNydGMgYW5kIGNvbm5lY3RvciBpbnN0ZWFk PwoKPiArCWlmIChlcnIpIHsKPiArCQlpZiAoZXJyID09IC1FREVBRExLKSB7Cj4gKwkJCWVyciA9 IGRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7Cj4gKwkJCWlmICghZXJyKQo+ICsJCQkJZ290byBt b2Rlc2V0X2xvY2tfcmV0cnk7Cj4gKwkJfQo+ICAKPiAtCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJf ZW5hYmxlZCAmJiBtb2RlID09Cj4gSTkxNV9QU1JfREVCVUdfRk9SQ0VfUFNSMSkKPiAtCQlyZXR1 cm4gdHJ1ZTsKPiArCQlnb3RvIHVubG9jazsKPiArCX0KPiAgCj4gLQlpZiAoIWRldl9wcml2LT5w c3IucHNyMl9lbmFibGVkICYmIG1vZGUgIT0KPiBJOTE1X1BTUl9ERUJVR19GT1JDRV9QU1IxKQo+ IC0JCXJldHVybiB0cnVlOwo+ICsJc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVf c3RhdGUoZGV2LCAmY3R4KTsKPiArCWlmIChJU19FUlIoc3RhdGUpKSB7Cj4gKwkJZXJyID0gUFRS X0VSUihzdGF0ZSk7Cj4gKwkJZ290byB1bmxvY2s7Cj4gKwl9Cj4gKwo+ICsJZm9yX2VhY2hfbmV3 X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9zdGF0ZTsKPiArCj4gKwkJcGlwZV9zdGF0ZSA9IHRvX2lu dGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gIAo+IC0JcmV0dXJuIGZhbHNlOwo+ICsJCS8q IE1hcmsgbW9kZSBhcyBjaGFuZ2VkIHRvIHRyaWdnZXIgYSBwaXBlLT51cGRhdGUoKSAqLwo+ICsJ CWlmIChwaXBlX3N0YXRlLT5jcHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0VEUCkKPiArCQkJ Y3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiArCX0KPiArCj4gKwllcnIgPSBkcm1f YXRvbWljX2hlbHBlcl9jb21taXRfZHVwbGljYXRlZF9zdGF0ZShzdGF0ZSwgJmN0eCk7Cj4gKwo+ ICsJZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+ICt1bmxvY2s6Cj4gKwlkcm1fbW9kZXNl dF9kcm9wX2xvY2tzKCZjdHgpOwo+ICsJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+ ICsJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiArCj4gKwlyZXR1cm4g ZXJyOwo+ICB9Cj4gIAo+IC1pbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0 X2FjcXVpcmVfY3R4ICpjdHgsCj4gLQkJCSAgICAgICB1NjQgdmFsKQo+ICtpbnQgaW50ZWxfcHNy X3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IHU2 NCB2YWwpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsK PiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOwo+IC0Jc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBOVUxMOwo+IC0Jc3RydWN0IGRybV9jcnRjX2Nv bW1pdCAqY29tbWl0Owo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwo+IC0Jc3RydWN0IGludGVs X2RwICpkcDsKPiArCWNvbnN0IHUzMiBtb2RlID0gdmFsICYgSTkxNV9QU1JfREVCVUdfTU9ERV9N QVNLOwo+ICsJdTMyIG9sZF9tb2RlOwo+ICAJaW50IHJldDsKPiAtCWJvb2wgZW5hYmxlOwo+IC0J dTMyIG1vZGUgPSB2YWwgJiBJOTE1X1BTUl9ERUJVR19NT0RFX01BU0s7Cj4gIAo+ICAJaWYgKHZh bCAmIH4oSTkxNV9QU1JfREVCVUdfSVJRIHwgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNLKSB8fAo+ ICAJICAgIG1vZGUgPiBJOTE1X1BTUl9ERUJVR19GT1JDRV9QU1IxKSB7Cj4gQEAgLTk2MSw0OSAr MTAyOSwxOCBAQCBpbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0Cj4gZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IC0J cmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4 LAo+IGN0eCk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JLyogZGV2X3By aXYtPnBzci5kcCBzaG91bGQgYmUgc2V0IG9uY2UgYW5kIHRoZW4gbmV2ZXIgdG91Y2hlZAo+IGFn YWluLiAqLwo+IC0JZHAgPSBSRUFEX09OQ0UoZGV2X3ByaXYtPnBzci5kcCk7Cj4gLQljb25uX3N0 YXRlID0gZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFzZS5zdGF0ZTsKPiAtCWNydGMgPSBjb25u X3N0YXRlLT5jcnRjOwo+IC0JaWYgKGNydGMpIHsKPiAtCQlyZXQgPSBkcm1fbW9kZXNldF9sb2Nr KCZjcnRjLT5tdXRleCwgY3R4KTsKPiAtCQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0K PiAtCQljcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gLQkJ Y29tbWl0ID0gY3J0Y19zdGF0ZS0+YmFzZS5jb21taXQ7Cj4gLQl9IGVsc2Ugewo+IC0JCWNvbW1p dCA9IGNvbm5fc3RhdGUtPmNvbW1pdDsKPiAtCX0KPiAtCWlmIChjb21taXQpIHsKPiAtCQlyZXQg PSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0KPiA+aHdfZG9uZSk7 Cj4gLQkJaWYgKHJldCkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gIAlyZXQgPSBtdXRl eF9sb2NrX2ludGVycnVwdGlibGUoJmRldl9wcml2LT5wc3IubG9jayk7Cj4gIAlpZiAocmV0KQo+ ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JZW5hYmxlID0gcHNyX2dsb2JhbF9lbmFibGVkKHZhbCk7 Cj4gLQo+IC0JaWYgKCFlbmFibGUgfHwgc3dpdGNoaW5nX3BzcihkZXZfcHJpdiwgY3J0Y19zdGF0 ZSwgbW9kZSkpCj4gLQkJaW50ZWxfcHNyX2Rpc2FibGVfbG9ja2VkKGRldl9wcml2LT5wc3IuZHAp Owo+IC0KPiArCW9sZF9tb2RlID0gZGV2X3ByaXYtPnBzci5kZWJ1ZyAmIEk5MTVfUFNSX0RFQlVH X01PREVfTUFTSzsKPiAgCWRldl9wcml2LT5wc3IuZGVidWcgPSB2YWw7Cj4gLQlpZiAoY3J0YykK PiAtCQlkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCA9Cj4gaW50ZWxfcHNyMl9lbmFibGVkKGRl dl9wcml2LCBjcnRjX3N0YXRlKTsKPiAgCj4gLQlpbnRlbF9wc3JfaXJxX2NvbnRyb2woZGV2X3By aXYsIGRldl9wcml2LT5wc3IuZGVidWcpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNy LmxvY2spOwo+ICAKPiAtCWlmIChkZXZfcHJpdi0+cHNyLnByZXBhcmVkICYmIGVuYWJsZSkKPiAt CQlpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7Cj4gKwlpZiAo b2xkX21vZGUgIT0gbW9kZSkKPiArCQlyZXQgPSBpbnRlbF9wc3JfZmFzdHNldF9mb3JjZShkZXZf cHJpdik7Cj4gIAo+IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICAJcmV0 dXJuIHJldDsKPiAgfQo+ICAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=