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: Wed, 11 Nov 2015 21:23:32 +0200 Message-ID: <1447269812.24928.40.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> 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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id BF5EE6EAD7 for ; Wed, 11 Nov 2015 11:23:36 -0800 (PST) In-Reply-To: <1447084107-8521-11-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gbWEsIDIwMTUtMTEtMDkgYXQgMTY6NDggKzAxMDAsIFBhdHJpayBKYWtvYnNzb24gd3JvdGU6 Cj4gSGFuZGxlIERDIG9mZiBhcyBhIHBvd2VyIHdlbGwgd2hlcmUgZW5hYmxpbmcgdGhlIHBvd2Vy IHdlbGwgd2lsbAo+IHByZXZlbnQKPiB0aGUgRE1DIHRvIGVudGVyIHNlbGVjdGVkIERDIHN0YXRl cyAocmVxdWlyZWQgYXJvdW5kIG1vZGVzZXRzIGFuZCBBdXgKPiBBKS4gRGlzYWJsaW5nIHRoZSBw b3dlciB3ZWxsIHdpbGwgYWxsb3cgREMgc3RhdGVzIGFnYWluLiBGb3Igbm93IHRoZQo+IGhpZ2hl c3QgREMgc3RhdGUgaXMgREM2IGZvciBTa3lsYWtlIGFuZCBEQzUgZm9yIEJyb3h0b24gYnV0IHdp bGwgYmUKPiBjb25maWd1cmFibGUgZm9yIFNreWxha2UgaW4gYSBsYXRlciBwYXRjaC4KPiAKPiB2 MjogQ2hlY2sgYm90aCBEQzUgYW5kIERDNiBiaXRzIGluIHBvd2VyIHdlbGwgZW5hYmxlZCBmdW5j dGlvbgo+IChWaWxsZSkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXRyaWsgSmFrb2Jzc29uIDxwYXRy aWsuamFrb2Jzc29uQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgICA2IC0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyAgICB8ICAgNiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMgfCAxMTAKPiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICA0IGZpbGVz IGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggNWE2M2Y5YS4uMGM3ZjQzNSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwo+IEBAIC0xMDcyLDkgKzEwNzIsNiBAQCBzdGF0aWMgaW50IGk5MTVfcG1f cmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgCj4gIHN0YXRpYyBpbnQgc2tsX3N1c3BlbmRf Y29tcGxldGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlpZiAo ZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9hZCkKPiAtCQlza2xfZW5hYmxlX2RjNihkZXZfcHJpdik7 Cj4gLQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTExMTksOSArMTExNiw2IEBAIHN0YXRp YyBpbnQgYnh0X3Jlc3VtZV9wcmVwYXJlKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAKPiAgc3RhdGljIGludCBza2xfcmVzdW1lX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlpZiAoZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9h ZCkKPiAtCQlza2xfZGlzYWJsZV9kYzYoZGV2X3ByaXYpOwo+IC0KPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggMzFiM2E4NC4uZGY0NDViYSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC02MzYsNiArNjM2LDcgQEAgZW51bSBz a2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gIAo+ICAJLyogTm90IGFjdHVhbCBiaXQgZ3JvdXBzLiBV c2VkIGFzIElEcyBmb3IKPiBsb29rdXBfcG93ZXJfd2VsbCgpICovCj4gIAlTS0xfRElTUF9QV19B TFdBWVNfT04sCj4gKwlTS0xfRElTUF9QV19EQ19PRkYsCj4gIH07Cj4gIAo+ICAjZGVmaW5lIFNL TF9QT1dFUl9XRUxMX1NUQVRFKHB3KSAoMSA8PCAoKHB3KSAqIDIpKQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDY0OWFjMzQuLjg1NmQ4MDEgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTEzMzIwLDYgKzEzMzIwLDkgQEAgc3Rh dGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdAo+IGRybV9kZXZpY2UgKmRldiwKPiAg CQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSkKPiAtPnVwZGF0ZV9waXBlOwo+ICAJ CXVuc2lnbmVkIGxvbmcgcHV0X2RvbWFpbnMgPSAwOwo+ICAKPiArCQlpZiAobW9kZXNldCkKPiAr CQkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsCj4gUE9XRVJfRE9NQUlOX01PREVT RVQpOwo+ICsKPiAgCQlpZiAobW9kZXNldCAmJiBjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7Cj4gIAkJ CXVwZGF0ZV9zY2FubGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4gIAkJCWRldl9w cml2LT5kaXNwbGF5LmNydGNfZW5hYmxlKGNydGMpOwo+IEBAIC0xMzM0Myw2ICsxMzM0Niw5IEBA IHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QKPiBkcm1fZGV2aWNlICpkZXYs Cj4gIAkJCW1vZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoZGV2X3ByaXYsCj4gcHV0X2RvbWFpbnMp Owo+ICAKPiAgCQlpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShpbnRlbF9jcnRjKTsKPiArCj4gKwkJ aWYgKG1vZGVzZXQpCj4gKwkJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LAo+IFBP V0VSX0RPTUFJTl9NT0RFU0VUKTsKPiAgCX0KPiAgCj4gIAkvKiBGSVhNRTogYWRkIHN1YnBpeGVs IG9yZGVyICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRp bWVfcG0uYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gaW5k ZXggZWRmNzUzZS4uOTVjM2ZjYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ydW50aW1lX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMKPiBAQCAtNDksOSArNDksNiBAQAo+ICAgKiBwcmVzZW50IGZvciBhIGdpdmVuIHBs YXRmb3JtLgo+ICAgKi8KPiAgCj4gLSNkZWZpbmUgR0VOOV9FTkFCTEVfREM1KGRldikgMAo+IC0j ZGVmaW5lIFNLTF9FTkFCTEVfREM2KGRldikgSVNfU0tZTEFLRShkZXYpCj4gLQo+ICAjZGVmaW5l IGZvcl9lYWNoX3Bvd2VyX3dlbGwoaSwgcG93ZXJfd2VsbCwgZG9tYWluX21hc2ssCj4gcG93ZXJf ZG9tYWlucykJXAo+ICAJZm9yIChpID0gMDsJCQkJCQkJCj4gXAo+ICAJICAgICBpIDwgKHBvd2Vy X2RvbWFpbnMpLT5wb3dlcl93ZWxsX2NvdW50ICYmCQkKPiAJXAo+IEBAIC0zMDksOSArMzA2LDE0 IEBAIHN0YXRpYyB2b2lkIGhzd19zZXRfcG93ZXJfd2VsbChzdHJ1Y3QKPiBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgI2RlZmluZSBTS0xfRElTUExBWV9ERElfRF9QT1dFUl9ET01BSU5T ICgJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykgfAkJXAo+ICAJQklU KFBPV0VSX0RPTUFJTl9JTklUKSkKPiArI2RlZmluZSBTS0xfRElTUExBWV9EQ19PRkZfUE9XRVJf RE9NQUlOUyAoCQlcCj4gKwlCSVQoUE9XRVJfRE9NQUlOX01PREVTRVQpIHwJCQlcCj4gKwlCSVQo UE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+ICsJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiAg I2RlZmluZSBTS0xfRElTUExBWV9BTFdBWVNfT05fUE9XRVJfRE9NQUlOUyAoCQlcCj4gIAkoUE9X RVJfRE9NQUlOX01BU0sgJiB+KAkJCQlcCj4gLQlTS0xfRElTUExBWV9QT1dFUldFTExfMl9QT1dF Ul9ET01BSU5TKSkgfAlcCj4gKwlTS0xfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5T IHwJCVwKPiArCVNLTF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5TKSkgfAkJXAo+ICAJQklU KFBPV0VSX0RPTUFJTl9JTklUKSkKPiAgCj4gICNkZWZpbmUgQlhUX0RJU1BMQVlfUE9XRVJXRUxM XzJfUE9XRVJfRE9NQUlOUyAoCQlcCj4gQEAgLTMzOSw2ICszNDEsMTAgQEAgc3RhdGljIHZvaWQg aHN3X3NldF9wb3dlcl93ZWxsKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJQklUKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUExM UykgfAkJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKyNkZWZpbmUgQlhUX0RJU1BM QVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQklUKFBPV0VSX0RPTUFJTl9NT0RFU0VU KSB8CQkJXAo+ICsJQklUKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKPiArCUJJVChQT1dFUl9E T01BSU5fSU5JVCkpCj4gICNkZWZpbmUgQlhUX0RJU1BMQVlfQUxXQVlTX09OX1BPV0VSX0RPTUFJ TlMgKAkJXAo+ICAJKFBPV0VSX0RPTUFJTl9NQVNLICYgfihCWFRfRElTUExBWV9QT1dFUldFTExf MV9QT1dFUl9ET01BSU5TCj4gfAlcCj4gIAlCWFRfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9E T01BSU5TKSkgfAlcCj4gQEAgLTQ4NiwxNSArNDkyLDYgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFi bGVfZGM1KHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJZ2VuOV9zZXRf ZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0VOX1VQVE9fREM1KTsKPiAgfQo+ICAKPiAtc3Rh dGljIHZvaWQgZ2VuOV9kaXNhYmxlX2RjNShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gLXsKPiAtCWFzc2VydF9jYW5fZGlzYWJsZV9kYzUoZGV2X3ByaXYpOwo+IC0KPiAtCURS TV9ERUJVR19LTVMoIkRpc2FibGluZyBEQzVcbiIpOwo+IC0KPiAtCWdlbjlfc2V0X2RjX3N0YXRl KGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgYXNz ZXJ0X2Nhbl9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg ewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gQEAgLTUyMiw2 ICs1MTksMTQgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9kaXNhYmxlX2RjNihzdHJ1Y3QKPiBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQkgICJEQzYgYWxyZWFkeSBwcm9ncmFtbWVk IHRvIGJlIGRpc2FibGVkLlxuIik7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGdlbjlfZGlzYWJs ZV9kYzVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJYXNz ZXJ0X2Nhbl9kaXNhYmxlX2RjNShkZXZfcHJpdik7Cj4gKwlhc3NlcnRfY2FuX2Rpc2FibGVfZGM2 KGRldl9wcml2KTsKPiArCj4gKwlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVf RElTQUJMRSk7Cj4gK30KPiArCj4gIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAlhc3NlcnRfY2FuX2VuYWJsZV9kYzYoZGV2X3By aXYpOwo+IEBAIC01NzEsNiArNTc2LDcgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxs KHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJY2FzZSBTS0xfRElTUF9Q V19ERElfQzoKPiAgCWNhc2UgU0tMX0RJU1BfUFdfRERJX0Q6Cj4gIAljYXNlIFNLTF9ESVNQX1BX X01JU0NfSU86Cj4gKwljYXNlIFNLTF9ESVNQX1BXX0RDX09GRjoKCldoeSBpcyB0aGlzIG5lZWRl ZD8gSSB0aGluayB0aGlzIGZ1bmN0aW9uIHdvbid0IGJlIGNhbGxlZCBmb3IgREM1LzYuCgo+ICAJ CWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAgCQlXQVJOKDEsICJVbmtub3duIHBvd2VyIHdlbGwgJWx1 XG4iLCBwb3dlcl93ZWxsCj4gLT5kYXRhKTsKPiBAQCAtNTg5LDE3ICs1OTUsMTMgQEAgc3RhdGlj IHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAJCQkJIkludmFsaWQgZm9yIHBvd2VyIHdlbGwgc3RhdHVzIHRvIGJlCj4gZW5hYmxl ZCwgdW5sZXNzIGRvbmUgYnkgdGhlIEJJT1MsIFwKPiAgCQkJCXdoZW4gcmVxdWVzdCBpcyB0byBk aXNhYmxlIVxuIik7Cj4gIAkJCWlmIChwb3dlcl93ZWxsLT5kYXRhID09IFNLTF9ESVNQX1BXXzIp IHsKPiAtCQkJCWlmIChHRU45X0VOQUJMRV9EQzUoZGV2KSkKPiAtCQkJCQlnZW45X2Rpc2FibGVf ZGM1KGRldl9wcml2KTsKPiAtCQkJCWlmIChTS0xfRU5BQkxFX0RDNihkZXYpKSB7Cj4gLQkJCQkJ LyoKPiAtCQkJCQkgKiBEREkgYnVmZmVyIHByb2dyYW1taW5nCj4gdW5uZWNlc3NhcnkgZHVyaW5n IGRyaXZlci1sb2FkL3Jlc3VtZQo+IC0JCQkJCSAqIGFzIGl0J3MgYWxyZWFkeSBkb25lCj4gZHVy aW5nIG1vZGVzZXQgaW5pdGlhbGl6YXRpb24gdGhlbi4KPiAtCQkJCQkgKiBJdCdzIGFsc28gaW52 YWxpZCBoZXJlIGFzCj4gZW5jb2RlciBsaXN0IGlzIHN0aWxsIHVuaW5pdGlhbGl6ZWQuCj4gLQkJ CQkJICovCj4gLQkJCQkJaWYgKCFkZXZfcHJpdgo+IC0+cG93ZXJfZG9tYWlucy5pbml0aWFsaXpp bmcpCj4gLQkJCQkJCWludGVsX3ByZXBhcmVfZGRpKGRlCj4gdik7Cj4gLQkJCQl9Cj4gKwkJCQkv Kgo+ICsJCQkJICogRERJIGJ1ZmZlciBwcm9ncmFtbWluZwo+IHVubmVjZXNzYXJ5IGR1cmluZyBk cml2ZXItbG9hZC9yZXN1bWUKPiArCQkJCSAqIGFzIGl0J3MgYWxyZWFkeSBkb25lIGR1cmluZwo+ IG1vZGVzZXQgaW5pdGlhbGl6YXRpb24gdGhlbi4KPiArCQkJCSAqIEl0J3MgYWxzbyBpbnZhbGlk IGhlcmUgYXMgZW5jb2Rlcgo+IGxpc3QgaXMgc3RpbGwgdW5pbml0aWFsaXplZC4KPiArCQkJCSAq Lwo+ICsJCQkJaWYgKCFkZXZfcHJpdgo+IC0+cG93ZXJfZG9tYWlucy5pbml0aWFsaXppbmcpCj4g KwkJCQkJaW50ZWxfcHJlcGFyZV9kZGkoZGV2KTsKPiAgCQkJfQo+ICAJCQlJOTE1X1dSSVRFKEhT V19QV1JfV0VMTF9EUklWRVIsIHRtcCB8Cj4gcmVxX21hc2spOwo+ICAJCX0KPiBAQCAtNjE3LDEw ICs2MTksNiBAQCBzdGF0aWMgdm9pZCBza2xfc2V0X3Bvd2VyX3dlbGwoc3RydWN0Cj4gZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0RSSVZF UiwJdG1wICYKPiB+cmVxX21hc2spOwo+ICAJCQlQT1NUSU5HX1JFQUQoSFNXX1BXUl9XRUxMX0RS SVZFUik7Cj4gIAkJCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyAlc1xuIiwgcG93ZXJfd2VsbAo+ IC0+bmFtZSk7Cj4gLQo+IC0JCQlpZiAoR0VOOV9FTkFCTEVfREM1KGRldikgJiYKPiAtCQkJCXBv d2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikKPiAtCQkJCQlnZW45X2VuYWJsZV9kYzUo ZGV2X3ByaXYpOwo+ICAJCX0KPiAgCX0KPiAgCj4gQEAgLTY5NSw2ICs2OTMsNDAgQEAgc3RhdGlj IHZvaWQgc2tsX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCXNrbF9zZXRfcG93ZXJfd2VsbChkZXZfcHJpdiwgcG93ZXJfd2VsbCwgZmFs c2UpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJs ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYsCj4gKwkJCQkJICBzdHJ1Y3Qg aTkxNV9wb3dlcl93ZWxsCj4gKnBvd2VyX3dlbGwpCj4gK3sKPiArCXJldHVybiAoSTkxNV9SRUFE KERDX1NUQVRFX0VOKSAmCj4gRENfU1RBVEVfRU5fVVBUT19EQzVfREM2X01BU0spID09IDA7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZW5hYmxlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+ICsJCQkJCSBzdHJ1Y3QgaTkxNV9wb3dl cl93ZWxsCj4gKnBvd2VyX3dlbGwpCj4gK3sKPiArCWdlbjlfZGlzYWJsZV9kYzVfZGM2KGRldl9w cml2KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9kaXNh YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LAo+ICsJCQkJCSAgc3RydWN0 IGk5MTVfcG93ZXJfd2VsbAo+ICpwb3dlcl93ZWxsKQo+ICt7Cj4gKwlpZiAoSVNfU0tZTEFLRShk ZXZfcHJpdikpCj4gKwkJc2tsX2VuYWJsZV9kYzYoZGV2X3ByaXYpOwo+ICsJZWxzZQo+ICsJCWdl bjlfZW5hYmxlX2RjNShkZXZfcHJpdik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGdlbjlfZGNf b2ZmX3Bvd2VyX3dlbGxfc3luY19odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJp diwKPiArCQkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwKPiAqcG93ZXJfd2VsbCkKPiArewo+ ICsJaWYgKHBvd2VyX3dlbGwtPmNvdW50ID4gMCkgewo+ICsJCWdlbjlfc2V0X2RjX3N0YXRlKGRl dl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiArCX0gZWxzZSB7Cj4gKwkJaWYgKElTX1NLWUxB S0UoZGV2X3ByaXYpKQo+ICsJCQlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwKPiBEQ19TVEFU RV9FTl9VUFRPX0RDNik7Cj4gKwkJZWxzZQo+ICsJCQlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJp diwKPiBEQ19TVEFURV9FTl9VUFRPX0RDNSk7Cj4gKwl9Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lk IGk5eHhfYWx3YXlzX29uX3Bvd2VyX3dlbGxfbm9vcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ ICpkZXZfcHJpdiwKPiAgCQkJCQkgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsCj4gKnBvd2VyX3dl bGwpCj4gIHsKPiBAQCAtMTUxNyw2ICsxNTQ5LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9wb3dlcl93ZWxsX29wcwo+IHNrbF9wb3dlcl93ZWxsX29wcyA9IHsKPiAgCS5pc19lbmFibGVk ID0gc2tsX3Bvd2VyX3dlbGxfZW5hYmxlZCwKPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9wb3dlcl93ZWxsX29wcyBnZW45X2RjX29mZl9wb3dlcl93ZWxsX29wcyA9Cj4gewo+ ICsJLnN5bmNfaHcgPSBnZW45X2RjX29mZl9wb3dlcl93ZWxsX3N5bmNfaHcsCj4gKwkuZW5hYmxl ID0gZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGUsCj4gKwkuZGlzYWJsZSA9IGdlbjlfZGNf b2ZmX3Bvd2VyX3dlbGxfZGlzYWJsZSwKPiArCS5pc19lbmFibGVkID0gZ2VuOV9kY19vZmZfcG93 ZXJfd2VsbF9lbmFibGVkLAo+ICt9Owo+ICsKPiAgc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dl bGwgaHN3X3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAl7Cj4gIAkJLm5hbWUgPSAiYWx3YXlzLW9uIiwK PiBAQCAtMTY5Nyw2ICsxNzM2LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsCj4g c2tsX3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAkJLmRhdGEgPSBTS0xfRElTUF9QV18yLAo+ICAJfSwK PiAgCXsKPiArCQkubmFtZSA9ICJEQyBvZmYiLAo+ICsJCS5kb21haW5zID0gU0tMX0RJU1BMQVlf RENfT0ZGX1BPV0VSX0RPTUFJTlMsCj4gKwkJLm9wcyA9ICZnZW45X2RjX29mZl9wb3dlcl93ZWxs X29wcywKPiArCQkuZGF0YSA9IFNLTF9ESVNQX1BXX0RDX09GRiwKPiArCX0sCj4gKwl7Cj4gIAkJ Lm5hbWUgPSAiRERJIEEvRSBwb3dlciB3ZWxsIiwKPiAgCQkuZG9tYWlucyA9IFNLTF9ESVNQTEFZ X0RESV9BX0VfUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJnNrbF9wb3dlcl93ZWxsX29wcywK PiBAQCAtMTc2OSw3ICsxODE0LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsCj4g Ynh0X3Bvd2VyX3dlbGxzW10gPSB7Cj4gIAkJLmRvbWFpbnMgPSBCWFRfRElTUExBWV9QT1dFUldF TExfMl9QT1dFUl9ET01BSU5TLAo+ICAJCS5vcHMgPSAmc2tsX3Bvd2VyX3dlbGxfb3BzLAo+ICAJ CS5kYXRhID0gU0tMX0RJU1BfUFdfMiwKPiAtCX0KPiArCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAi REMgb2ZmIiwKPiArCQkuZG9tYWlucyA9IEJYVF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5T LAo+ICsJCS5vcHMgPSAmZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9vcHMsCj4gKwkJLmRhdGEgPSBT S0xfRElTUF9QV19EQ19PRkYsCj4gKwl9LAo+ICsKPiAgfTsKPiAgCj4gICNkZWZpbmUgc2V0X3Bv d2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIF9fcG93ZXJfd2VsbHMpICh7CQkKPiBcCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==