From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH 2/2] drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug Date: Mon, 03 Dec 2018 18:58:39 -0800 Message-ID: <6b8a9b533355eaaa2e0242faa848b95f71e9bd19.camel@intel.com> References: <20181130023133.31636-1-jose.souza@intel.com> <20181130023133.31636-2-jose.souza@intel.com> <8b1416065bfd3529ba2a6fb2e913f1a98492475e.camel@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 4D4DA89A9A for ; Tue, 4 Dec 2018 02:58:43 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" , "intel-gfx@lists.freedesktop.org" Cc: "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE4LTEyLTAzIGF0IDE3OjU0IC0wODAwLCBTb3V6YSwgSm9zZSB3cm90ZToKPiBP biBNb24sIDIwMTgtMTItMDMgYXQgMTc6MzMgLTA4MDAsIERoaW5ha2FyYW4gUGFuZGl5YW4gd3Jv dGU6Cj4gPiBPbiBUaHUsIDIwMTgtMTEtMjkgYXQgMTg6MzEgLTA4MDAsIEpvc8OpIFJvYmVydG8g ZGUgU291emEgd3JvdGU6Cj4gPiA+IENoYW5naW5nIHRoZSBpOTE1X2VkcF9wc3JfZGVidWcgd2Fz IGVuYWJsaW5nLCBkaXNhYmxpbmcgb3IKPiA+ID4gc3dpdGNoaW5nCj4gPiA+IFBTUiB2ZXJzaW9u IGJ5IGRpcmVjdGx5IGNhbGxpbmcgaW50ZWxfcHNyX2Rpc2FibGVfbG9ja2VkKCkgYW5kCj4gPiA+ IGludGVsX3Bzcl9lbmFibGVfbG9ja2VkKCksIHdoYXQgaXMgbm90IHRoZSBkZWZhdWx0IFBTUiBw YXRoIHRoYXQKPiA+ID4gaXMKPiA+ID4gZXhlY3V0ZWQgaW4gYSByZWd1bGFyIG1vZGVzZXRzLgo+ ID4gPiAKPiA+ID4gU28gbGV0cyBmb3JjZSBhIG1vZGVzZXQgaW4gdGhlIFBTUiBDUlRDIHRvIHRy aWdnZXIgdGhlIHJlcXVlc3RlZAo+ID4gPiBQU1IKPiA+ID4gc3RhdGUgY2hhbmdlIGFuZCByZWFs bHkgc3RyZXNzIHRoZSBjb2RlIHBhdGggdGhhdCBtYXR0ZXJzIGZvciB0aGUKPiA+ID4gcmVndWxh ciB1c2VyLgo+ID4gPiAKPiA+ID4gQWxzbyBieSBkb2luZyB0aGlzIHdheSBpdCBmaXhlcyB0aGUg aXNzdWUgYmVsb3csIHdlcmUgRFJSUyB3YXMKPiA+ID4gbGVmdAo+ID4gPiBlbmFibGVkIHRvZ2V0 aGVyIHdpdGggUFNSIHdoZW4gZW5hYmxpbmcgUFNSIGZyb20gZGVidWdmcy4KPiA+IAo+ID4gV2hp bGUgdGhpcyBwYXRjaCBkb2VzIGZpeCB0aGUgaXNzdWUsIHBzcl9jb21wdXRlX2NvbmZpZygpIG5v dAo+ID4gY2hlY2tpbmcKPiA+IGNydGNfc3RhdGUtPmhhc19kcnJzIHNlZW1zIG9kZC4gV2Ugc2hv dWxkIGNoYW5nZSBpdCB0byBub3Qgc2V0Cj4gPiBjcnRjX3N0YXRlLT5oYXNfcHNyIGlmIGNydGNf c3RhdGUtPmhhc19kcnJzIGhhcHBlbnMgdG8gYmUgc2V0LiBPcgo+ID4gZG8KPiA+IGl0Cj4gPiB0 aGUgb3RoZXIgd2F5IGFyb3VuZC4KPiAKPiBwc3JfY29tcHV0ZV9jb25maWcoKSBpcyBub3QgY2Fs bGVkIHdoZW4gZW5hYmxpbmcgUFNSIGZyb20gZGVidWdmcywKPiB0aGlzClJpZ2h0LiBNeSBzdWdn ZXN0aW9uIGlzIHRvIGFsbG93IGVpdGhlciAtPmhhc19kcnJzIG9yIC0+aGFzX3BzciBiZWluZwpz ZXQgKG5vdCBib3RoKSBpbiB0aGUga2VybmVsIGFuZCBkaXNhYmxlIERSUlMgaW4gdGhlIElHVCBi ZWZvcmUKc3RhcnRpbmcgdGhlIHRlc3QuCgoKPiBpc3N1ZSB3YXMgcmVwb3J0ZWQgd2hlbiBQU1Ix IHdhcyBub3QgZW5hYmxlZCBieSBkZWZhdWx0IHNvIERSUlMgd2FzCj4gYmVpbmcgZW5hYmxlZCBi eSBkZWZhdWx0IGJ1dCBub3QgUFNSIGFuZCB3aGVuIFBTUiB3YXMgZW5hYmxlZCBmcm9tCj4gZGVi dWdmcyBib3RoIHdlcmUga2VwdCBlbmFibGVkLgo+IAo+IEluIHRoZSBmaXJzdCB2ZXJzaW9uIG9m IHRoaXMgcGF0Y2ggSSB3YXMganVzdCBkaXNhYmxpbmcgRFJSUyB3aGVuCj4gZW5hYmxpbmcgUFNS IGJ1dCBNYWFydGVuIHN1Z2dlc3RlZCB0byBub3QgZG8gc28gYW5kIGluc3RlYWQgc3RyZXNzCj4g dGhlCj4gZGVmYXVsdCBjb2RlIHBhdGguCgpUaGlzIHBhdGNoIGNoYW5nZXMgY3J0Y19zdGF0ZS0+ bW9kZV9jaGFuZ2VkIHRvIGZvcmNlIGEgbW9kZXNldCwgd2hpY2gKbWVhbnMgaXQgaXMgbm90IGV4 YWN0bHkgdGhlIHNhbWUgYXMgdGhlICdkZWZhdWx0JyBjb2RlIHBhdGguCgoKCj4gCj4gPiAKPiA+ ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lk PTEwODM0MQo+ID4gPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4u cGFuZGl5YW5AaW50ZWwuY29tPgo+ID4gPiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlA aW50ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxq b3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyB8ICAxNCArLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICB8ICAgMiArLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgfCAgIDQgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5j ICAgIHwgMTE5ICsrKysrKysrKysrKy0tLS0tLS0tCj4gPiA+IC0tLS0KPiA+ID4gLS0tLQo+ID4g PiAgNCBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMoLSkKPiA+ ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiA+IGluZGV4 IDEyOWI5YTZmODMwOS4uYmMzMmY2ODNkYzQ2IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwo+ID4gPiBAQCAtMjc3NSw3ICsyNzc1LDYgQEAgc3RhdGljIGludAo+ ID4gPiAgaTkxNV9lZHBfcHNyX2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQo+ID4gPiAg ewo+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Cj4gPiA+ IC0Jc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKPiA+ID4gIAlpbnQgcmV0Owo+ ID4gPiAgCj4gPiA+ICAJaWYgKCFDQU5fUFNSKGRldl9wcml2KSkKPiA+ID4gQEAgLTI3ODUsMTgg KzI3ODQsNyBAQCBpOTE1X2VkcF9wc3JfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NAo+ID4gPiB2 YWwpCj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7Cj4gPiA+ ICAKPiA+ID4gLQlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwKPiA+ID4gRFJNX01PREVT RVRfQUNRVUlSRV9JTlRFUlJVUFRJQkxFKTsKPiA+ID4gLQo+ID4gPiAtcmV0cnk6Cj4gPiA+IC0J cmV0ID0gaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoZGV2X3ByaXYsICZjdHgsIHZhbCk7Cj4g PiA+IC0JaWYgKHJldCA9PSAtRURFQURMSykgewo+ID4gPiAtCQlyZXQgPSBkcm1fbW9kZXNldF9i YWNrb2ZmKCZjdHgpOwo+ID4gPiAtCQlpZiAoIXJldCkKPiA+ID4gLQkJCWdvdG8gcmV0cnk7Cj4g PiA+IC0JfQo+ID4gPiAtCj4gPiA+IC0JZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKPiA+ ID4gLQlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gPiA+ICsJcmV0ID0gaW50ZWxf cHNyX3NldF9kZWJ1Z2ZzX21vZGUoZGV2X3ByaXYsIHZhbCk7Cj4gPiA+ICAKPiA+ID4gIAlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gPiA+IGluZGV4IDQzYWM2ODczYTJiYi4uOTNkOGNhOWMwMzc1IDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gQEAgLTQ5Myw3ICs0OTMsNyBA QCBzdHJ1Y3QgaTkxNV9wc3Igewo+ID4gPiAgCj4gPiA+ICAJdTMyIGRlYnVnOwo+ID4gPiAgCWJv b2wgc2lua19zdXBwb3J0Owo+ID4gPiAtCWJvb2wgcHJlcGFyZWQsIGVuYWJsZWQ7Cj4gPiA+ICsJ Ym9vbCBlbmFibGVkOwo+ID4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqZHA7Cj4gPiA+ICAJYm9vbCBh Y3RpdmU7Cj4gPiA+ICAJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Cj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IGluZGV4IDg2ZmY1NzczOGNkOS4uODlkNGVlZDBkZDg5 IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtMjA1Niw5 ICsyMDU2LDcgQEAgdm9pZCBpbnRlbF9wc3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcAo+ID4gPiAq aW50ZWxfZHAsCj4gPiA+ICAJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKTsKPiA+ID4gIHZvaWQgaW50ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKPiA+ID4gIAkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km9sZF9jcnRjX3N0YXRlKTsKPiA+ID4gLWludCBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNfbW9kZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3ByaXYsCj4gPiA+IC0JCQkgICAgICAg c3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCj4gPiA+IC0JCQkgICAgICAgdTY0 IHZhbHVlKTsKPiA+ID4gK2ludCBpbnRlbF9wc3Jfc2V0X2RlYnVnZnNfbW9kZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3ByaXYsCj4gPiA+IHU2NCB2YWx1ZSk7Cj4gPiA+ICB2 b2lkIGludGVsX3Bzcl9pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiA+ID4gIAkJCSAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cywKPiA+ID4gIAkJCSAgZW51 bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Bzci5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNy LmMKPiA+ID4gaW5kZXggODI3YjhjMzE3ODNkLi4zMDU4NDhjY2VkYTcgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiA+IEBAIC01Miw2ICs1Miw3IEBACj4gPiA+ICAg Ki8KPiA+ID4gIAo+ID4gPiAgI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gPiA+ICsjaW5jbHVkZSA8 ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gPiA+ICAKPiA+ID4gICNpbmNsdWRlICJpbnRlbF9k cnYuaCIKPiA+ID4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ID4gPiBAQCAtNzExLDEwICs3MTIs NiBAQCB2b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwCj4gPiA+ICppbnRlbF9k cCwKPiA+ID4gIAlXQVJOX09OKGRldl9wcml2LT5kcnJzLmRwKTsKPiA+ID4gIAo+ID4gPiAgCW11 dGV4X2xvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gPiA+IC0JaWYgKGRldl9wcml2LT5wc3Iu cHJlcGFyZWQpIHsKPiA+ID4gLQkJRFJNX0RFQlVHX0tNUygiUFNSIGFscmVhZHkgaW4gdXNlXG4i KTsKPiA+ID4gLQkJZ290byB1bmxvY2s7Cj4gPiA+IC0JfQo+ID4gPiAgCj4gPiA+ICAJaWYgKCFw c3JfZ2xvYmFsX2VuYWJsZWQoZGV2X3ByaXYtPnBzci5kZWJ1ZykpIHsKPiA+ID4gIAkJRFJNX0RF QlVHX0tNUygiUFNSIGRpc2FibGVkIGJ5IGZsYWdcbiIpOwo+ID4gPiBAQCAtNzIzLDcgKzcyMCw2 IEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAKPiA+ID4gKmludGVsX2Rw LAo+ID4gPiAgCj4gPiA+ICAJZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPSBpbnRlbF9wc3Iy X2VuYWJsZWQoZGV2X3ByaXYsCj4gPiA+IGNydGNfc3RhdGUpOwo+ID4gPiAgCWRldl9wcml2LT5w c3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzID0gMDsKPiA+ID4gLQlkZXZfcHJpdi0+cHNyLnByZXBh cmVkID0gdHJ1ZTsKPiA+ID4gIAlpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChkZXZfcHJpdiwgY3J0 Y19zdGF0ZSk7Cj4gPiA+ICAKPiA+ID4gIHVubG9jazoKPiA+ID4gQEAgLTgwNywxNCArODAzLDkg QEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAKPiA+ID4gKmludGVsX2Rw LAo+ID4gPiAgCQlyZXR1cm47Cj4gPiA+ICAKPiA+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ cHNyLmxvY2spOwo+ID4gPiAtCWlmICghZGV2X3ByaXYtPnBzci5wcmVwYXJlZCkgewo+ID4gPiAt CQltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gPiA+IC0JCXJldHVybjsKPiA+ ID4gLQl9Cj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoaW50ZWxfZHAp Owo+ID4gPiAgCj4gPiA+IC0JZGV2X3ByaXYtPnBzci5wcmVwYXJlZCA9IGZhbHNlOwo+ID4gPiAg CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiA+ID4gIAljYW5jZWxfd29ya19z eW5jKCZkZXZfcHJpdi0+cHNyLndvcmspOwo+ID4gPiAgfQo+ID4gPiBAQCAtODgzLDM2ICs4NzQs NjEgQEAgc3RhdGljIGJvb2wKPiA+ID4gX19wc3Jfd2FpdF9mb3JfaWRsZV9sb2NrZWQoc3RydWN0 Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiAgCXJldHVybiBlcnIgPT0g MCAmJiBkZXZfcHJpdi0+cHNyLmVuYWJsZWQ7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRp YyBib29sIHN3aXRjaGluZ19wc3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gPiAtCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gLQkJ CSAgdTMyIG1vZGUpCj4gPiA+ICtzdGF0aWMgaW50IGludGVsX3Bzcl9tb2Rlc2V0X2ZvcmNlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ICpkZXZfcHJpdikKPiA+ID4gIHsKPiA+ID4gLQkv KiBDYW4ndCBzd2l0Y2ggcHNyIHN0YXRlIGFueXdheSBpZiBQU1IyIGlzIG5vdCBzdXBwb3J0ZWQu ICovCj4gPiA+IC0JaWYgKCFjcnRjX3N0YXRlIHx8ICFjcnRjX3N0YXRlLT5oYXNfcHNyMikKPiA+ ID4gLQkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2 X3ByaXYtPmRybTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Owo+ ID4gPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+ID4gKwlzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ ID4gPiArCWludCBlcnIsIGk7Cj4gPiA+ICsKPiA+ID4gKwltdXRleF9sb2NrKCZkZXYtPm1vZGVf Y29uZmlnLm11dGV4KTsKPiA+ID4gKwlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwgMCk7 Cj4gPiA+ICsKPiA+ID4gK21vZGVzZXRfbG9ja19yZXRyeToKPiA+ID4gKwllcnIgPSBkcm1fbW9k ZXNldF9sb2NrX2FsbF9jdHgoZGV2LCAmY3R4KTsKPiA+ID4gKwlpZiAoZXJyKSB7Cj4gPiA+ICsJ CWlmIChlcnIgPT0gLUVERUFETEspIHsKPiA+ID4gKwkJCWVyciA9IGRybV9tb2Rlc2V0X2JhY2tv ZmYoJmN0eCk7Cj4gPiA+ICsJCQlpZiAoIWVycikKPiA+ID4gKwkJCQlnb3RvIG1vZGVzZXRfbG9j a19yZXRyeTsKPiA+ID4gKwkJfQo+ID4gPiAgCj4gPiA+IC0JaWYgKGRldl9wcml2LT5wc3IucHNy Ml9lbmFibGVkICYmIG1vZGUgPT0KPiA+ID4gSTkxNV9QU1JfREVCVUdfRk9SQ0VfUFNSMSkKPiA+ ID4gLQkJcmV0dXJuIHRydWU7Cj4gPiA+ICsJCWdvdG8gdW5sb2NrOwo+ID4gPiArCX0KPiA+ID4g IAo+ID4gPiAtCWlmICghZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgJiYgbW9kZSAhPQo+ID4g PiBJOTE1X1BTUl9ERUJVR19GT1JDRV9QU1IxKQo+ID4gPiAtCQlyZXR1cm4gdHJ1ZTsKPiA+ID4g KwlzdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZShkZXYsICZjdHgpOwo+ ID4gPiArCWlmIChJU19FUlIoc3RhdGUpKSB7Cj4gPiA+ICsJCWVyciA9IFBUUl9FUlIoc3RhdGUp Owo+ID4gPiArCQlnb3RvIHVubG9jazsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlmb3JfZWFj aF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ID4gPiAr CQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9zdGF0ZTsKPiA+ID4gKwo+ID4gPiArCQlw aXBlX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiA+ID4gKwkJLyog TWFyayBtb2RlIGFzIGNoYW5nZWQgdG8gZm9yY2UgYSBtb2Rlc2V0ICovCj4gPiA+ICsJCWlmIChw aXBlX3N0YXRlLT5oYXNfcHNyKQo+ID4gPiArCQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0g dHJ1ZTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwllcnIgPSBkcm1fYXRvbWljX2hlbHBlcl9j b21taXRfZHVwbGljYXRlZF9zdGF0ZShzdGF0ZSwgJmN0eCk7Cj4gPiA+ICAKPiA+ID4gLQlyZXR1 cm4gZmFsc2U7Cj4gPiA+ICsJZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+ID4gPiArdW5s b2NrOgo+ID4gPiArCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7Cj4gPiA+ICsJZHJtX21v ZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+ID4gPiArCW11dGV4X3VubG9jaygmZGV2LT5tb2Rl X2NvbmZpZy5tdXRleCk7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gZXJyOwo+ID4gPiAgfQo+ID4g PiAgCj4gPiA+IC1pbnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUKPiA+ID4gKmRldl9wcml2LAo+ID4gPiAtCQkJICAgICAgIHN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCAqY3R4LAo+ID4gPiAtCQkJICAgICAgIHU2NCB2YWwpCj4gPiA+ICtp bnQgaW50ZWxfcHNyX3NldF9kZWJ1Z2ZzX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ ID4gKmRldl9wcml2LAo+ID4gPiB1NjQgdmFsKQo+ID4gPiAgewo+ID4gPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiA+ID4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZTsKPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSA9IE5VTEw7Cj4gPiA+IC0Jc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+ ID4gPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmRw Owo+ID4gPiArCWNvbnN0IHUzMiBtb2RlID0gdmFsICYgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNL Owo+ID4gPiArCXUzMiBvbGRfbW9kZTsKPiA+ID4gIAlpbnQgcmV0Owo+ID4gPiAtCWJvb2wgZW5h YmxlOwo+ID4gPiAtCXUzMiBtb2RlID0gdmFsICYgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNLOwo+ ID4gPiAgCj4gPiA+ICAJaWYgKHZhbCAmIH4oSTkxNV9QU1JfREVCVUdfSVJRIHwgSTkxNV9QU1Jf REVCVUdfTU9ERV9NQVNLKSB8fAo+ID4gPiAgCSAgICBtb2RlID4gSTkxNV9QU1JfREVCVUdfRk9S Q0VfUFNSMSkgewo+ID4gPiBAQCAtOTIwLDQ5ICs5MzYsMTggQEAgaW50IGludGVsX3Bzcl9zZXRf ZGVidWdmc19tb2RlKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+IC0JcmV0ID0gZHJt X21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LAo+ID4gPiBj dHgpOwo+ID4gPiAtCWlmIChyZXQpCj4gPiA+IC0JCXJldHVybiByZXQ7Cj4gPiA+IC0KPiA+ID4g LQkvKiBkZXZfcHJpdi0+cHNyLmRwIHNob3VsZCBiZSBzZXQgb25jZSBhbmQgdGhlbiBuZXZlciB0 b3VjaGVkCj4gPiA+IGFnYWluLiAqLwo+ID4gPiAtCWRwID0gUkVBRF9PTkNFKGRldl9wcml2LT5w c3IuZHApOwo+ID4gPiAtCWNvbm5fc3RhdGUgPSBkcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5iYXNl LnN0YXRlOwo+ID4gPiAtCWNydGMgPSBjb25uX3N0YXRlLT5jcnRjOwo+ID4gPiAtCWlmIChjcnRj KSB7Cj4gPiA+IC0JCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4LCBjdHgpOwo+ ID4gPiAtCQlpZiAocmV0KQo+ID4gPiAtCQkJcmV0dXJuIHJldDsKPiA+ID4gLQo+ID4gPiAtCQlj cnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gPiA+IC0JCWNv bW1pdCA9IGNydGNfc3RhdGUtPmJhc2UuY29tbWl0Owo+ID4gPiAtCX0gZWxzZSB7Cj4gPiA+IC0J CWNvbW1pdCA9IGNvbm5fc3RhdGUtPmNvbW1pdDsKPiA+ID4gLQl9Cj4gPiA+IC0JaWYgKGNvbW1p dCkgewo+ID4gPiAtCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNv bW1pdC0KPiA+ID4gPiBod19kb25lKTsKPiA+ID4gCj4gPiA+IC0JCWlmIChyZXQpCj4gPiA+IC0J CQlyZXR1cm4gcmV0Owo+ID4gPiAtCX0KPiA+ID4gLQo+ID4gPiAgCXJldCA9IG11dGV4X2xvY2tf aW50ZXJydXB0aWJsZSgmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiA+ID4gIAlpZiAocmV0KQo+ID4g PiAgCQlyZXR1cm4gcmV0Owo+ID4gPiAgCj4gPiA+IC0JZW5hYmxlID0gcHNyX2dsb2JhbF9lbmFi bGVkKHZhbCk7Cj4gPiA+IC0KPiA+ID4gLQlpZiAoIWVuYWJsZSB8fCBzd2l0Y2hpbmdfcHNyKGRl dl9wcml2LCBjcnRjX3N0YXRlLCBtb2RlKSkKPiA+ID4gLQkJaW50ZWxfcHNyX2Rpc2FibGVfbG9j a2VkKGRldl9wcml2LT5wc3IuZHApOwo+ID4gPiAtCj4gPiA+ICsJb2xkX21vZGUgPSBkZXZfcHJp di0+cHNyLmRlYnVnICYgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNLOwo+ID4gPiAgCWRldl9wcml2 LT5wc3IuZGVidWcgPSB2YWw7Cj4gPiA+IC0JaWYgKGNydGMpCj4gPiA+IC0JCWRldl9wcml2LT5w c3IucHNyMl9lbmFibGVkID0KPiA+ID4gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2LCBjcnRj X3N0YXRlKTsKPiA+ID4gIAo+ID4gPiAtCWludGVsX3Bzcl9pcnFfY29udHJvbChkZXZfcHJpdiwg ZGV2X3ByaXYtPnBzci5kZWJ1Zyk7Cj4gPiA+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNy LmxvY2spOwo+ID4gPiAgCj4gPiA+IC0JaWYgKGRldl9wcml2LT5wc3IucHJlcGFyZWQgJiYgZW5h YmxlKQo+ID4gPiAtCQlpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChkZXZfcHJpdiwgY3J0Y19zdGF0 ZSk7Cj4gPiA+ICsJaWYgKG9sZF9tb2RlICE9IG1vZGUpCj4gPiA+ICsJCXJldCA9IGludGVsX3Bz cl9tb2Rlc2V0X2ZvcmNlKGRldl9wcml2KTsKPiA+ID4gIAo+ID4gPiAtCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPnBzci5sb2NrKTsKPiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4gPiAgfQo+ID4gPiAg CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK