From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v4 10/12] drm/i915/gen9: Turn DC handling into a power well Date: Tue, 17 Nov 2015 21:21:05 +0200 Message-ID: <1447788065.9159.11.camel@intel.com> References: <1447682467-6237-4-git-send-email-patrik.jakobsson@linux.intel.com> <1447687201-24759-1-git-send-email-patrik.jakobsson@linux.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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 361E66E1E7 for ; Tue, 17 Nov 2015 11:21:07 -0800 (PST) In-Reply-To: <1447687201-24759-1-git-send-email-patrik.jakobsson@linux.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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gbWEsIDIwMTUtMTEtMTYgYXQgMTY6MjAgKzAxMDAsIFBhdHJpayBKYWtvYnNzb24gd3JvdGU6 Cj4gSGFuZGxlIERDIG9mZiBhcyBhIHBvd2VyIHdlbGwgd2hlcmUgZW5hYmxpbmcgdGhlIHBvd2Vy IHdlbGwgd2lsbAo+IHByZXZlbnQKPiB0aGUgRE1DIHRvIGVudGVyIHNlbGVjdGVkIERDIHN0YXRl cyAocmVxdWlyZWQgYXJvdW5kIG1vZGVzZXRzIGFuZCBBdXgKPiBBKS4gRGlzYWJsaW5nIHRoZSBw b3dlciB3ZWxsIHdpbGwgYWxsb3cgREMgc3RhdGVzIGFnYWluLiBGb3Igbm93IHRoZQo+IGhpZ2hl c3QgREMgc3RhdGUgaXMgREM2IGZvciBTa3lsYWtlIGFuZCBEQzUgZm9yIEJyb3h0b24gYnV0IHdp bGwgYmUKPiBjb25maWd1cmFibGUgZm9yIFNreWxha2UgaW4gYSBsYXRlciBwYXRjaC4KPiAKPiB2 MjogQ2hlY2sgYm90aCBEQzUgYW5kIERDNiBiaXRzIGluIHBvd2VyIHdlbGwgZW5hYmxlZCBmdW5j dGlvbgo+IChWaWxsZSkKPiB2MzoKPiAtIFJlbW92ZSB1bm5lZWRlZCBEQ19PRkYgY2FzZSBpbiBz a2xfc2V0X3Bvd2VyX3dlbGwoKSAoSW1yZSkKPiAtIEFkZCBQVzIgZGVwZW5kZW5jeSB0byBEQ19P RkYgKEltcmUpCj4gdjQ6IFB1dCBEQ19PRkYgYmVmb3JlIFBXMiBpbiBCWFQgcG93ZXIgd2VsbCBh cnJheQo+IAo+IFNpZ25lZC1vZmYtYnk6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5qYWtvYnNz b25AbGludXguaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0Bp bnRlbC5jb20+CgpUaGlzIGhhcyBzb21lIGNoZWNrcGF0Y2ggZXJyb3JzLCBJIGZpeGVkIHRoZW0g dXAgd2hpbGUgYXBwbHlpbmcuCgo+IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuY8KgwqDCoMKgwqDCoMKgwqDCoHzCoMKgwqA2IC0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5owqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDEgKwo+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jwqDCoMKgwqB8wqDCoMKgNiArKwo+IMKgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTEwCj4gKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0KPiDCoDQgZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgMzUg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCA1YTYzZjlh Li4wYzdmNDM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTEwNzIsOSArMTA3 Miw2IEBAIHN0YXRpYyBpbnQgaTkxNV9wbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+IMKg Cj4gwqBzdGF0aWMgaW50IHNrbF9zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCWlmIChkZXZfcHJpdi0+Y3NyLmRtY19wYXlsb2FkKQo+ IC0JCXNrbF9lbmFibGVfZGM2KGRldl9wcml2KTsKPiAtCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4g wqAKPiBAQCAtMTExOSw5ICsxMTE2LDYgQEAgc3RhdGljIGludCBieHRfcmVzdW1lX3ByZXBhcmUo c3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAKPiDCoHN0YXRpYyBpbnQg c2tsX3Jlc3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDC oHsKPiAtCWlmIChkZXZfcHJpdi0+Y3NyLmRtY19wYXlsb2FkKQo+IC0JCXNrbF9kaXNhYmxlX2Rj NihkZXZfcHJpdik7Cj4gLQo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiBpbmRleCAwZjM4NDlmLi5iNmEzNTI1IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4gQEAgLTYzOCw2ICs2MzgsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxz IHsKPiDCoAo+IMKgCS8qIE5vdCBhY3R1YWwgYml0IGdyb3Vwcy4gVXNlZCBhcyBJRHMgZm9yCj4g bG9va3VwX3Bvd2VyX3dlbGwoKSAqLwo+IMKgCVNLTF9ESVNQX1BXX0FMV0FZU19PTiwKPiArCVNL TF9ESVNQX1BXX0RDX09GRiwKPiDCoH07Cj4gwqAKPiDCoCNkZWZpbmUgU0tMX1BPV0VSX1dFTExf U1RBVEUocHcpICgxIDw8ICgocHcpICogMikpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gaW5kZXggOTc4YjFiOS4uMjEzODVhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtMTMzMjMsNiArMTMzMjMsOSBAQCBzdGF0aWMgaW50IGludGVs X2F0b21pY19jb21taXQoc3RydWN0Cj4gZHJtX2RldmljZSAqZGV2LAo+IMKgCQkJdG9faW50ZWxf Y3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSktCj4gPnVwZGF0ZV9waXBlOwo+IMKgCQl1bnNpZ25lZCBs b25nIHB1dF9kb21haW5zID0gMDsKPiDCoAo+ICsJCWlmIChtb2Rlc2V0KQo+ICsJCQlpbnRlbF9k aXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwKPiBQT1dFUl9ET01BSU5fTU9ERVNFVCk7Cj4gKwo+ IMKgCQlpZiAobW9kZXNldCAmJiBjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7Cj4gwqAJCQl1cGRhdGVf c2NhbmxpbmVfb2Zmc2V0KHRvX2ludGVsX2NydGMoY3J0YykpOwo+IMKgCQkJZGV2X3ByaXYtPmRp c3BsYXkuY3J0Y19lbmFibGUoY3J0Yyk7Cj4gQEAgLTEzMzQ2LDYgKzEzMzQ5LDkgQEAgc3RhdGlj IGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdAo+IGRybV9kZXZpY2UgKmRldiwKPiDCoAkJ CW1vZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoZGV2X3ByaXYsCj4gcHV0X2RvbWFpbnMpOwo+IMKg Cj4gwqAJCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwo+ICsKPiArCQlpZiAo bW9kZXNldCkKPiArCQkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsCj4gUE9XRVJf RE9NQUlOX01PREVTRVQpOwo+IMKgCX0KPiDCoAo+IMKgCS8qIEZJWE1FOiBhZGQgc3VicGl4ZWwg b3JkZXIgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGlt ZV9wbS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBpbmRl eCBlZGY3NTNlLi4wZmYxNjQ2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRp bWVfcG0uYwo+IEBAIC00OSw5ICs0OSw2IEBACj4gwqAgKiBwcmVzZW50IGZvciBhIGdpdmVuIHBs YXRmb3JtLgo+IMKgICovCj4gwqAKPiAtI2RlZmluZSBHRU45X0VOQUJMRV9EQzUoZGV2KSAwCj4g LSNkZWZpbmUgU0tMX0VOQUJMRV9EQzYoZGV2KSBJU19TS1lMQUtFKGRldikKPiAtCj4gwqAjZGVm aW5lIGZvcl9lYWNoX3Bvd2VyX3dlbGwoaSwgcG93ZXJfd2VsbCwgZG9tYWluX21hc2ssCj4gcG93 ZXJfZG9tYWlucykJXAo+IMKgCWZvciAoaSA9IDA7CQkJCQkJCQo+IFwKPiDCoAnCoMKgwqDCoMKg aSA8IChwb3dlcl9kb21haW5zKS0+cG93ZXJfd2VsbF9jb3VudCAmJgkJCj4gCVwKPiBAQCAtMzA5 LDkgKzMwNiwxNSBAQCBzdGF0aWMgdm9pZCBoc3dfc2V0X3Bvd2VyX3dlbGwoc3RydWN0Cj4gZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAjZGVmaW5lIFNLTF9ESVNQTEFZX0RESV9EX1BP V0VSX0RPTUFJTlMgKAkJXAo+IMKgCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykg fAkJXAo+IMKgCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKyNkZWZpbmUgU0tMX0RJU1BMQVlf RENfT0ZGX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJU0tMX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9X RVJfRE9NQUlOUyB8CQlcCj4gKwlCSVQoUE9XRVJfRE9NQUlOX01PREVTRVQpIHwJCQlcCj4gKwlC SVQoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+ICsJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkK PiDCoCNkZWZpbmUgU0tMX0RJU1BMQVlfQUxXQVlTX09OX1BPV0VSX0RPTUFJTlMgKAkJXAo+IMKg CShQT1dFUl9ET01BSU5fTUFTSyAmIH4oCQkJCVwKPiAtCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8y X1BPV0VSX0RPTUFJTlMpKSB8CVwKPiArCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RP TUFJTlMgfAkJXAo+ICsJU0tMX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMpKSB8CQlcCj4g wqAJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiDCoAo+IMKgI2RlZmluZSBCWFRfRElTUExBWV9Q T1dFUldFTExfMl9QT1dFUl9ET01BSU5TICgJCVwKPiBAQCAtMzM5LDYgKzM0MiwxMSBAQCBzdGF0 aWMgdm9pZCBoc3dfc2V0X3Bvd2VyX3dlbGwoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gwqAJQklUKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKPiDCoAlCSVQoUE9XRVJf RE9NQUlOX1BMTFMpIHwJCQlcCj4gwqAJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiArI2RlZmlu ZSBCWFRfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlCWFRfRElTUExBWV9Q T1dFUldFTExfMl9QT1dFUl9ET01BSU5TIHwJCVwKPiArCUJJVChQT1dFUl9ET01BSU5fTU9ERVNF VCkgfAkJCVwKPiArCUJJVChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCj4gKwlCSVQoUE9XRVJf RE9NQUlOX0lOSVQpKQo+IMKgI2RlZmluZSBCWFRfRElTUExBWV9BTFdBWVNfT05fUE9XRVJfRE9N QUlOUyAoCQlcCj4gwqAJKFBPV0VSX0RPTUFJTl9NQVNLICYgfihCWFRfRElTUExBWV9QT1dFUldF TExfMV9QT1dFUl9ET01BSU5TCj4gfAlcCj4gwqAJQlhUX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9X RVJfRE9NQUlOUykpIHwJXAo+IEBAIC00ODYsMTUgKzQ5NCw2IEBAIHN0YXRpYyB2b2lkIGdlbjlf ZW5hYmxlX2RjNShzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAlnZW45 X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRU5fVVBUT19EQzUpOwo+IMKgfQo+IMKg Cj4gLXN0YXRpYyB2b2lkIGdlbjlfZGlzYWJsZV9kYzUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+IC17Cj4gLQlhc3NlcnRfY2FuX2Rpc2FibGVfZGM1KGRldl9wcml2KTsKPiAt Cj4gLQlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgREM1XG4iKTsKPiAtCj4gLQlnZW45X3NldF9k Y19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRElTQUJMRSk7Cj4gLX0KPiAtCj4gwqBzdGF0aWMg dm9pZCBhc3NlcnRfY2FuX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+IMKgewo+IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ IEBAIC01MjIsNiArNTIxLDE0IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9jYW5fZGlzYWJsZV9kYzYo c3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJCcKgwqAiREM2IGFscmVh ZHkgcHJvZ3JhbW1lZCB0byBiZSBkaXNhYmxlZC5cbiIpOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyB2 b2lkIGdlbjlfZGlzYWJsZV9kYzVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiArewo+ICsJYXNzZXJ0X2Nhbl9kaXNhYmxlX2RjNShkZXZfcHJpdik7Cj4gKwlhc3NlcnRf Y2FuX2Rpc2FibGVfZGM2KGRldl9wcml2KTsKPiArCj4gKwlnZW45X3NldF9kY19zdGF0ZShkZXZf cHJpdiwgRENfU1RBVEVfRElTQUJMRSk7Cj4gK30KPiArCj4gwqB2b2lkIHNrbF9lbmFibGVfZGM2 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiDCoAlhc3NlcnRfY2Fu X2VuYWJsZV9kYzYoZGV2X3ByaXYpOwo+IEBAIC01ODksMTcgKzU5NiwxMyBAQCBzdGF0aWMgdm9p ZCBza2xfc2V0X3Bvd2VyX3dlbGwoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gwqAJCQkJIkludmFsaWQgZm9yIHBvd2VyIHdlbGwgc3RhdHVzIHRvIGJlCj4gZW5hYmxlZCwg dW5sZXNzIGRvbmUgYnkgdGhlIEJJT1MsIFwKPiDCoAkJCQl3aGVuIHJlcXVlc3QgaXMgdG8gZGlz YWJsZSFcbiIpOwo+IMKgCQkJaWYgKHBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikg ewo+IC0JCQkJaWYgKEdFTjlfRU5BQkxFX0RDNShkZXYpKQo+IC0JCQkJCWdlbjlfZGlzYWJsZV9k YzUoZGV2X3ByaXYpOwo+IC0JCQkJaWYgKFNLTF9FTkFCTEVfREM2KGRldikpIHsKPiAtCQkJCQkv Kgo+IC0JCQkJCcKgKiBEREkgYnVmZmVyIHByb2dyYW1taW5nCj4gdW5uZWNlc3NhcnkgZHVyaW5n IGRyaXZlci1sb2FkL3Jlc3VtZQo+IC0JCQkJCcKgKiBhcyBpdCdzIGFscmVhZHkgZG9uZQo+IGR1 cmluZyBtb2Rlc2V0IGluaXRpYWxpemF0aW9uIHRoZW4uCj4gLQkJCQkJwqAqIEl0J3MgYWxzbyBp bnZhbGlkIGhlcmUgYXMKPiBlbmNvZGVyIGxpc3QgaXMgc3RpbGwgdW5pbml0aWFsaXplZC4KPiAt CQkJCQnCoCovCj4gLQkJCQkJaWYgKCFkZXZfcHJpdi0KPiA+cG93ZXJfZG9tYWlucy5pbml0aWFs aXppbmcpCj4gLQkJCQkJCWludGVsX3ByZXBhcmVfZGRpKGRlCj4gdik7Cj4gLQkJCQl9Cj4gKwkJ CQkvKgo+ICsJCQkJwqAqIERESSBidWZmZXIgcHJvZ3JhbW1pbmcKPiB1bm5lY2Vzc2FyeSBkdXJp bmcgZHJpdmVyLWxvYWQvcmVzdW1lCj4gKwkJCQnCoCogYXMgaXQncyBhbHJlYWR5IGRvbmUgZHVy aW5nCj4gbW9kZXNldCBpbml0aWFsaXphdGlvbiB0aGVuLgo+ICsJCQkJwqAqIEl0J3MgYWxzbyBp bnZhbGlkIGhlcmUgYXMgZW5jb2Rlcgo+IGxpc3QgaXMgc3RpbGwgdW5pbml0aWFsaXplZC4KPiAr CQkJCcKgKi8KPiArCQkJCWlmICghZGV2X3ByaXYtCj4gPnBvd2VyX2RvbWFpbnMuaW5pdGlhbGl6 aW5nKQo+ICsJCQkJCWludGVsX3ByZXBhcmVfZGRpKGRldik7Cj4gwqAJCQl9Cj4gwqAJCQlJOTE1 X1dSSVRFKEhTV19QV1JfV0VMTF9EUklWRVIsIHRtcCB8Cj4gcmVxX21hc2spOwo+IMKgCQl9Cj4g QEAgLTYxNywxMCArNjIwLDYgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVj dAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCQkJSTkxNV9XUklURShIU1dfUFdS X1dFTExfRFJJVkVSLAl0bXAgJgo+IH5yZXFfbWFzayk7Cj4gwqAJCQlQT1NUSU5HX1JFQUQoSFNX X1BXUl9XRUxMX0RSSVZFUik7Cj4gwqAJCQlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgJXNcbiIs IHBvd2VyX3dlbGwtCj4gPm5hbWUpOwo+IC0KPiAtCQkJaWYgKEdFTjlfRU5BQkxFX0RDNShkZXYp ICYmCj4gLQkJCQlwb3dlcl93ZWxsLT5kYXRhID09IFNLTF9ESVNQX1BXXzIpCj4gLQkJCQkJZ2Vu OV9lbmFibGVfZGM1KGRldl9wcml2KTsKPiDCoAkJfQo+IMKgCX0KPiDCoAo+IEBAIC02OTUsNiAr Njk0LDQwIEBAIHN0YXRpYyB2b2lkIHNrbF9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0Cj4gZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJc2tsX3NldF9wb3dlcl93ZWxsKGRldl9wcml2 LCBwb3dlcl93ZWxsLCBmYWxzZSk7Cj4gwqB9Cj4gwqAKPiArc3RhdGljIGJvb2wgZ2VuOV9kY19v ZmZfcG93ZXJfd2VsbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2 LAo+ICsJCQkJCcKgwqBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsCj4gKnBvd2VyX3dlbGwpCj4gK3sK PiArCXJldHVybiAoSTkxNV9SRUFEKERDX1NUQVRFX0VOKSAmCj4gRENfU1RBVEVfRU5fVVBUT19E QzVfREM2X01BU0spID09IDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGdlbjlfZGNfb2ZmX3Bv d2VyX3dlbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+ICsJ CQkJCcKgc3RydWN0IGk5MTVfcG93ZXJfd2VsbAo+ICpwb3dlcl93ZWxsKQo+ICt7Cj4gKwlnZW45 X2Rpc2FibGVfZGM1X2RjNihkZXZfcHJpdik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGdlbjlf ZGNfb2ZmX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZf cHJpdiwKPiArCQkJCQnCoMKgc3RydWN0IGk5MTVfcG93ZXJfd2VsbAo+ICpwb3dlcl93ZWxsKQo+ ICt7Cj4gKwlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikpCj4gKwkJc2tsX2VuYWJsZV9kYzYoZGV2 X3ByaXYpOwo+ICsJZWxzZQo+ICsJCWdlbjlfZW5hYmxlX2RjNShkZXZfcHJpdik7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfc3luY19odyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdiwKPiArCQkJCQnCoMKgc3RydWN0IGk5MTVfcG93ZXJf d2VsbAo+ICpwb3dlcl93ZWxsKQo+ICt7Cj4gKwlpZiAocG93ZXJfd2VsbC0+Y291bnQgPiAwKSB7 Cj4gKwkJZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOwo+ICsJ fSBlbHNlIHsKPiArCQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikpCj4gKwkJCWdlbjlfc2V0X2Rj X3N0YXRlKGRldl9wcml2LAo+IERDX1NUQVRFX0VOX1VQVE9fREM2KTsKPiArCQllbHNlCj4gKwkJ CWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LAo+IERDX1NUQVRFX0VOX1VQVE9fREM1KTsKPiAr CX0KPiArfQo+ICsKPiDCoHN0YXRpYyB2b2lkIGk5eHhfYWx3YXlzX29uX3Bvd2VyX3dlbGxfbm9v cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdiwKPiDCoAkJCQkJwqDCoMKgc3Ry dWN0IGk5MTVfcG93ZXJfd2VsbAo+ICpwb3dlcl93ZWxsKQo+IMKgewo+IEBAIC0xNTE3LDYgKzE1 NTAsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfb3BzCj4gc2tsX3Bv d2VyX3dlbGxfb3BzID0gewo+IMKgCS5pc19lbmFibGVkID0gc2tsX3Bvd2VyX3dlbGxfZW5hYmxl ZCwKPiDCoH07Cj4gwqAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfb3Bz IGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfb3BzID0KPiB7Cj4gKwkuc3luY19odyA9IGdlbjlfZGNf b2ZmX3Bvd2VyX3dlbGxfc3luY19odywKPiArCS5lbmFibGUgPSBnZW45X2RjX29mZl9wb3dlcl93 ZWxsX2VuYWJsZSwKPiArCS5kaXNhYmxlID0gZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9kaXNhYmxl LAo+ICsJLmlzX2VuYWJsZWQgPSBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZWQsCj4gK307 Cj4gKwo+IMKgc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgaHN3X3Bvd2VyX3dlbGxzW10g PSB7Cj4gwqAJewo+IMKgCQkubmFtZSA9ICJhbHdheXMtb24iLAo+IEBAIC0xNjkxLDYgKzE3MzEs MTIgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwKPiBza2xfcG93ZXJfd2VsbHNbXSA9 IHsKPiDCoAkJLmRhdGEgPSBTS0xfRElTUF9QV19NSVNDX0lPLAo+IMKgCX0sCj4gwqAJewo+ICsJ CS5uYW1lID0gIkRDIG9mZiIsCj4gKwkJLmRvbWFpbnMgPSBTS0xfRElTUExBWV9EQ19PRkZfUE9X RVJfRE9NQUlOUywKPiArCQkub3BzID0gJmdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfb3BzLAo+ICsJ CS5kYXRhID0gU0tMX0RJU1BfUFdfRENfT0ZGLAo+ICsJfSwKPiArCXsKPiDCoAkJLm5hbWUgPSAi cG93ZXIgd2VsbCAyIiwKPiDCoAkJLmRvbWFpbnMgPSBTS0xfRElTUExBWV9QT1dFUldFTExfMl9Q T1dFUl9ET01BSU5TLAo+IMKgCQkub3BzID0gJnNrbF9wb3dlcl93ZWxsX29wcywKPiBAQCAtMTc2 NSwxMSArMTgxMSwxNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2VsbAo+IGJ4dF9wb3dl cl93ZWxsc1tdID0gewo+IMKgCQkuZGF0YSA9IFNLTF9ESVNQX1BXXzEsCj4gwqAJfSwKPiDCoAl7 Cj4gKwkJLm5hbWUgPSAiREMgb2ZmIiwKPiArCQkuZG9tYWlucyA9IEJYVF9ESVNQTEFZX0RDX09G Rl9QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9vcHMs Cj4gKwkJLmRhdGEgPSBTS0xfRElTUF9QV19EQ19PRkYsCj4gKwl9LAo+ICsJewo+IMKgCQkubmFt ZSA9ICJwb3dlciB3ZWxsIDIiLAo+IMKgCQkuZG9tYWlucyA9IEJYVF9ESVNQTEFZX1BPV0VSV0VM TF8yX1BPV0VSX0RPTUFJTlMsCj4gwqAJCS5vcHMgPSAmc2tsX3Bvd2VyX3dlbGxfb3BzLAo+IMKg CQkuZGF0YSA9IFNLTF9ESVNQX1BXXzIsCj4gLQl9Cj4gKwl9LAo+IMKgfTsKPiDCoAo+IMKgI2Rl ZmluZSBzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgX19wb3dlcl93ZWxscykgKHsJCQo+ IFwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK