From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrik Jakobsson Subject: Re: [PATCH v3 10/12] drm/i915/gen9: Turn DC handling into a power well Date: Mon, 16 Nov 2015 20:46:16 +0100 Message-ID: References: <1447084107-8521-11-git-send-email-patrik.jakobsson@linux.intel.com> <1447682467-6237-4-git-send-email-patrik.jakobsson@linux.intel.com> <1447702122.1377.18.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com [209.85.217.176]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7ADDA6E1D9 for ; Mon, 16 Nov 2015 11:46:18 -0800 (PST) Received: by lbbcs9 with SMTP id cs9so94973465lbb.1 for ; Mon, 16 Nov 2015 11:46:16 -0800 (PST) In-Reply-To: <1447702122.1377.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: imre.deak@intel.com Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBOb3YgMTYsIDIwMTUgYXQgODoyOCBQTSwgSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50 ZWwuY29tPiB3cm90ZToKPiBPbiBtYSwgMjAxNS0xMS0xNiBhdCAxNTowMSArMDEwMCwgUGF0cmlr IEpha29ic3NvbiB3cm90ZToKPj4gSGFuZGxlIERDIG9mZiBhcyBhIHBvd2VyIHdlbGwgd2hlcmUg ZW5hYmxpbmcgdGhlIHBvd2VyIHdlbGwgd2lsbCBwcmV2ZW50Cj4+IHRoZSBETUMgdG8gZW50ZXIg c2VsZWN0ZWQgREMgc3RhdGVzIChyZXF1aXJlZCBhcm91bmQgbW9kZXNldHMgYW5kIEF1eAo+PiBB KS4gRGlzYWJsaW5nIHRoZSBwb3dlciB3ZWxsIHdpbGwgYWxsb3cgREMgc3RhdGVzIGFnYWluLiBG b3Igbm93IHRoZQo+PiBoaWdoZXN0IERDIHN0YXRlIGlzIERDNiBmb3IgU2t5bGFrZSBhbmQgREM1 IGZvciBCcm94dG9uIGJ1dCB3aWxsIGJlCj4+IGNvbmZpZ3VyYWJsZSBmb3IgU2t5bGFrZSBpbiBh IGxhdGVyIHBhdGNoLgo+Pgo+PiB2MjogQ2hlY2sgYm90aCBEQzUgYW5kIERDNiBiaXRzIGluIHBv d2VyIHdlbGwgZW5hYmxlZCBmdW5jdGlvbiAoVmlsbGUpCj4+IHYzOgo+PiAtIFJlbW92ZSB1bm5l ZWRlZCBEQ19PRkYgY2FzZSBpbiBza2xfc2V0X3Bvd2VyX3dlbGwoKSAoSW1yZSkKPj4gLSBBZGQg UFcyIGRlcGVuZGVuY3kgdG8gRENfT0ZGIChJbXJlKQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBQYXRy aWsgSmFrb2Jzc29uIDxwYXRyaWsuamFrb2Jzc29uQGxpbnV4LmludGVsLmNvbT4KPj4gUmV2aWV3 ZWQtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAgIDYgLS0KPj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICB8ICAgMSArCj4+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCAgIDYgKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYyB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LQo+PiAgNCBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+IGluZGV4IDVhNjNmOWEuLjBjN2Y0MzUgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiBAQCAtMTA3Miw5ICsxMDcyLDYgQEAgc3Rh dGljIGludCBpOTE1X3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+Cj4+ICBzdGF0aWMg aW50IHNrbF9zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPj4gIHsKPj4gLSAgICAgaWYgKGRldl9wcml2LT5jc3IuZG1jX3BheWxvYWQpCj4+IC0gICAg ICAgICAgICAgc2tsX2VuYWJsZV9kYzYoZGV2X3ByaXYpOwo+PiAtCj4+ICAgICAgIHJldHVybiAw Owo+PiAgfQo+Pgo+PiBAQCAtMTExOSw5ICsxMTE2LDYgQEAgc3RhdGljIGludCBieHRfcmVzdW1l X3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pgo+PiAgc3RhdGlj IGludCBza2xfcmVzdW1lX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+PiAgewo+PiAtICAgICBpZiAoZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9hZCkKPj4gLSAgICAg ICAgICAgICBza2xfZGlzYWJsZV9kYzYoZGV2X3ByaXYpOwo+PiAtCj4+ICAgICAgIHJldHVybiAw Owo+PiAgfQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gaW5kZXggMGYzODQ5Zi4uYjZh MzUyNSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IEBAIC02MzgsNiArNjM4LDcg QEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4+Cj4+ICAgICAgIC8qIE5vdCBhY3R1YWwg Yml0IGdyb3Vwcy4gVXNlZCBhcyBJRHMgZm9yIGxvb2t1cF9wb3dlcl93ZWxsKCkgKi8KPj4gICAg ICAgU0tMX0RJU1BfUFdfQUxXQVlTX09OLAo+PiArICAgICBTS0xfRElTUF9QV19EQ19PRkYsCj4+ ICB9Owo+Pgo+PiAgI2RlZmluZSBTS0xfUE9XRVJfV0VMTF9TVEFURShwdykgKDEgPDwgKChwdykg KiAyKSkKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBpbmRleCA5NzhiMWI5 Li4yMTM4NWEwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IEBA IC0xMzMyMyw2ICsxMzMyMyw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgdG9faW50ZWxfY3J0 Y19zdGF0ZShjcnRjLT5zdGF0ZSktPnVwZGF0ZV9waXBlOwo+PiAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgcHV0X2RvbWFpbnMgPSAwOwo+Pgo+PiArICAgICAgICAgICAgIGlmIChtb2Rlc2V0 KQo+PiArICAgICAgICAgICAgICAgICAgICAgaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3By aXYsIFBPV0VSX0RPTUFJTl9NT0RFU0VUKTsKPj4gKwo+PiAgICAgICAgICAgICAgIGlmIChtb2Rl c2V0ICYmIGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKPj4gICAgICAgICAgICAgICAgICAgICAgIHVw ZGF0ZV9zY2FubGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4+ICAgICAgICAgICAg ICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2VuYWJsZShjcnRjKTsKPj4gQEAgLTEz MzQ2LDYgKzEzMzQ5LDkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4+ICAgICAgICAgICAgICAgICAgICAgICBtb2Rlc2V0X3B1dF9wb3dl cl9kb21haW5zKGRldl9wcml2LCBwdXRfZG9tYWlucyk7Cj4+Cj4+ICAgICAgICAgICAgICAgaW50 ZWxfcG9zdF9wbGFuZV91cGRhdGUoaW50ZWxfY3J0Yyk7Cj4+ICsKPj4gKyAgICAgICAgICAgICBp ZiAobW9kZXNldCkKPj4gKyAgICAgICAgICAgICAgICAgICAgIGludGVsX2Rpc3BsYXlfcG93ZXJf cHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fTU9ERVNFVCk7Cj4+ICAgICAgIH0KPj4KPj4gICAg ICAgLyogRklYTUU6IGFkZCBzdWJwaXhlbCBvcmRlciAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcnVudGltZV9wbS5jCj4+IGluZGV4IGVkZjc1M2UuLmI2ZWU0OGUgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPj4gQEAgLTQ5LDkgKzQ5LDYgQEAK Pj4gICAqIHByZXNlbnQgZm9yIGEgZ2l2ZW4gcGxhdGZvcm0uCj4+ICAgKi8KPj4KPj4gLSNkZWZp bmUgR0VOOV9FTkFCTEVfREM1KGRldikgMAo+PiAtI2RlZmluZSBTS0xfRU5BQkxFX0RDNihkZXYp IElTX1NLWUxBS0UoZGV2KQo+PiAtCj4+ICAjZGVmaW5lIGZvcl9lYWNoX3Bvd2VyX3dlbGwoaSwg cG93ZXJfd2VsbCwgZG9tYWluX21hc2ssIHBvd2VyX2RvbWFpbnMpICAgICAgIFwKPj4gICAgICAg Zm9yIChpID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPj4gICAgICAgICAgICBpIDwgKHBvd2VyX2RvbWFpbnMpLT5wb3dlcl93ZWxsX2Nv dW50ICYmICAgICAgICAgICAgICAgICAgIFwKPj4gQEAgLTMwOSw5ICszMDYsMTUgQEAgc3RhdGlj IHZvaWQgaHN3X3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPj4gICNkZWZpbmUgU0tMX0RJU1BMQVlfRERJX0RfUE9XRVJfRE9NQUlOUyAoICAgICAgICAg ICAgXAo+PiAgICAgICBCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwgICAgICAg ICAgICBcCj4+ICAgICAgIEJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4+ICsjZGVmaW5lIFNLTF9E SVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5TICggICAgICAgICAgIFwKPj4gKyAgICAgU0tMX0RJ U1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUyB8ICAgICAgICAgXAo+PiArICAgICBCSVQo UE9XRVJfRE9NQUlOX01PREVTRVQpIHwgICAgICAgICAgICAgICAgICAgICBcCj4+ICsgICAgIEJJ VChQT1dFUl9ET01BSU5fQVVYX0EpIHwgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gKyAgICAg QklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPj4gICNkZWZpbmUgU0tMX0RJU1BMQVlfQUxXQVlTX09O X1BPV0VSX0RPTUFJTlMgKCAgICAgICAgICAgICAgICBcCj4+ICAgICAgIChQT1dFUl9ET01BSU5f TUFTSyAmIH4oICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gLSAgICAgU0tMX0RJU1BMQVlf UE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUykpIHwgICAgICAgXAo+PiArICAgICBTS0xfRElTUExB WV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TIHwgICAgICAgICBcCj4+ICsgICAgIFNLTF9ESVNQ TEFZX0RDX09GRl9QT1dFUl9ET01BSU5TKSkgfCAgICAgICAgICAgIFwKPj4gICAgICAgQklUKFBP V0VSX0RPTUFJTl9JTklUKSkKPj4KPj4gICNkZWZpbmUgQlhUX0RJU1BMQVlfUE9XRVJXRUxMXzJf UE9XRVJfRE9NQUlOUyAoICAgICAgICAgICAgICBcCj4+IEBAIC0zMzksNiArMzQyLDExIEBAIHN0 YXRpYyB2b2lkIGhzd19zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4+ICAgICAgIEJJVChQT1dFUl9ET01BSU5fQVVYX0EpIHwgICAgICAgICAgICAgICAg ICAgICAgIFwKPj4gICAgICAgQklUKFBPV0VSX0RPTUFJTl9QTExTKSB8ICAgICAgICAgICAgICAg ICAgICAgICAgXAo+PiAgICAgICBCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+PiArI2RlZmluZSBC WFRfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUyAoICAgICAgICAgICBcCj4+ICsgICAgIEJY VF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfCAgICAgICAgIFwKPj4gKyAgICAg QklUKFBPV0VSX0RPTUFJTl9NT0RFU0VUKSB8ICAgICAgICAgICAgICAgICAgICAgXAo+PiArICAg ICBCSVQoUE9XRVJfRE9NQUlOX0FVWF9BKSB8ICAgICAgICAgICAgICAgICAgICAgICBcCj4+ICsg ICAgIEJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4+ICAjZGVmaW5lIEJYVF9ESVNQTEFZX0FMV0FZ U19PTl9QT1dFUl9ET01BSU5TICggICAgICAgICAgICAgICAgXAo+PiAgICAgICAoUE9XRVJfRE9N QUlOX01BU0sgJiB+KEJYVF9ESVNQTEFZX1BPV0VSV0VMTF8xX1BPV0VSX0RPTUFJTlMgfCAgXAo+ PiAgICAgICBCWFRfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TKSkgfCAgICAgICBc Cj4+IEBAIC00ODYsMTUgKzQ5NCw2IEBAIHN0YXRpYyB2b2lkIGdlbjlfZW5hYmxlX2RjNShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgICAgIGdlbjlfc2V0X2RjX3N0YXRl KGRldl9wcml2LCBEQ19TVEFURV9FTl9VUFRPX0RDNSk7Cj4+ICB9Cj4+Cj4+IC1zdGF0aWMgdm9p ZCBnZW45X2Rpc2FibGVfZGM1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4g LXsKPj4gLSAgICAgYXNzZXJ0X2Nhbl9kaXNhYmxlX2RjNShkZXZfcHJpdik7Cj4+IC0KPj4gLSAg ICAgRFJNX0RFQlVHX0tNUygiRGlzYWJsaW5nIERDNVxuIik7Cj4+IC0KPj4gLSAgICAgZ2VuOV9z ZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOwo+PiAtfQo+PiAtCj4+ICBz dGF0aWMgdm9pZCBhc3NlcnRfY2FuX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+PiAgewo+PiAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3By aXYtPmRldjsKPj4gQEAgLTUyMiw2ICs1MjEsMTQgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9k aXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgICAgICAg ICAgICAgICAiREM2IGFscmVhZHkgcHJvZ3JhbW1lZCB0byBiZSBkaXNhYmxlZC5cbiIpOwo+PiAg fQo+Pgo+PiArc3RhdGljIHZvaWQgZ2VuOV9kaXNhYmxlX2RjNV9kYzYoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+PiArewo+PiArICAgICBhc3NlcnRfY2FuX2Rpc2FibGVfZGM1 KGRldl9wcml2KTsKPj4gKyAgICAgYXNzZXJ0X2Nhbl9kaXNhYmxlX2RjNihkZXZfcHJpdik7Cj4+ ICsKPj4gKyAgICAgZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUp Owo+PiArfQo+PiArCj4+ICB2b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPj4gIHsKPj4gICAgICAgYXNzZXJ0X2Nhbl9lbmFibGVfZGM2KGRldl9w cml2KTsKPj4gQEAgLTU4OSwxNyArNTk2LDEzIEBAIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93ZXJf d2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJJbnZhbGlkIGZvciBwb3dlciB3ZWxsIHN0YXR1cyB0byBiZSBlbmFi bGVkLCB1bmxlc3MgZG9uZSBieSB0aGUgQklPUywgXAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3aGVuIHJlcXVlc3QgaXMgdG8gZGlzYWJsZSFcbiIpOwo+PiAgICAgICAgICAgICAg ICAgICAgICAgaWYgKHBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikgewo+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoR0VOOV9FTkFCTEVfREM1KGRldikpCj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuOV9kaXNhYmxlX2RjNShkZXZf cHJpdik7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTS0xfRU5BQkxFX0RD NihkZXYpKSB7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKPj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBEREkgYnVmZmVyIHByb2dy YW1taW5nIHVubmVjZXNzYXJ5IGR1cmluZyBkcml2ZXItbG9hZC9yZXN1bWUKPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhcyBpdCdzIGFscmVhZHkgZG9uZSBkdXJp bmcgbW9kZXNldCBpbml0aWFsaXphdGlvbiB0aGVuLgo+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqIEl0J3MgYWxzbyBpbnZhbGlkIGhlcmUgYXMgZW5jb2RlciBsaXN0 IGlzIHN0aWxsIHVuaW5pdGlhbGl6ZWQuCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCFkZXZfcHJpdi0+cG93ZXJfZG9tYWlucy5pbml0aWFsaXppbmcpCj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9wcmVwYXJlX2RkaShkZXYpOwo+ PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIERESSBidWZm ZXIgcHJvZ3JhbW1pbmcgdW5uZWNlc3NhcnkgZHVyaW5nIGRyaXZlci1sb2FkL3Jlc3VtZQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhcyBpdCdzIGFscmVhZHkgZG9uZSBkdXJp bmcgbW9kZXNldCBpbml0aWFsaXphdGlvbiB0aGVuLgo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKiBJdCdzIGFsc28gaW52YWxpZCBoZXJlIGFzIGVuY29kZXIgbGlzdCBpcyBzdGls bCB1bmluaXRpYWxpemVkLgo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkZXZfcHJpdi0+cG93ZXJfZG9tYWlu cy5pbml0aWFsaXppbmcpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50ZWxfcHJlcGFyZV9kZGkoZGV2KTsKPj4gICAgICAgICAgICAgICAgICAgICAgIH0KPj4gICAg ICAgICAgICAgICAgICAgICAgIEk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0RSSVZFUiwgdG1wIHwg cmVxX21hc2spOwo+PiAgICAgICAgICAgICAgIH0KPj4gQEAgLTYxNywxMCArNjIwLDYgQEAgc3Rh dGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPj4gICAgICAgICAgICAgICAgICAgICAgIEk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0RS SVZFUiwgdG1wICYgfnJlcV9tYXNrKTsKPj4gICAgICAgICAgICAgICAgICAgICAgIFBPU1RJTkdf UkVBRChIU1dfUFdSX1dFTExfRFJJVkVSKTsKPj4gICAgICAgICAgICAgICAgICAgICAgIERSTV9E RUJVR19LTVMoIkRpc2FibGluZyAlc1xuIiwgcG93ZXJfd2VsbC0+bmFtZSk7Cj4+IC0KPj4gLSAg ICAgICAgICAgICAgICAgICAgIGlmIChHRU45X0VOQUJMRV9EQzUoZGV2KSAmJgo+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwb3dlcl93ZWxsLT5kYXRhID09IFNLTF9ESVNQX1BXXzIp Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuOV9lbmFibGVfZGM1 KGRldl9wcml2KTsKPj4gICAgICAgICAgICAgICB9Cj4+ICAgICAgIH0KPj4KPj4gQEAgLTY5NSw2 ICs2OTQsNDAgQEAgc3RhdGljIHZvaWQgc2tsX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgICAgIHNrbF9zZXRfcG93ZXJfd2VsbChkZXZf cHJpdiwgcG93ZXJfd2VsbCwgZmFsc2UpOwo+PiAgfQo+Pgo+PiArc3RhdGljIGJvb2wgZ2VuOV9k Y19vZmZfcG93ZXJfd2VsbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1 X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4+ICt7Cj4+ICsgICAgIHJldHVybiAoSTkxNV9SRUFE KERDX1NUQVRFX0VOKSAmIERDX1NUQVRFX0VOX1VQVE9fREM1X0RDNl9NQVNLKSA9PSAwOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4+ICt7 Cj4+ICsgICAgIGdlbjlfZGlzYWJsZV9kYzVfZGM2KGRldl9wcml2KTsKPj4gK30KPj4gKwo+PiAr c3RhdGljIHZvaWQgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4+ICt7Cj4+ICsgICAg IGlmIChJU19TS1lMQUtFKGRldl9wcml2KSkKPj4gKyAgICAgICAgICAgICBza2xfZW5hYmxlX2Rj NihkZXZfcHJpdik7Cj4+ICsgICAgIGVsc2UKPj4gKyAgICAgICAgICAgICBnZW45X2VuYWJsZV9k YzUoZGV2X3ByaXYpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9wb3dl cl93ZWxsX3N5bmNfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfcG93ZXJfd2Vs bCAqcG93ZXJfd2VsbCkKPj4gK3sKPj4gKyAgICAgaWYgKHBvd2VyX3dlbGwtPmNvdW50ID4gMCkg ewo+PiArICAgICAgICAgICAgIGdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9E SVNBQkxFKTsKPj4gKyAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAgICBpZiAoSVNfU0tZTEFL RShkZXZfcHJpdikpCj4+ICsgICAgICAgICAgICAgICAgICAgICBnZW45X3NldF9kY19zdGF0ZShk ZXZfcHJpdiwgRENfU1RBVEVfRU5fVVBUT19EQzYpOwo+PiArICAgICAgICAgICAgIGVsc2UKPj4g KyAgICAgICAgICAgICAgICAgICAgIGdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFU RV9FTl9VUFRPX0RDNSk7Cj4+ICsgICAgIH0KPj4gK30KPj4gKwo+PiAgc3RhdGljIHZvaWQgaTl4 eF9hbHdheXNfb25fcG93ZXJfd2VsbF9ub29wKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg aTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKQo+PiAgewo+PiBAQCAtMTUxNyw2ICsxNTUwLDEz IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX29wcyBza2xfcG93ZXJfd2Vs bF9vcHMgPSB7Cj4+ICAgICAgIC5pc19lbmFibGVkID0gc2tsX3Bvd2VyX3dlbGxfZW5hYmxlZCwK Pj4gIH07Cj4+Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgZ2Vu OV9kY19vZmZfcG93ZXJfd2VsbF9vcHMgPSB7Cj4+ICsgICAgIC5zeW5jX2h3ID0gZ2VuOV9kY19v ZmZfcG93ZXJfd2VsbF9zeW5jX2h3LAo+PiArICAgICAuZW5hYmxlID0gZ2VuOV9kY19vZmZfcG93 ZXJfd2VsbF9lbmFibGUsCj4+ICsgICAgIC5kaXNhYmxlID0gZ2VuOV9kY19vZmZfcG93ZXJfd2Vs bF9kaXNhYmxlLAo+PiArICAgICAuaXNfZW5hYmxlZCA9IGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxf ZW5hYmxlZCwKPj4gK307Cj4+ICsKPj4gIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsIGhz d19wb3dlcl93ZWxsc1tdID0gewo+PiAgICAgICB7Cj4+ICAgICAgICAgICAgICAgLm5hbWUgPSAi YWx3YXlzLW9uIiwKPj4gQEAgLTE2OTEsNiArMTczMSwxMiBAQCBzdGF0aWMgc3RydWN0IGk5MTVf cG93ZXJfd2VsbCBza2xfcG93ZXJfd2VsbHNbXSA9IHsKPj4gICAgICAgICAgICAgICAuZGF0YSA9 IFNLTF9ESVNQX1BXX01JU0NfSU8sCj4+ICAgICAgIH0sCj4+ICAgICAgIHsKPj4gKyAgICAgICAg ICAgICAubmFtZSA9ICJEQyBvZmYiLAo+PiArICAgICAgICAgICAgIC5kb21haW5zID0gU0tMX0RJ U1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMsCj4+ICsgICAgICAgICAgICAgLm9wcyA9ICZnZW45 X2RjX29mZl9wb3dlcl93ZWxsX29wcywKPj4gKyAgICAgICAgICAgICAuZGF0YSA9IFNLTF9ESVNQ X1BXX0RDX09GRiwKPj4gKyAgICAgfSwKPj4gKyAgICAgewo+PiAgICAgICAgICAgICAgIC5uYW1l ID0gInBvd2VyIHdlbGwgMiIsCj4+ICAgICAgICAgICAgICAgLmRvbWFpbnMgPSBTS0xfRElTUExB WV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TLAo+PiAgICAgICAgICAgICAgIC5vcHMgPSAmc2ts X3Bvd2VyX3dlbGxfb3BzLAo+PiBAQCAtMTc2OSw3ICsxODE1LDE0IEBAIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9wb3dlcl93ZWxsIGJ4dF9wb3dlcl93ZWxsc1tdID0gewo+PiAgICAgICAgICAgICAgIC5k b21haW5zID0gQlhUX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUywKPj4gICAgICAg ICAgICAgICAub3BzID0gJnNrbF9wb3dlcl93ZWxsX29wcywKPj4gICAgICAgICAgICAgICAuZGF0 YSA9IFNLTF9ESVNQX1BXXzIsCj4+IC0gICAgIH0KPj4gKyAgICAgfSwKPj4gKyAgICAgewo+PiAr ICAgICAgICAgICAgIC5uYW1lID0gIkRDIG9mZiIsCj4+ICsgICAgICAgICAgICAgLmRvbWFpbnMg PSBCWFRfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUywKPj4gKyAgICAgICAgICAgICAub3Bz ID0gJmdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfb3BzLAo+PiArICAgICAgICAgICAgIC5kYXRhID0g U0tMX0RJU1BfUFdfRENfT0ZGLAo+PiArICAgICB9LAo+PiArCj4KPiBZb3UgZm9yZ290IHRvIG1v dmUgdGhpcyBvbmUuIFdpdGggdGhhdCBmaXhlZCB0aGUgcGF0Y2ggbG9va3Mgb2sgYW5kIG15Cj4g Ui1iIGhvbGRzLgoKWWVhIHNvcnJ5IGFib3V0IHRoYXQuIFRoZXJlJ3MgYWxyZWFkeSBhIHY0IGF2 YWlsYWJsZS4KCj4KPj4gIH07Cj4+Cj4+ICAjZGVmaW5lIHNldF9wb3dlcl93ZWxscyhwb3dlcl9k b21haW5zLCBfX3Bvd2VyX3dlbGxzKSAoeyAgICAgICAgICAgICBcCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK