From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v4 5/8] drm/i915/skl: Add DC6 Trigger sequence. Date: Thu, 30 Apr 2015 16:41:39 +0300 Message-ID: <1430401299.9584.22.camel@intel.com> References: <1429174334-12089-1-git-send-email-animesh.manna@intel.com> <1429174334-12089-6-git-send-email-animesh.manna@intel.com> Reply-To: imre.deak@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 ESMTP id 155976E811 for ; Thu, 30 Apr 2015 06:41:42 -0700 (PDT) In-Reply-To: <1429174334-12089-6-git-send-email-animesh.manna@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Animesh Manna Cc: Suketu Shah , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTUtMDQtMTYgYXQgMTQ6MjIgKzA1MzAsIEFuaW1lc2ggTWFubmEgd3JvdGU6Cj4g RnJvbTogU3VrZXR1IFNoYWggPHN1a2V0dS5qLnNoYWhAaW50ZWwuY29tPgo+IAo+IEFkZCB0cmln Z2VycyBmb3IgREM2IGFzIHBlciBkZXRhaWxzIHByb3ZpZGVkIGluIHNrbF9lbmFibGVfZGM2Cj4g YW5kIHNrbF9kaXNhYmxlX2RjNiBpbXBsZW1lbnRhdGlvbnMuCj4gCj4gQWxzbyBDYWxsIFBPU1RJ TkdfUkVBRCBmb3IgZXZlcnkgd3JpdGUgdG8gYSByZWdpc3RlciB0byBlbnN1cmUKPiBpdCBpcyB3 cml0dGVuIHRvIGltbWVkaWF0ZWx5Cj4gCj4gdjE6IFJlbW92ZSBQT1NUSU5HX1JFQUQgYW5kIGlu dGVsX3ByZXBhcmVfZGRpIGNhbGxzIGFzIHRoZXkndmUgYmVlbiBhZGRlZCBpbiBwcmV2aW91cyBw YXRjaGVzLgo+IAo+IHYyOgo+IDFdIFJlbW92ZSBjaGVjayBmb3IgYmFja2xpZ2h0IGRpc2FibGVk IGFzIGl0IHNob3VsZCBiZSB0aGUgY2FzZSBieSB0aGF0IHRpbWUuCj4gMl0gTWFyayBEQzUgYXMg ZGlzYWJsZWQgd2hlbiBlbmFibGluZyBEQzYuCj4gM10gUmV0dXJuIGZyb20gREM1LWRpc2FibGlu ZyBmdW5jdGlvbiBlYXJseSBpZiBEQzUgaXMgYWxyZWFkeSBiZSBkaXNhYmxlZCB3aGljaCBjYW4g aGFwcGVuCj4gICAgZHVlIHRvIERDNi1lbmFibGluZyBlYXJsaWVyLgo+IDNdIEVuc3VyZSBDU1Ig ZmlybXdhcmUgaXMgbG9hZGVkIGFmdGVyIHJlc3VtZSBmcm9tIERDNiBhcyBjb3JyZXNwb25kaW5n IG1lbW9yeSBjb250ZW50cyB3b24ndAo+ICAgIGJlIHJldGFpbmVkIGFmdGVyIHJ1bnRpbWUtc3Vz cGVuZC4KPiA0XSBFbnN1cmUgdGhhdCBDU1IgaXNuJ3QgaWRlbnRpZmllZCBhcyBsb2FkZWQgYmVm b3JlIENTUi1sb2FkaW5nIHByb2dyYW0gaXMgY2FsbGVkIGR1cmluZwo+ICAgIHJ1bnRpbWUtcmVz dW1lLgo+IAo+IHYzOiBSZWJhc2UgdG8gbGF0ZXN0Cj4gTW9kaWZpZWQgYXMgcGVyIHJldmlldyBj b21tZW50cyBmcm9tIEltcmUgYW5kIGFmdGVyIGRpc2N1c3Npb24gd2l0aCBBcnQ6Cj4gMV0gREM2 IHNob3VsZCBiZSBwcmVmZXJhYmx5IGVuYWJsZWQgd2hlbiBQRzIgaXMgZGlzYWJsZWQgYnkgU1cg YXMgdGhlIGNoZWNrIGZvciBQRzEgYmVpbmcKPiAgICBkaXNhYmxlZCBpcyB0YWtlbiBvZiBieSBI VyB0byBlbnRlciBEQzYsIGFuZCBkaXNhYmxlZCB3aGVuIFBHMiBpcyBlbmFibGVkIHJlc3BlY3Rp dmVseS4KPiAgICBUaGlzIGhlbHBzIHNhdmUgbW9yZSBwb3dlciwgZXNwZWNpYWxseSBpbiB0aGUg Y2FzZSB3aGVuIGRpc3BsYXkgaXMgZGlzYWJsZWQgYnV0IEdUIGlzCj4gICAgZW5hYmxlZC4gQWNj b3JkaW5nbHksIHJlcGxhY2luZyBEQzUgdHJpZ2dlciBzZXF1ZW5jZSB3aXRoIERDNiBmb3IgU0tM Lgo+IDJdIERDNiBjb3VsZCBiZSBlbmFibGVkIGZyb20gaW50ZWxfcnVudGltZV9zdXNwZW5kKCkg ZnVuY3Rpb24sIGlmIERDNSBpcyBhbHJlYWR5IGVuYWJsZWQuCj4gM10gTW92ZSBDU1ItbG9hZC1z dGF0dXMgc2V0dGluZyBjb2RlIGZyb20gaW50ZWxfcnVudGltZV9zdXNwZW5kIGZ1bmN0aW9uIHRv IGEgbmV3IGZ1bmN0aW9uLgo+IAo+IHY0Ogo+IDFdIEVuYWJsZS9kaXNhYmxlIERDNiBvbmx5IHdo ZW4gdG9nZ2xpbmcgdGhlIHBvd2VyLXdlbGwgdXNpbmcgYSBuZXdseSBkZWZpbmVkIG1hY3JvIEVO QUJMRV9EQzYuCj4gCj4gdjU6Cj4gMV0gTG9hZCBDU1Igb24gc3lzdGVtIHJlc3VtZSB0b28gYXMg ZmlybXdhcmUgbWF5IGJlIGxvc3Qgb24gc3lzdGVtIHN1c3BlbmQgcHJldmVudGluZwo+ICAgIGVu YWJsaW5nIERDNSwgREM2Lgo+IDJdIERESSBidWZmZXJzIHNob3VsZG4ndCBiZSBwcm9ncmFtbWVk IGR1cmluZyBkcml2ZXItbG9hZC9yZXN1bWUgYXMgaXQncyBhbHJlYWR5IGRvbmUKPiAgICBkdXJp bmcgbW9kZXNldCBpbml0aWFsaXphdGlvbiB0aGVuIGFuZCBhbHNvIHRoYXQgdGhlIGVuY29kZXIg bGlzdCBpcyBzdGlsbCB1bmluaXRpYWxpemVkIGJ5Cj4gICAgdGhlbi4gVGhlcmVmb3JlLCBjYWxs IGludGVsX3ByZXBhcmVfZGRpIGZ1bmN0aW9uIHJpZ2h0IGFmdGVyIGRpc2FibGluZyBEQzYgYnV0 IG91dHNpZGUKPiAgICBza2xfZGlzYWJsZV9kYzYgZnVuY3Rpb24gYW5kIG5vdCBkdXJpbmcgZHJp dmVyLWxvYWQvcmVzdW1lLgo+IAo+IHY2Ogo+IDFdIFJlYmFzZSB0byBsYXRlc3QuCj4gMl0gTW92 ZSBTS0xfRU5BQkxFX0RDNiBtYWNybyBkZWZpbml0aW9uIGZyb20gaW50ZWxfZGlzcGxheS5jIHRv IGludGVsX3J1bnRpbWVfcG0uYy4KPiAKPiB2NzoKPiAxKSBSZWZhY3RvcmVkIHRoZSBjb2RlIGZv ciByZW1vdmluZyB0aGUgd2FybmluZyBnb3QgZnJvbSBjaGVja3BhdGNoLgo+IDIpIEFmdGVyIGFk ZGluZyBkbWMgdmVyIDEuMCBzdXBwb3J0IHJlYmFzZWQgb24gdG9wIG9mIG5pZ2h0bHkuIChBbmlt ZXNoKQo+IAo+IHY4Ogo+IC0gUmV2ZXJ0ZWQgdGhlIGNoYW5nZXMgZG9uZSBpbiB2Ny4KPiAtIFJl bW92ZWQgdGhlIGNvbmRpdGlvbiBjaGVjayBpbiBza2xfcHJlcGFyZV9yZXN1bmUoKS4gKEFuaW1l c2gpCj4gCj4gSXNzdWU6IFZJWi0yODE5Cj4gU2lnbmVkLW9mZi1ieTogQS5TdW5pbCBLYW1hdGgg PHN1bmlsLmthbWF0aEBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogU3VrZXR1IFNoYWggPHN1 a2V0dS5qLnNoYWhAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbWllbiBMZXNwaWF1IDxk YW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQW5pbWVzaCBNYW5uYSA8 YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMgICAgICAgICB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8IDQzICsrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDcgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggYWNkMGUyYi4uMGY1 OTBlMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC01OTQsNiArNTk0LDggQEAg c3RhdGljIHZvaWQgaW50ZWxfc3VzcGVuZF9lbmNvZGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gIHN0YXRpYyBpbnQgaW50ZWxfc3VzcGVuZF9jb21wbGV0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICBzdGF0aWMgaW50IHZsdl9yZXN1bWVfcHJl cGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgIGJvb2wg cnBtX3Jlc3VtZSk7Cj4gK3N0YXRpYyBpbnQgc2tsX3Jlc3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gKwo+ICAKPiAgc3RhdGljIGludCBpOTE1X2RybV9z dXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiBAQCAtODA4LDYgKzgxMCw4IEBA IHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJp dikpCj4gIAkJaHN3X2Rpc2FibGVfcGM4KGRldl9wcml2KTsKPiArCWVsc2UgaWYgKElTX1NLWUxB S0UoZGV2X3ByaXYpKQo+ICsJCXJldCA9IHNrbF9yZXN1bWVfcHJlcGFyZShkZXZfcHJpdik7Cj4g IAo+ICAJaW50ZWxfdW5jb3JlX3Nhbml0aXplKGRldik7Cj4gIAlpbnRlbF9wb3dlcl9kb21haW5z X2luaXRfaHcoZGV2X3ByaXYpOwo+IEBAIC0xMDIyLDYgKzEwMjYsMTkgQEAgc3RhdGljIGludCBp OTE1X3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIAlyZXR1cm4gaTkxNV9kcm1fcmVz dW1lKGRybV9kZXYpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IHNrbF9zdXNwZW5kX2NvbXBsZXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJLyogRW5hYmxpbmcg REM2IGlzIG5vdCBhIGhhcmQgcmVxdWlyZW1lbnQgdG8gZW50ZXIgcnVudGltZSBEMyAqLwo+ICsK PiArCS8qCj4gKwkgKiBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IENTUiBpc24ndCBpZGVudGlmaWVk IGFzIGxvYWRlZCBiZWZvcmUKPiArCSAqIENTUi1sb2FkaW5nIHByb2dyYW0gaXMgY2FsbGVkIGR1 cmluZyBydW50aW1lLXJlc3VtZS4KPiArCSAqLwo+ICsJaW50ZWxfY3NyX2xvYWRfc3RhdHVzX3Nl dChkZXZfcHJpdiwgRldfVU5JTklUSUFMSVpFRCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gIHN0YXRpYyBpbnQgaHN3X3N1c3BlbmRfY29tcGxldGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICB7Cj4gIAloc3dfZW5hYmxlX3BjOChkZXZfcHJpdik7Cj4gQEAgLTEw MjksNiArMTA0NiwxNSBAQCBzdGF0aWMgaW50IGhzd19zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgaW50IHNrbF9yZXN1bWVfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsK PiArCWludGVsX2Nzcl9sb2FkX3Byb2dyYW0oZGV2KTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ ICsKPiAgLyoKPiAgICogU2F2ZSBhbGwgR3VuaXQgcmVnaXN0ZXJzIHRoYXQgbWF5IGJlIGxvc3Qg YWZ0ZXIgYSBEMyBhbmQgYSBzdWJzZXF1ZW50Cj4gICAqIFMwaVtSMTIzXSB0cmFuc2l0aW9uLiBU aGUgbGlzdCBvZiByZWdpc3RlcnMgbmVlZGluZyBhIHNhdmUvcmVzdG9yZSBpcwo+IEBAIC0xNDg3 LDYgKzE1MTMsOCBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZp Y2UgKmRldmljZSkKPiAgCj4gIAlpZiAoSVNfR0VONihkZXZfcHJpdikpCj4gIAkJaW50ZWxfaW5p dF9wY2hfcmVmY2xrKGRldik7Cj4gKwllbHNlIGlmIChJU19TS1lMQUtFKGRldikpCj4gKwkJcmV0 ID0gc2tsX3Jlc3VtZV9wcmVwYXJlKGRldl9wcml2KTsKClRoaXMgbmVlZHMgdG8gYmUgcmViYXNl ZCBvbiB0aGUgcmVjZW50IEJYVCBjaGFuZ2VzLiBXaGlsZSBhdCBpdCBwbGVhc2UKZml4IHRoZSBJ U19TS1lMQUtFIGNoZWNrIHRvIGJlIGFuICdlbHNlIGlmJyBjb25kaXRpb24gYXMgYWJvdmUgZm9y CmNvbnNpc3RlbmN5IChib3RjaGVkIGluIHRoZSBCWFQgc2VyaWVzIGFuZCBtaXNzZWQgaW4gbXkg cmV2aWV3KS4KCj4gIAllbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdF TEwoZGV2X3ByaXYpKQo+ICAJCWhzd19kaXNhYmxlX3BjOChkZXZfcHJpdik7Cj4gIAllbHNlIGlm IChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkKPiBAQCAtMTUxOSw2ICsxNTQ3LDggQEAgc3RhdGlj IGludCBpbnRlbF9zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICAJaW50 IHJldDsKPiAgCj4gKwlpZiAoSVNfU0tZTEFLRShkZXYpKQo+ICsJCXJldCA9IHNrbF9zdXNwZW5k X2NvbXBsZXRlKGRldl9wcml2KTsKPiAgCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURX RUxMKGRldikpCgpUaGlzIG5lZWRzIHRvIGJlIHJlYmFzZWQgYXMgYWJvdmUgYW5kIHRoZSAnZWxz ZSBpZicgbGFkZGVyIGtlcHQgZm9yCmNvbnNpc3RlbmN5LgoKV2l0aCB0aGUgYWJvdmUgZml4ZWQg dGhpcyBpczoKUmV2aWV3ZWQtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KCj4g IAkJcmV0ID0gaHN3X3N1c3BlbmRfY29tcGxldGUoZGV2X3ByaXYpOwo+ICAJZWxzZSBpZiAoSVNf VkFMTEVZVklFVyhkZXYpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ydW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMK PiBpbmRleCBkYThjMThkLi43ZTY5MDhlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3J1bnRpbWVfcG0uYwo+IEBAIC00OSw3ICs0OSw4IEBACj4gICAqIHByZXNlbnQgZm9yIGEgZ2l2 ZW4gcGxhdGZvcm0uCj4gICAqLwo+ICAKPiAtI2RlZmluZSBHRU45X0VOQUJMRV9EQzUoZGV2KSAo SVNfU0tZTEFLRShkZXYpKQo+ICsjZGVmaW5lIEdFTjlfRU5BQkxFX0RDNShkZXYpIDAKPiArI2Rl ZmluZSBTS0xfRU5BQkxFX0RDNihkZXYpIElTX1NLWUxBS0UoZGV2KQo+ICAKPiAgI2RlZmluZSBm b3JfZWFjaF9wb3dlcl93ZWxsKGksIHBvd2VyX3dlbGwsIGRvbWFpbl9tYXNrLCBwb3dlcl9kb21h aW5zKQlcCj4gIAlmb3IgKGkgPSAwOwkJCQkJCQlcCj4gQEAgLTM5Nyw2ICszOTgsMTYgQEAgc3Rh dGljIHZvaWQgZ2VuOV9kaXNhYmxlX2RjNShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAlQT1NUSU5HX1JFQUQoRENfU1RBVEVfRU4pOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9p ZCBza2xfZW5hYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sK PiArCS8qIFRPRE86IEltcGxlbWVudGF0aW9uIHRvIGJlIGRvbmUuICovCj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIHNrbF9kaXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gK3sKPiArCS8qIFRPRE86IEltcGxlbWVudGF0aW9uIHRvIGJlIGRvbmUuICovCj4gK30K PiArCj4gIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAkJCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGws IGJvb2wgZW5hYmxlKQo+ICB7Cj4gQEAgLTQ0NCw5ICs0NTUsMjEgQEAgc3RhdGljIHZvaWQgc2ts X3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJ CSFJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0JJT1MpLAo+ICAJCQkJIkludmFsaWQgZm9yIHBvd2Vy IHdlbGwgc3RhdHVzIHRvIGJlIGVuYWJsZWQsIHVubGVzcyBkb25lIGJ5IHRoZSBCSU9TLCBcCj4g IAkJCQl3aGVuIHJlcXVlc3QgaXMgdG8gZGlzYWJsZSFcbiIpOwo+IC0JCQlpZiAoR0VOOV9FTkFC TEVfREM1KGRldikgJiYKPiAtCQkJCXBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikK PiAtCQkJCWdlbjlfZGlzYWJsZV9kYzUoZGV2X3ByaXYpOwo+ICsJCQlpZiAoKEdFTjlfRU5BQkxF X0RDNShkZXYpIHx8IFNLTF9FTkFCTEVfREM2KGRldikpICYmCj4gKwkJCQlwb3dlcl93ZWxsLT5k YXRhID09IFNLTF9ESVNQX1BXXzIpIHsKPiArCQkJCWlmIChTS0xfRU5BQkxFX0RDNihkZXYpKSB7 Cj4gKwkJCQkJc2tsX2Rpc2FibGVfZGM2KGRldl9wcml2KTsKPiArCQkJCQkvKgo+ICsJCQkJCSAq IERESSBidWZmZXIgcHJvZ3JhbW1pbmcgdW5uZWNlc3NhcnkgZHVyaW5nIGRyaXZlci1sb2FkL3Jl c3VtZQo+ICsJCQkJCSAqIGFzIGl0J3MgYWxyZWFkeSBkb25lIGR1cmluZyBtb2Rlc2V0IGluaXRp YWxpemF0aW9uIHRoZW4uCj4gKwkJCQkJICogSXQncyBhbHNvIGludmFsaWQgaGVyZSBhcyBlbmNv ZGVyIGxpc3QgaXMgc3RpbGwgdW5pbml0aWFsaXplZC4KPiArCQkJCQkgKi8KPiArCQkJCQlpZiAo IWRldl9wcml2LT5wb3dlcl9kb21haW5zLmluaXRpYWxpemluZykKPiArCQkJCQkJaW50ZWxfcHJl cGFyZV9kZGkoZGV2KTsKPiArCQkJCX0gZWxzZSB7Cj4gKwkJCQkJZ2VuOV9kaXNhYmxlX2RjNShk ZXZfcHJpdik7Cj4gKwkJCQl9Cj4gKwkJCX0KPiAgCQkJSTkxNV9XUklURShIU1dfUFdSX1dFTExf RFJJVkVSLCB0bXAgfCByZXFfbWFzayk7Cj4gIAkJfQo+ICAKPiBAQCAtNDY0LDE3ICs0ODcsMjMg QEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQkJUE9TVElOR19SRUFEKEhTV19QV1JfV0VMTF9EUklWRVIpOwo+ICAJ CQlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgJXNcbiIsIHBvd2VyX3dlbGwtPm5hbWUpOwo+ICAK PiAtCQkJaWYgKEdFTjlfRU5BQkxFX0RDNShkZXYpICYmCj4gKwkJCWlmICgoR0VOOV9FTkFCTEVf REM1KGRldikgfHwgU0tMX0VOQUJMRV9EQzYoZGV2KSkgJiYKPiAgCQkJCXBvd2VyX3dlbGwtPmRh dGEgPT0gU0tMX0RJU1BfUFdfMikgewo+ICAJCQkJZW51bSBjc3Jfc3RhdGUgc3RhdGU7Cj4gLQo+ ICsJCQkJLyogVE9ETzogd2FpdCBmb3IgYSBjb21wbGV0aW9uIGV2ZW50IG9yCj4gKwkJCQkgKiBz aW1pbGFyIGhlcmUgaW5zdGVhZCBvZiBidXN5Cj4gKwkJCQkgKiB3YWl0aW5nIHVzaW5nIHdhaXRf Zm9yIGZ1bmN0aW9uLgo+ICsJCQkJICovCj4gIAkJCQl3YWl0X2Zvcigoc3RhdGUgPSBpbnRlbF9j c3JfbG9hZF9zdGF0dXNfZ2V0KGRldl9wcml2KSkgIT0KPiAgCQkJCQkJRldfVU5JTklUSUFMSVpF RCwgMTAwMCk7Cj4gIAkJCQlpZiAoc3RhdGUgIT0gRldfTE9BREVEKQo+ICAJCQkJCURSTV9FUlJP UigiQ1NSIGZpcm13YXJlIG5vdCByZWFkeSAoJWQpXG4iLAo+ICAJCQkJCQkJc3RhdGUpOwo+ICAJ CQkJZWxzZQo+IC0JCQkJCWdlbjlfZW5hYmxlX2RjNShkZXZfcHJpdik7Cj4gKwkJCQkJaWYgKFNL TF9FTkFCTEVfREM2KGRldikpCj4gKwkJCQkJCXNrbF9lbmFibGVfZGM2KGRldl9wcml2KTsKPiAr CQkJCQllbHNlCj4gKwkJCQkJCWdlbjlfZW5hYmxlX2RjNShkZXZfcHJpdik7Cj4gIAkJCX0KPiAg CQl9Cj4gIAl9CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK