From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v2 10/12] drm/i915/gen9: Turn DC handling into a power well Date: Fri, 13 Nov 2015 19:53:32 +0200 Message-ID: <1447437212.1480.34.camel@intel.com> References: <1447084107-8521-1-git-send-email-patrik.jakobsson@linux.intel.com> <1447084107-8521-11-git-send-email-patrik.jakobsson@linux.intel.com> <1447268239.24928.24.camel@intel.com> <20151112122434.GB30759@patrik-desktop.isw.intel.com> <1447335042.6396.18.camel@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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 2F9526EEE1 for ; Fri, 13 Nov 2015 09:55:30 -0800 (PST) In-Reply-To: <1447335042.6396.18.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Patrik Jakobsson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTUtMTEtMTIgYXQgMTU6MzAgKzAyMDAsIEltcmUgRGVhayB3cm90ZToKPiBPbiB0 bywgMjAxNS0xMS0xMiBhdCAxMzoyNCArMDEwMCwgUGF0cmlrIEpha29ic3NvbiB3cm90ZToKPiA+ IE9uIFdlZCwgTm92IDExLCAyMDE1IGF0IDA4OjU3OjE5UE0gKzAyMDAsIEltcmUgRGVhayB3cm90 ZToKPiA+ID4gT24gbWEsIDIwMTUtMTEtMDkgYXQgMTY6NDggKzAxMDAsIFBhdHJpayBKYWtvYnNz b24gd3JvdGU6Cj4gPiA+ID4gSGFuZGxlIERDIG9mZiBhcyBhIHBvd2VyIHdlbGwgd2hlcmUgZW5h YmxpbmcgdGhlIHBvd2VyIHdlbGwKPiA+ID4gPiB3aWxsCj4gPiA+ID4gcHJldmVudAo+ID4gPiA+ IHRoZSBETUMgdG8gZW50ZXIgc2VsZWN0ZWQgREMgc3RhdGVzIChyZXF1aXJlZCBhcm91bmQgbW9k ZXNldHMKPiA+ID4gPiBhbmQKPiA+ID4gPiBBdXgKPiA+ID4gPiBBKS4gRGlzYWJsaW5nIHRoZSBw b3dlciB3ZWxsIHdpbGwgYWxsb3cgREMgc3RhdGVzIGFnYWluLiBGb3IKPiA+ID4gPiBub3cKPiA+ ID4gPiB0aGUKPiA+ID4gPiBoaWdoZXN0IERDIHN0YXRlIGlzIERDNiBmb3IgU2t5bGFrZSBhbmQg REM1IGZvciBCcm94dG9uIGJ1dAo+ID4gPiA+IHdpbGwKPiA+ID4gPiBiZQo+ID4gPiA+IGNvbmZp Z3VyYWJsZSBmb3IgU2t5bGFrZSBpbiBhIGxhdGVyIHBhdGNoLgo+ID4gPiA+IAo+ID4gPiA+IHYy OiBDaGVjayBib3RoIERDNSBhbmQgREM2IGJpdHMgaW4gcG93ZXIgd2VsbCBlbmFibGVkIGZ1bmN0 aW9uCj4gPiA+ID4gKFZpbGxlKQo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdHJp ayBKYWtvYnNzb24gPAo+ID4gPiA+IHBhdHJpay5qYWtvYnNzb25AbGludXguaW50ZWwuY29tCj4g PiA+ID4gPiAKPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYyAgICAgICAgIHwgICA2IC0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggICAgICAgICB8ICAgMSArCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyAgICB8ICAgNiArKwo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ydW50aW1lX3BtLmMgfCAxMTAKPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLQo+ID4gPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDM1IGRlbGV0 aW9ucygtKQo+ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4g PiA+ID4gaW5kZXggNWE2M2Y5YS4uMGM3ZjQzNSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwo+ID4gPiA+IEBAIC0xMDcyLDkgKzEwNzIsNiBAQCBzdGF0aWMgaW50IGk5 MTVfcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UKPiA+ID4gPiAqZGV2KQo+ID4gPiA+ICAKPiA+ID4g PiAgc3RhdGljIGludCBza2xfc3VzcGVuZF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZQo+ID4gPiA+ICpkZXZfcHJpdikKPiA+ID4gPiAgewo+ID4gPiA+IC0JaWYgKGRldl9wcml2LT5j c3IuZG1jX3BheWxvYWQpCj4gPiA+ID4gLQkJc2tsX2VuYWJsZV9kYzYoZGV2X3ByaXYpOwo+ID4g PiA+IC0KPiA+ID4gPiAgCXJldHVybiAwOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IEBA IC0xMTE5LDkgKzExMTYsNiBAQCBzdGF0aWMgaW50IGJ4dF9yZXN1bWVfcHJlcGFyZShzdHJ1Y3QK PiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiAgCj4gPiA+ID4gIHN0 YXRpYyBpbnQgc2tsX3Jlc3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ ID4gKmRldl9wcml2KQo+ID4gPiA+ICB7Cj4gPiA+ID4gLQlpZiAoZGV2X3ByaXYtPmNzci5kbWNf cGF5bG9hZCkKPiA+ID4gPiAtCQlza2xfZGlzYWJsZV9kYzYoZGV2X3ByaXYpOwo+ID4gPiA+IC0K PiA+ID4gPiAgCXJldHVybiAwOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gaW5kZXggMzFiM2E4NC4uZGY0NDViYSAxMDA2 NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+IEBAIC02MzYsNiAr NjM2LDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJ LyogTm90IGFjdHVhbCBiaXQgZ3JvdXBzLiBVc2VkIGFzIElEcyBmb3IKPiA+ID4gPiBsb29rdXBf cG93ZXJfd2VsbCgpICovCj4gPiA+ID4gIAlTS0xfRElTUF9QV19BTFdBWVNfT04sCj4gPiA+ID4g KwlTS0xfRElTUF9QV19EQ19PRkYsCj4gPiA+IAo+ID4gPiBJbW8gaXQgd291bGQgYmUgbGVzcyBj b25mdXNpbmcgdG8gY2FsbCBpdCBEQzMgcG93ZXIgd2VsbC4gTG9va2luZwo+ID4gPiBhdCB0aAo+ ID4gPiBlIERDIHNwZWMsIERDNCBpcyBvbmx5IGEgdHJhbnNpdG9yeSBzdGF0ZSB0byBEQzUvNiwg c28gd2hhdCB3ZQo+ID4gPiBleHBlY3QKPiA+ID4gd2hlbiB3ZSBkaXNhYmxlIERDNi81IGlzIERD MyBvciBzaGFsbG93ZXIgcG93ZXIgc3RhdGVzIChEQzIvMS8wKS4KPiA+IAo+ID4gSSd2ZSBiZWVu IGNoYW5naW5nIHRoZSBuYW1lIHF1aXRlIGEgZmV3IHRpbWVzIGJ1dCBzZXR0bGVkIG9uICJEQwo+ ID4gb2ZmIgo+ID4gdG8ga2VlcCBpdAo+ID4gZ2VuZXJpYy4gVGhlIG1haW4gbWVjaGFuaXNtIGZv ciB0aGUgcG93ZXIgd2VsbCBpcyB0byBwcmV2ZW50IGFueSBEQwo+ID4gc3RhdGVzIHRoYXQKPiA+ IGNhbiBjYXVzZSB1cyBwcm9ibGVtcyBkdXJpbmcgY2VydGFpbiBvcGVyYXRpb25zIChpLmUuIG1v ZGVzZXQpLiBUaGUKPiA+IERDIHN0YXRlcyB3ZQo+ID4gbmVlZCB0byBibG9jayBjb3VsZCBjaGFu Z2Ugb3IgYmUgZGlmZmVyZW50IGJldHdlZW4gcGxhdGZvcm1zLiBGb3IKPiA+IHRoYXQgcmVhc29u IEkKPiA+IHdvdWxkIHByZWZlciBub3QgdG8gYmUgYXMgc3BlY2lmaWMgd2l0aCB0aGUgbmFtaW5n Lgo+IAo+IEFsbCB0aGUgcG93ZXIgd2VsbCBuYW1lcyBhcmUgcGxhdGZvcm0gc3BlY2lmaWMgc28g aXQgd291bGQgYmUgbG9naWNhbAo+IGFuZCBtb3JlIG1lYW5pbmdmdWwgdG8gZ2l2ZSB0aGlzIG9u ZSBhIHBsYXRmb3JtIHNwZWNpZmljIG5hbWUgdG9vLgo+IEFsc28KPiAnREMgb2ZmJyBpcyBraW5k IG9mIGEgZG91YmxlIG5lZ2F0aW9uIGxlYWRpbmcgdG8gZGVidWcgbWVzc2FnZXMgbGlrZQo+ICdl bmFibGUgREMgb2ZmJyB3aGljaCBpc24ndCB0aGF0IG5pY2UuIEJ1dCBub3cgdGhhdCBJIHRoaW5r IG9mIGl0IG15Cj4gaWRlYSBpc24ndCB0aGF0IGdyZWF0IGVpdGhlci4gJ2VuYWJsZSBEQzMnIGlz IGNvbmZ1c2luZyB0b28sIG9uZQo+IGNvdWxkCj4gdGhpbmsgd2UgZW5hYmxlIHNvbWUgcG93ZXIg c2F2aW5nIHN0YXRlIGF0IHRoYXQgcG9pbnQsIHdoaWNoIGlzIG5vdAo+IHRoZQo+IGNhc2UuIFNv IGxldCdzIGtlZXAgdGhpbmdzIGFzLWlzIGZvciBub3cgYXQgbGVhc3Q6Cj4gCj4gUmV2aWV3ZWQt Ynk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KCkkgbm90aWNlZCBzb21lIGlzc3Vl IG9ubHkgbm93LCB3aGVuIHRlc3RpbmcgaXQgbW9yZToKCj4gPiA+ICAgfTsKPiA+ID4gPiAgCj4g PiA+ID4gICNkZWZpbmUgU0tMX1BPV0VSX1dFTExfU1RBVEUocHcpICgxIDw8ICgocHcpICogMikp Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4g aW5kZXggNjQ5YWMzNC4uODU2ZDgwMSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiBAQCAtMTMzMjAsNiArMTMzMjAsOSBAQCBzdGF0aWMg aW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0Cj4gPiA+ID4gZHJtX2RldmljZSAqZGV2LAo+ ID4gPiA+ICAJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKQo+ID4gPiA+IC0+dXBk YXRlX3BpcGU7Cj4gPiA+ID4gIAkJdW5zaWduZWQgbG9uZyBwdXRfZG9tYWlucyA9IDA7Cj4gPiA+ ID4gIAo+ID4gPiA+ICsJCWlmIChtb2Rlc2V0KQo+ID4gPiA+ICsJCQlpbnRlbF9kaXNwbGF5X3Bv d2VyX2dldChkZXZfcHJpdiwKPiA+ID4gPiBQT1dFUl9ET01BSU5fTU9ERVNFVCk7Cj4gPiA+ID4g Kwo+ID4gPiA+ICAJCWlmIChtb2Rlc2V0ICYmIGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKPiA+ID4g PiAgCQkJdXBkYXRlX3NjYW5saW5lX29mZnNldCh0b19pbnRlbF9jcnRjKGMKPiA+ID4gPiBydAo+ ID4gPiA+IGMpKTsKPiA+ID4gPiAgCQkJZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19lbmFibGUoY3J0 Yyk7Cj4gPiA+ID4gQEAgLTEzMzQzLDYgKzEzMzQ2LDkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9t aWNfY29tbWl0KHN0cnVjdAo+ID4gPiA+IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gPiAgCQkJbW9k ZXNldF9wdXRfcG93ZXJfZG9tYWlucyhkZXZfcHJpdiwKPiA+ID4gPiBwdXRfZG9tYWlucyk7Cj4g PiA+ID4gIAo+ID4gPiA+ICAJCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwo+ ID4gPiA+ICsKPiA+ID4gPiArCQlpZiAobW9kZXNldCkKPiA+ID4gPiArCQkJaW50ZWxfZGlzcGxh eV9wb3dlcl9wdXQoZGV2X3ByaXYsCj4gPiA+ID4gUE9XRVJfRE9NQUlOX01PREVTRVQpOwo+ID4g PiA+ICAJfQo+ID4gPiA+ICAKPiA+ID4gPiAgCS8qIEZJWE1FOiBhZGQgc3VicGl4ZWwgb3JkZXIg Ki8KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGlt ZV9wbS5jCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMK PiA+ID4gPiBpbmRleCBlZGY3NTNlLi45NWMzZmNjIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gPiA+IEBAIC00OSw5ICs0OSw2IEBA Cj4gPiA+ID4gICAqIHByZXNlbnQgZm9yIGEgZ2l2ZW4gcGxhdGZvcm0uCj4gPiA+ID4gICAqLwo+ ID4gPiA+ICAKPiA+ID4gPiAtI2RlZmluZSBHRU45X0VOQUJMRV9EQzUoZGV2KSAwCj4gPiA+ID4g LSNkZWZpbmUgU0tMX0VOQUJMRV9EQzYoZGV2KSBJU19TS1lMQUtFKGRldikKPiA+ID4gPiAtCj4g PiA+ID4gICNkZWZpbmUgZm9yX2VhY2hfcG93ZXJfd2VsbChpLCBwb3dlcl93ZWxsLCBkb21haW5f bWFzaywKPiA+ID4gPiBwb3dlcl9kb21haW5zKQlcCj4gPiA+ID4gIAlmb3IgKGkgPSAwOwkJCQkJ CQo+ID4gPiA+IAkKPiA+ID4gPiBcCj4gPiA+ID4gIAkgICAgIGkgPCAocG93ZXJfZG9tYWlucykt PnBvd2VyX3dlbGxfY291bnQgJiYJCQo+ID4gPiA+IAlcCj4gPiA+ID4gQEAgLTMwOSw5ICszMDYs MTQgQEAgc3RhdGljIHZvaWQgaHN3X3NldF9wb3dlcl93ZWxsKHN0cnVjdAo+ID4gPiA+IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ICAjZGVmaW5lIFNLTF9ESVNQTEFZX0RESV9E X1BPV0VSX0RPTUFJTlMgKAkJXAo+ID4gPiA+ICAJQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9E X0xBTkVTKSB8CQlcCj4gPiA+ID4gIAlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ID4gPiA+ICsj ZGVmaW5lIFNLTF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5TICgJCVwKPiA+ID4gPiArCUJJ VChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKPiA+ID4gPiArCUJJVChQT1dFUl9ET01BSU5f QVVYX0EpIHwJCQlcCj4gPiA+ID4gKwlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQoKVGhpcyBuZWVk cyBTS0xfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TIGFzIHdlbGwsIHNvIHRoYXQg d2UKZW5hYmxlL2Rpc2FibGUgREM1LzYgd2hlbmV2ZXIgd2UgdG9nZ2xlIFBXXzIuCgo+ID4gPiA+ ICAjZGVmaW5lIFNLTF9ESVNQTEFZX0FMV0FZU19PTl9QT1dFUl9ET01BSU5TICgJCVwKPiA+ID4g PiAgCShQT1dFUl9ET01BSU5fTUFTSyAmIH4oCQkJCQo+ID4gPiA+IFwKPiA+ID4gPiAtCVNLTF9E SVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMpKSB8CVwKPiA+ID4gPiArCVNLTF9ESVNQ TEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJCj4gPiA+ID4gXAo+ID4gPiA+ICsJU0tM X0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMpKSB8CQlcCj4gPiA+ID4gIAlCSVQoUE9XRVJf RE9NQUlOX0lOSVQpKQo+ID4gPiA+ICAKPiA+ID4gPiAgI2RlZmluZSBCWFRfRElTUExBWV9QT1dF UldFTExfMl9QT1dFUl9ET01BSU5TICgJCQo+ID4gPiA+IFwKPiA+ID4gPiBAQCAtMzM5LDYgKzM0 MSwxMCBAQCBzdGF0aWMgdm9pZCBoc3dfc2V0X3Bvd2VyX3dlbGwoc3RydWN0Cj4gPiA+ID4gZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gIAlCSVQoUE9XRVJfRE9NQUlOX0FVWF9B KSB8CQkJXAo+ID4gPiA+ICAJQklUKFBPV0VSX0RPTUFJTl9QTExTKSB8CQkJXAo+ID4gPiA+ICAJ QklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiA+ID4gPiArI2RlZmluZSBCWFRfRElTUExBWV9EQ19P RkZfUE9XRVJfRE9NQUlOUyAoCQlcCj4gPiA+ID4gKwlCSVQoUE9XRVJfRE9NQUlOX01PREVTRVQp IHwJCQlcCj4gPiA+ID4gKwlCSVQoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+ID4gPiA+ICsJ QklUKFBPV0VSX0RPTUFJTl9JTklUKSkKCkFzIGFib3ZlLCB0aGlzIG5lZWRzIEJYVF9ESVNQTEFZ X1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMuCgo+ID4gPiA+ICAjZGVmaW5lIEJYVF9ESVNQTEFZ X0FMV0FZU19PTl9QT1dFUl9ET01BSU5TICgJCVwKPiA+ID4gPiAgCShQT1dFUl9ET01BSU5fTUFT SyAmCj4gPiA+ID4gfihCWFRfRElTUExBWV9QT1dFUldFTExfMV9QT1dFUl9ET01BSU5TCj4gPiA+ ID4gPiAJXAo+ID4gPiA+ICAJQlhUX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUykp IHwJXAo+ID4gPiA+IEBAIC00ODYsMTUgKzQ5Miw2IEBAIHN0YXRpYyB2b2lkIGdlbjlfZW5hYmxl X2RjNShzdHJ1Y3QKPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiAg CWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9FTl9VUFRPX0RDNSk7Cj4gPiA+ ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gLXN0YXRpYyB2b2lkIGdlbjlfZGlzYWJsZV9kYzUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gPiAqZGV2X3ByaXYpCj4gPiA+ID4gLXsKPiA+ID4g PiAtCWFzc2VydF9jYW5fZGlzYWJsZV9kYzUoZGV2X3ByaXYpOwo+ID4gPiA+IC0KPiA+ID4gPiAt CURSTV9ERUJVR19LTVMoIkRpc2FibGluZyBEQzVcbiIpOwo+ID4gPiA+IC0KPiA+ID4gPiAtCWdl bjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiA+ID4gPiAtfQo+ ID4gPiA+IC0KPiA+ID4gPiAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9lbmFibGVfZGM2KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ID4gKmRldl9wcml2KQo+ID4gPiA+ICB7Cj4gPiA+ID4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiA+ID4gPiBAQCAtNTIy LDYgKzUxOSwxNCBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfY2FuX2Rpc2FibGVfZGM2KHN0cnVjdAo+ ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiA+ICAJCSAgIkRDNiBhbHJl YWR5IHByb2dyYW1tZWQgdG8gYmUgZGlzYWJsZWQuXG4iKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAK PiA+ID4gPiArc3RhdGljIHZvaWQgZ2VuOV9kaXNhYmxlX2RjNV9kYzYoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUKPiA+ID4gPiAqZGV2X3ByaXYpCj4gPiA+ID4gK3sKPiA+ID4gPiArCWFzc2VydF9j YW5fZGlzYWJsZV9kYzUoZGV2X3ByaXYpOwo+ID4gPiA+ICsJYXNzZXJ0X2Nhbl9kaXNhYmxlX2Rj NihkZXZfcHJpdik7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3By aXYsIERDX1NUQVRFX0RJU0FCTEUpOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICB2b2lk IHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4g PiAgewo+ID4gPiA+ICAJYXNzZXJ0X2Nhbl9lbmFibGVfZGM2KGRldl9wcml2KTsKPiA+ID4gPiBA QCAtNTcxLDYgKzU3Niw3IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QK PiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiAgCWNhc2UgU0tMX0RJ U1BfUFdfRERJX0M6Cj4gPiA+ID4gIAljYXNlIFNLTF9ESVNQX1BXX0RESV9EOgo+ID4gPiA+ICAJ Y2FzZSBTS0xfRElTUF9QV19NSVNDX0lPOgo+ID4gPiA+ICsJY2FzZSBTS0xfRElTUF9QV19EQ19P RkY6Cj4gPiA+ID4gIAkJYnJlYWs7Cj4gPiA+ID4gIAlkZWZhdWx0Ogo+ID4gPiA+ICAJCVdBUk4o MSwgIlVua25vd24gcG93ZXIgd2VsbCAlbHVcbiIsIHBvd2VyX3dlbGwKPiA+ID4gPiAtPmRhdGEp Owo+ID4gPiA+IEBAIC01ODksMTcgKzU5NSwxMyBAQCBzdGF0aWMgdm9pZCBza2xfc2V0X3Bvd2Vy X3dlbGwoc3RydWN0Cj4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4g IAkJCQkiSW52YWxpZCBmb3IgcG93ZXIgd2VsbCBzdGF0dXMKPiA+ID4gPiB0byBiZQo+ID4gPiA+ IGVuYWJsZWQsIHVubGVzcyBkb25lIGJ5IHRoZSBCSU9TLCBcCj4gPiA+ID4gIAkJCQl3aGVuIHJl cXVlc3QgaXMgdG8KPiA+ID4gPiBkaXNhYmxlIVxuIik7Cj4gPiA+ID4gIAkJCWlmIChwb3dlcl93 ZWxsLT5kYXRhID09IFNLTF9ESVNQX1BXXzIpCj4gPiA+ID4gewo+ID4gPiA+IC0JCQkJaWYgKEdF TjlfRU5BQkxFX0RDNShkZXYpKQo+ID4gPiA+IC0JCQkJCWdlbjlfZGlzYWJsZV9kYzUoZGV2X3AK PiA+ID4gPiByaQo+ID4gPiA+IHYpOwo+ID4gPiA+IC0JCQkJaWYgKFNLTF9FTkFCTEVfREM2KGRl dikpIHsKPiA+ID4gPiAtCQkJCQkvKgo+ID4gPiA+IC0JCQkJCSAqIERESSBidWZmZXIKPiA+ID4g PiBwcm9ncmFtbWluZwo+ID4gPiA+IHVubmVjZXNzYXJ5IGR1cmluZyBkcml2ZXItbG9hZC9yZXN1 bWUKPiA+ID4gPiAtCQkJCQkgKiBhcyBpdCdzIGFscmVhZHkKPiA+ID4gPiBkb25lCj4gPiA+ID4g ZHVyaW5nIG1vZGVzZXQgaW5pdGlhbGl6YXRpb24gdGhlbi4KPiA+ID4gPiAtCQkJCQkgKiBJdCdz IGFsc28gaW52YWxpZAo+ID4gPiA+IGhlcmUgYXMKPiA+ID4gPiBlbmNvZGVyIGxpc3QgaXMgc3Rp bGwgdW5pbml0aWFsaXplZC4KPiA+ID4gPiAtCQkJCQkgKi8KPiA+ID4gPiAtCQkJCQlpZiAoIWRl dl9wcml2Cj4gPiA+ID4gLT5wb3dlcl9kb21haW5zLmluaXRpYWxpemluZykKPiA+ID4gPiAtCQkJ CQkJaW50ZWxfcHJlcGFyZV8KPiA+ID4gPiBkZAo+ID4gPiA+IGkoZGUKPiA+ID4gPiB2KTsKPiA+ ID4gPiAtCQkJCX0KPiA+ID4gPiArCQkJCS8qCj4gPiA+ID4gKwkJCQkgKiBEREkgYnVmZmVyIHBy b2dyYW1taW5nCj4gPiA+ID4gdW5uZWNlc3NhcnkgZHVyaW5nIGRyaXZlci1sb2FkL3Jlc3VtZQo+ ID4gPiA+ICsJCQkJICogYXMgaXQncyBhbHJlYWR5IGRvbmUgZHVyaW5nCj4gPiA+ID4gbW9kZXNl dCBpbml0aWFsaXphdGlvbiB0aGVuLgo+ID4gPiA+ICsJCQkJICogSXQncyBhbHNvIGludmFsaWQg aGVyZSBhcwo+ID4gPiA+IGVuY29kZXIKPiA+ID4gPiBsaXN0IGlzIHN0aWxsIHVuaW5pdGlhbGl6 ZWQuCj4gPiA+ID4gKwkJCQkgKi8KPiA+ID4gPiArCQkJCWlmICghZGV2X3ByaXYKPiA+ID4gPiAt PnBvd2VyX2RvbWFpbnMuaW5pdGlhbGl6aW5nKQo+ID4gPiA+ICsJCQkJCWludGVsX3ByZXBhcmVf ZGRpKGRldikKPiA+ID4gPiA7Cj4gPiA+ID4gIAkJCX0KPiA+ID4gPiAgCQkJSTkxNV9XUklURShI U1dfUFdSX1dFTExfRFJJVkVSLCB0bXAgfAo+ID4gPiA+IHJlcV9tYXNrKTsKPiA+ID4gPiAgCQl9 Cj4gPiA+ID4gQEAgLTYxNywxMCArNjE5LDYgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93 ZWxsKHN0cnVjdAo+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ICAJ CQlJOTE1X1dSSVRFKEhTV19QV1JfV0VMTF9EUklWRVIsCQo+ID4gPiA+IHQKPiA+ID4gPiBtcCAm Cj4gPiA+ID4gfnJlcV9tYXNrKTsKPiA+ID4gPiAgCQkJUE9TVElOR19SRUFEKEhTV19QV1JfV0VM TF9EUklWRVIpOwo+ID4gPiA+ICAJCQlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgJXNcbiIsCj4g PiA+ID4gcG93ZXJfd2VsbAo+ID4gPiA+IC0+bmFtZSk7Cj4gPiA+ID4gLQo+ID4gPiA+IC0JCQlp ZiAoR0VOOV9FTkFCTEVfREM1KGRldikgJiYKPiA+ID4gPiAtCQkJCXBvd2VyX3dlbGwtPmRhdGEg PT0KPiA+ID4gPiBTS0xfRElTUF9QV18yKQo+ID4gPiA+IC0JCQkJCWdlbjlfZW5hYmxlX2RjNShk ZXZfcHIKPiA+ID4gPiBpdgo+ID4gPiA+ICk7Cj4gPiA+ID4gIAkJfQo+ID4gPiA+ICAJfQo+ID4g PiA+ICAKPiA+ID4gPiBAQCAtNjk1LDYgKzY5Myw0MCBAQCBzdGF0aWMgdm9pZCBza2xfcG93ZXJf d2VsbF9kaXNhYmxlKHN0cnVjdAo+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gPiA+ICAJc2tsX3NldF9wb3dlcl93ZWxsKGRldl9wcml2LCBwb3dlcl93ZWxsLCBmYWxzZSk7 Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gK3N0YXRpYyBib29sIGdlbjlfZGNfb2ZmX3Bv d2VyX3dlbGxfZW5hYmxlZChzdHJ1Y3QKPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlCj4gPiA+ID4g KmRldl9wcml2LAo+ID4gPiA+ICsJCQkJCSAgc3RydWN0Cj4gPiA+ID4gaTkxNV9wb3dlcl93ZWxs Cj4gPiA+ID4gKnBvd2VyX3dlbGwpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXJldHVybiAoSTkxNV9S RUFEKERDX1NUQVRFX0VOKSAmCj4gPiA+ID4gRENfU1RBVEVfRU5fVVBUT19EQzVfREM2X01BU0sp ID09IDA7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyB2b2lkIGdlbjlfZGNf b2ZmX3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVjdAo+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUKPiA+ ID4gPiAqZGV2X3ByaXYsCj4gPiA+ID4gKwkJCQkJIHN0cnVjdAo+ID4gPiA+IGk5MTVfcG93ZXJf d2VsbAo+ID4gPiA+ICpwb3dlcl93ZWxsKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlnZW45X2Rpc2Fi bGVfZGM1X2RjNihkZXZfcHJpdik7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRp YyB2b2lkIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QKPiA+ID4gPiBkcm1f aTkxNV9wcml2YXRlCj4gPiA+ID4gKmRldl9wcml2LAo+ID4gPiA+ICsJCQkJCSAgc3RydWN0Cj4g PiA+ID4gaTkxNV9wb3dlcl93ZWxsCj4gPiA+ID4gKnBvd2VyX3dlbGwpCj4gPiA+ID4gK3sKPiA+ ID4gPiArCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSkKPiA+ID4gPiArCQlza2xfZW5hYmxlX2Rj NihkZXZfcHJpdik7Cj4gPiA+ID4gKwllbHNlCj4gPiA+ID4gKwkJZ2VuOV9lbmFibGVfZGM1KGRl dl9wcml2KTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIHZvaWQgZ2VuOV9k Y19vZmZfcG93ZXJfd2VsbF9zeW5jX2h3KHN0cnVjdAo+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUK PiA+ID4gPiAqZGV2X3ByaXYsCj4gPiA+ID4gKwkJCQkJICBzdHJ1Y3QKPiA+ID4gPiBpOTE1X3Bv d2VyX3dlbGwKPiA+ID4gPiAqcG93ZXJfd2VsbCkKPiA+ID4gPiArewo+ID4gPiA+ICsJaWYgKHBv d2VyX3dlbGwtPmNvdW50ID4gMCkgewo+ID4gPiA+ICsJCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9w cml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiA+ID4gPiArCX0gZWxzZSB7Cj4gPiA+ID4gKwkJaWYg KElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ID4gPiA+ICsJCQlnZW45X3NldF9kY19zdGF0ZShkZXZf cHJpdiwKPiA+ID4gPiBEQ19TVEFURV9FTl9VUFRPX0RDNik7Cj4gPiA+ID4gKwkJZWxzZQo+ID4g PiA+ICsJCQlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwKPiA+ID4gPiBEQ19TVEFURV9FTl9V UFRPX0RDNSk7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gIHN0YXRp YyB2b2lkIGk5eHhfYWx3YXlzX29uX3Bvd2VyX3dlbGxfbm9vcChzdHJ1Y3QKPiA+ID4gPiBkcm1f aTkxNV9wcml2YXRlCj4gPiA+ID4gKmRldl9wcml2LAo+ID4gPiA+ICAJCQkJCSAgIHN0cnVjdAo+ ID4gPiA+IGk5MTVfcG93ZXJfd2VsbAo+ID4gPiA+ICpwb3dlcl93ZWxsKQo+ID4gPiA+ICB7Cj4g PiA+ID4gQEAgLTE1MTcsNiArMTU0OSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93 ZXJfd2VsbF9vcHMKPiA+ID4gPiBza2xfcG93ZXJfd2VsbF9vcHMgPSB7Cj4gPiA+ID4gIAkuaXNf ZW5hYmxlZCA9IHNrbF9wb3dlcl93ZWxsX2VuYWJsZWQsCj4gPiA+ID4gIH07Cj4gPiA+ID4gIAo+ ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMKPiA+ID4gPiBn ZW45X2RjX29mZl9wb3dlcl93ZWxsX29wcyA9Cj4gPiA+ID4gewo+ID4gPiA+ICsJLnN5bmNfaHcg PSBnZW45X2RjX29mZl9wb3dlcl93ZWxsX3N5bmNfaHcsCj4gPiA+ID4gKwkuZW5hYmxlID0gZ2Vu OV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGUsCj4gPiA+ID4gKwkuZGlzYWJsZSA9IGdlbjlfZGNf b2ZmX3Bvd2VyX3dlbGxfZGlzYWJsZSwKPiA+ID4gPiArCS5pc19lbmFibGVkID0gZ2VuOV9kY19v ZmZfcG93ZXJfd2VsbF9lbmFibGVkLAo+ID4gPiA+ICt9Owo+ID4gPiA+ICsKPiA+ID4gPiAgc3Rh dGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgaHN3X3Bvd2VyX3dlbGxzW10gPSB7Cj4gPiA+ID4g IAl7Cj4gPiA+ID4gIAkJLm5hbWUgPSAiYWx3YXlzLW9uIiwKPiA+ID4gPiBAQCAtMTY5Nyw2ICsx NzM2LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsCj4gPiA+ID4gc2tsX3Bvd2Vy X3dlbGxzW10gPSB7Cj4gPiA+ID4gIAkJLmRhdGEgPSBTS0xfRElTUF9QV18yLAo+ID4gPiA+ICAJ fSwKPiA+ID4gPiAgCXsKPiA+ID4gPiArCQkubmFtZSA9ICJEQyBvZmYiLAo+ID4gPiA+ICsJCS5k b21haW5zID0gU0tMX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMsCj4gPiA+ID4gKwkJLm9w cyA9ICZnZW45X2RjX29mZl9wb3dlcl93ZWxsX29wcywKPiA+ID4gPiArCQkuZGF0YSA9IFNLTF9E SVNQX1BXX0RDX09GRiwKPiA+ID4gPiArCX0sCgpUaGlzIHNob3VsZCBiZSBsaXN0ZWQgcmlnaHQg YmVmb3JlIHRoZSBQV18yIHdlbGwsIHNvIHRoYXQgdGhlIHdlIGhhdmUKdGhlIGZvbGxvd2luZyBz ZXF1ZW5jZXM6CgoxLiBkaXNhYmxlIERDNS82CjIuIGVuYWJsZSBQV18yCgoxLiBkaXNhYmxlIFBX XzIKMi4gZW5hYmxlIERDNS82Cgo+ID4gPiA+ICsJewo+ID4gPiA+ICAJCS5uYW1lID0gIkRESSBB L0UgcG93ZXIgd2VsbCIsCj4gPiA+ID4gIAkJLmRvbWFpbnMgPSBTS0xfRElTUExBWV9ERElfQV9F X1BPV0VSX0RPTUFJTlMsCj4gPiA+ID4gIAkJLm9wcyA9ICZza2xfcG93ZXJfd2VsbF9vcHMsCj4g PiA+ID4gQEAgLTE3NjksNyArMTgxNCwxNCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2Vs bAo+ID4gPiA+IGJ4dF9wb3dlcl93ZWxsc1tdID0gewo+ID4gPiA+ICAJCS5kb21haW5zID0KPiA+ ID4gPiBCWFRfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TLAo+ID4gPiA+ICAJCS5v cHMgPSAmc2tsX3Bvd2VyX3dlbGxfb3BzLAo+ID4gPiA+ICAJCS5kYXRhID0gU0tMX0RJU1BfUFdf MiwKPiA+ID4gPiAtCX0KPiA+ID4gPiArCX0sCj4gPiA+ID4gKwl7Cj4gPiA+ID4gKwkJLm5hbWUg PSAiREMgb2ZmIiwKPiA+ID4gPiArCQkuZG9tYWlucyA9IEJYVF9ESVNQTEFZX0RDX09GRl9QT1dF Ul9ET01BSU5TLAo+ID4gPiA+ICsJCS5vcHMgPSAmZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9vcHMs Cj4gPiA+ID4gKwkJLmRhdGEgPSBTS0xfRElTUF9QV19EQ19PRkYsCj4gPiA+ID4gKwl9LAoKQXMg YWJvdmUsIHRoaXMgc2hvdWxkIGJlIGxpc3RlZCByaWdodCBiZWZvcmUgdGhlIFBXXzIgd2VsbC4K Cj4gPiA+ID4gKwo+ID4gPiA+ICB9Owo+ID4gPiA+ICAKPiA+ID4gPiAgI2RlZmluZSBzZXRfcG93 ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgX19wb3dlcl93ZWxscykgKHsJCj4gPiA+ID4gCQo+ID4g PiA+IFwKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=