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 15:41:19 +0100 Message-ID: <20151116144119.GA24118@patrik-desktop.isw.intel.com> References: <1447084107-8521-11-git-send-email-patrik.jakobsson@linux.intel.com> <1447682467-6237-4-git-send-email-patrik.jakobsson@linux.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 6B12F6E0DD for ; Mon, 16 Nov 2015 06:41:20 -0800 (PST) Content-Disposition: inline In-Reply-To: <1447682467-6237-4-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBOb3YgMTYsIDIwMTUgYXQgMDM6MDE6MDdQTSArMDEwMCwgUGF0cmlrIEpha29ic3Nv biB3cm90ZToKPiBIYW5kbGUgREMgb2ZmIGFzIGEgcG93ZXIgd2VsbCB3aGVyZSBlbmFibGluZyB0 aGUgcG93ZXIgd2VsbCB3aWxsIHByZXZlbnQKPiB0aGUgRE1DIHRvIGVudGVyIHNlbGVjdGVkIERD IHN0YXRlcyAocmVxdWlyZWQgYXJvdW5kIG1vZGVzZXRzIGFuZCBBdXgKPiBBKS4gRGlzYWJsaW5n IHRoZSBwb3dlciB3ZWxsIHdpbGwgYWxsb3cgREMgc3RhdGVzIGFnYWluLiBGb3Igbm93IHRoZQo+ IGhpZ2hlc3QgREMgc3RhdGUgaXMgREM2IGZvciBTa3lsYWtlIGFuZCBEQzUgZm9yIEJyb3h0b24g YnV0IHdpbGwgYmUKPiBjb25maWd1cmFibGUgZm9yIFNreWxha2UgaW4gYSBsYXRlciBwYXRjaC4K PiAKPiB2MjogQ2hlY2sgYm90aCBEQzUgYW5kIERDNiBiaXRzIGluIHBvd2VyIHdlbGwgZW5hYmxl ZCBmdW5jdGlvbiAoVmlsbGUpCj4gdjM6Cj4gLSBSZW1vdmUgdW5uZWVkZWQgRENfT0ZGIGNhc2Ug aW4gc2tsX3NldF9wb3dlcl93ZWxsKCkgKEltcmUpCj4gLSBBZGQgUFcyIGRlcGVuZGVuY3kgdG8g RENfT0ZGIChJbXJlKQo+IAo+IFNpZ25lZC1vZmYtYnk6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJp ay5qYWtvYnNzb25AbGludXguaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBJbXJlIERlYWsgPGlt cmUuZGVha0BpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMgICAgICAgICB8ICAgNiAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAg ICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAg fCAgIDYgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTEx ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgODkg aW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j Cj4gaW5kZXggNWE2M2Y5YS4uMGM3ZjQzNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ IEBAIC0xMDcyLDkgKzEwNzIsNiBAQCBzdGF0aWMgaW50IGk5MTVfcG1fcmVzdW1lKHN0cnVjdCBk ZXZpY2UgKmRldikKPiAgCj4gIHN0YXRpYyBpbnQgc2tsX3N1c3BlbmRfY29tcGxldGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlpZiAoZGV2X3ByaXYtPmNzci5k bWNfcGF5bG9hZCkKPiAtCQlza2xfZW5hYmxlX2RjNihkZXZfcHJpdik7Cj4gLQo+ICAJcmV0dXJu IDA7Cj4gIH0KPiAgCj4gQEAgLTExMTksOSArMTExNiw2IEBAIHN0YXRpYyBpbnQgYnh0X3Jlc3Vt ZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCj4gIHN0YXRp YyBpbnQgc2tsX3Jlc3VtZV9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgewo+IC0JaWYgKGRldl9wcml2LT5jc3IuZG1jX3BheWxvYWQpCj4gLQkJc2tsX2Rpc2Fi bGVfZGM2KGRldl9wcml2KTsKPiAtCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiBpbmRleCAwZjM4NDlmLi5iNmEzNTI1IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4gQEAgLTYzOCw2ICs2MzgsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxz IHsKPiAgCj4gIAkvKiBOb3QgYWN0dWFsIGJpdCBncm91cHMuIFVzZWQgYXMgSURzIGZvciBsb29r dXBfcG93ZXJfd2VsbCgpICovCj4gIAlTS0xfRElTUF9QV19BTFdBWVNfT04sCj4gKwlTS0xfRElT UF9QV19EQ19PRkYsCj4gIH07Cj4gIAo+ICAjZGVmaW5lIFNLTF9QT1dFUl9XRUxMX1NUQVRFKHB3 KSAoMSA8PCAoKHB3KSAqIDIpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBp bmRleCA5NzhiMWI5Li4yMTM4NWEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IEBAIC0xMzMyMyw2ICsxMzMyMyw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2Nv bW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGMtPnN0YXRlKS0+dXBkYXRlX3BpcGU7Cj4gIAkJdW5zaWduZWQgbG9uZyBwdXRfZG9tYWlucyA9 IDA7Cj4gIAo+ICsJCWlmIChtb2Rlc2V0KQo+ICsJCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChk ZXZfcHJpdiwgUE9XRVJfRE9NQUlOX01PREVTRVQpOwo+ICsKPiAgCQlpZiAobW9kZXNldCAmJiBj cnRjLT5zdGF0ZS0+YWN0aXZlKSB7Cj4gIAkJCXVwZGF0ZV9zY2FubGluZV9vZmZzZXQodG9faW50 ZWxfY3J0YyhjcnRjKSk7Cj4gIAkJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlKGNydGMp Owo+IEBAIC0xMzM0Niw2ICsxMzM0OSw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQltb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5z KGRldl9wcml2LCBwdXRfZG9tYWlucyk7Cj4gIAo+ICAJCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRl KGludGVsX2NydGMpOwo+ICsKPiArCQlpZiAobW9kZXNldCkKPiArCQkJaW50ZWxfZGlzcGxheV9w b3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9NT0RFU0VUKTsKPiAgCX0KPiAgCj4gIAkv KiBGSVhNRTogYWRkIHN1YnBpeGVsIG9yZGVyICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3J1bnRpbWVfcG0uYwo+IGluZGV4IGVkZjc1M2UuLmI2ZWU0OGUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gQEAgLTQ5LDkgKzQ5LDYgQEAKPiAgICogcHJl c2VudCBmb3IgYSBnaXZlbiBwbGF0Zm9ybS4KPiAgICovCj4gIAo+IC0jZGVmaW5lIEdFTjlfRU5B QkxFX0RDNShkZXYpIDAKPiAtI2RlZmluZSBTS0xfRU5BQkxFX0RDNihkZXYpIElTX1NLWUxBS0Uo ZGV2KQo+IC0KPiAgI2RlZmluZSBmb3JfZWFjaF9wb3dlcl93ZWxsKGksIHBvd2VyX3dlbGwsIGRv bWFpbl9tYXNrLCBwb3dlcl9kb21haW5zKQlcCj4gIAlmb3IgKGkgPSAwOwkJCQkJCQlcCj4gIAkg ICAgIGkgPCAocG93ZXJfZG9tYWlucyktPnBvd2VyX3dlbGxfY291bnQgJiYJCQlcCj4gQEAgLTMw OSw5ICszMDYsMTUgQEAgc3RhdGljIHZvaWQgaHN3X3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgI2RlZmluZSBTS0xfRElTUExBWV9ERElfRF9QT1dF Ul9ET01BSU5TICgJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykgfAkJ XAo+ICAJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKPiArI2RlZmluZSBTS0xfRElTUExBWV9EQ19P RkZfUE9XRVJfRE9NQUlOUyAoCQlcCj4gKwlTS0xfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9E T01BSU5TIHwJCVwKPiArCUJJVChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKPiArCUJJVChQ T1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCj4gKwlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ICAj ZGVmaW5lIFNLTF9ESVNQTEFZX0FMV0FZU19PTl9QT1dFUl9ET01BSU5TICgJCVwKPiAgCShQT1dF Ul9ET01BSU5fTUFTSyAmIH4oCQkJCVwKPiAtCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VS X0RPTUFJTlMpKSB8CVwKPiArCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMg fAkJXAo+ICsJU0tMX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMpKSB8CQlcCj4gIAlCSVQo UE9XRVJfRE9NQUlOX0lOSVQpKQo+ICAKPiAgI2RlZmluZSBCWFRfRElTUExBWV9QT1dFUldFTExf Ml9QT1dFUl9ET01BSU5TICgJCVwKPiBAQCAtMzM5LDYgKzM0MiwxMSBAQCBzdGF0aWMgdm9pZCBo c3dfc2V0X3Bvd2VyX3dlbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ QklUKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUExMUykg fAkJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gKyNkZWZpbmUgQlhUX0RJU1BMQVlf RENfT0ZGX1BPV0VSX0RPTUFJTlMgKAkJXAo+ICsJQlhUX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9X RVJfRE9NQUlOUyB8CQlcCj4gKwlCSVQoUE9XRVJfRE9NQUlOX01PREVTRVQpIHwJCQlcCj4gKwlC SVQoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+ICsJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkK PiAgI2RlZmluZSBCWFRfRElTUExBWV9BTFdBWVNfT05fUE9XRVJfRE9NQUlOUyAoCQlcCj4gIAko UE9XRVJfRE9NQUlOX01BU0sgJiB+KEJYVF9ESVNQTEFZX1BPV0VSV0VMTF8xX1BPV0VSX0RPTUFJ TlMgfAlcCj4gIAlCWFRfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TKSkgfAlcCj4g QEAgLTQ4NiwxNSArNDk0LDYgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFibGVfZGM1KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2 LCBEQ19TVEFURV9FTl9VUFRPX0RDNSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGdlbjlfZGlz YWJsZV9kYzUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IC17Cj4gLQlhc3Nl cnRfY2FuX2Rpc2FibGVfZGM1KGRldl9wcml2KTsKPiAtCj4gLQlEUk1fREVCVUdfS01TKCJEaXNh YmxpbmcgREM1XG4iKTsKPiAtCj4gLQlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RB VEVfRElTQUJMRSk7Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIGFzc2VydF9jYW5fZW5hYmxlX2Rj NihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+IEBAIC01MjIsNiArNTIxLDE0IEBAIHN0YXRp YyB2b2lkIGFzc2VydF9jYW5fZGlzYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICAJCSAgIkRDNiBhbHJlYWR5IHByb2dyYW1tZWQgdG8gYmUgZGlzYWJsZWQuXG4i KTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgZ2VuOV9kaXNhYmxlX2RjNV9kYzYoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlhc3NlcnRfY2FuX2Rpc2FibGVfZGM1 KGRldl9wcml2KTsKPiArCWFzc2VydF9jYW5fZGlzYWJsZV9kYzYoZGV2X3ByaXYpOwo+ICsKPiAr CWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiArfQo+ICsK PiAgdm9pZCBza2xfZW5hYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gIHsKPiAgCWFzc2VydF9jYW5fZW5hYmxlX2RjNihkZXZfcHJpdik7Cj4gQEAgLTU4OSwxNyAr NTk2LDEzIEBAIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkiSW52YWxpZCBmb3IgcG93ZXIgd2VsbCBzdGF0dXMg dG8gYmUgZW5hYmxlZCwgdW5sZXNzIGRvbmUgYnkgdGhlIEJJT1MsIFwKPiAgCQkJCXdoZW4gcmVx dWVzdCBpcyB0byBkaXNhYmxlIVxuIik7Cj4gIAkJCWlmIChwb3dlcl93ZWxsLT5kYXRhID09IFNL TF9ESVNQX1BXXzIpIHsKPiAtCQkJCWlmIChHRU45X0VOQUJMRV9EQzUoZGV2KSkKPiAtCQkJCQln ZW45X2Rpc2FibGVfZGM1KGRldl9wcml2KTsKPiAtCQkJCWlmIChTS0xfRU5BQkxFX0RDNihkZXYp KSB7Cj4gLQkJCQkJLyoKPiAtCQkJCQkgKiBEREkgYnVmZmVyIHByb2dyYW1taW5nIHVubmVjZXNz YXJ5IGR1cmluZyBkcml2ZXItbG9hZC9yZXN1bWUKPiAtCQkJCQkgKiBhcyBpdCdzIGFscmVhZHkg ZG9uZSBkdXJpbmcgbW9kZXNldCBpbml0aWFsaXphdGlvbiB0aGVuLgo+IC0JCQkJCSAqIEl0J3Mg YWxzbyBpbnZhbGlkIGhlcmUgYXMgZW5jb2RlciBsaXN0IGlzIHN0aWxsIHVuaW5pdGlhbGl6ZWQu Cj4gLQkJCQkJICovCj4gLQkJCQkJaWYgKCFkZXZfcHJpdi0+cG93ZXJfZG9tYWlucy5pbml0aWFs aXppbmcpCj4gLQkJCQkJCWludGVsX3ByZXBhcmVfZGRpKGRldik7Cj4gLQkJCQl9Cj4gKwkJCQkv Kgo+ICsJCQkJICogRERJIGJ1ZmZlciBwcm9ncmFtbWluZyB1bm5lY2Vzc2FyeSBkdXJpbmcgZHJp dmVyLWxvYWQvcmVzdW1lCj4gKwkJCQkgKiBhcyBpdCdzIGFscmVhZHkgZG9uZSBkdXJpbmcgbW9k ZXNldCBpbml0aWFsaXphdGlvbiB0aGVuLgo+ICsJCQkJICogSXQncyBhbHNvIGludmFsaWQgaGVy ZSBhcyBlbmNvZGVyIGxpc3QgaXMgc3RpbGwgdW5pbml0aWFsaXplZC4KPiArCQkJCSAqLwo+ICsJ CQkJaWYgKCFkZXZfcHJpdi0+cG93ZXJfZG9tYWlucy5pbml0aWFsaXppbmcpCj4gKwkJCQkJaW50 ZWxfcHJlcGFyZV9kZGkoZGV2KTsKPiAgCQkJfQo+ICAJCQlJOTE1X1dSSVRFKEhTV19QV1JfV0VM TF9EUklWRVIsIHRtcCB8IHJlcV9tYXNrKTsKPiAgCQl9Cj4gQEAgLTYxNywxMCArNjIwLDYgQEAg c3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQkJSTkxNV9XUklURShIU1dfUFdSX1dFTExfRFJJVkVSLAl0bXAgJiB+cmVx X21hc2spOwo+ICAJCQlQT1NUSU5HX1JFQUQoSFNXX1BXUl9XRUxMX0RSSVZFUik7Cj4gIAkJCURS TV9ERUJVR19LTVMoIkRpc2FibGluZyAlc1xuIiwgcG93ZXJfd2VsbC0+bmFtZSk7Cj4gLQo+IC0J CQlpZiAoR0VOOV9FTkFCTEVfREM1KGRldikgJiYKPiAtCQkJCXBvd2VyX3dlbGwtPmRhdGEgPT0g U0tMX0RJU1BfUFdfMikKPiAtCQkJCQlnZW45X2VuYWJsZV9kYzUoZGV2X3ByaXYpOwo+ICAJCX0K PiAgCX0KPiAgCj4gQEAgLTY5NSw2ICs2OTQsNDAgQEAgc3RhdGljIHZvaWQgc2tsX3Bvd2VyX3dl bGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlza2xfc2V0 X3Bvd2VyX3dlbGwoZGV2X3ByaXYsIHBvd2VyX3dlbGwsIGZhbHNlKTsKPiAgfQo+ICAKPiArc3Rh dGljIGJvb2wgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiArCQkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2Vy X3dlbGwpCj4gK3sKPiArCXJldHVybiAoSTkxNV9SRUFEKERDX1NUQVRFX0VOKSAmIERDX1NUQVRF X0VOX1VQVE9fREM1X0RDNl9NQVNLKSA9PSAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBnZW45 X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gKwkJCQkJIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4gK3sKPiAr CWdlbjlfZGlzYWJsZV9kYzVfZGM2KGRldl9wcml2KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg Z2VuOV9kY19vZmZfcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiArCQkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4g K3sKPiArCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSkKPiArCQlza2xfZW5hYmxlX2RjNihkZXZf cHJpdik7Cj4gKwllbHNlCj4gKwkJZ2VuOV9lbmFibGVfZGM1KGRldl9wcml2KTsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9zeW5jX2h3KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwg KnBvd2VyX3dlbGwpCj4gK3sKPiArCWlmIChwb3dlcl93ZWxsLT5jb3VudCA+IDApIHsKPiArCQln ZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRElTQUJMRSk7Cj4gKwl9IGVsc2Ug ewo+ICsJCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSkKPiArCQkJZ2VuOV9zZXRfZGNfc3RhdGUo ZGV2X3ByaXYsIERDX1NUQVRFX0VOX1VQVE9fREM2KTsKPiArCQllbHNlCj4gKwkJCWdlbjlfc2V0 X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9FTl9VUFRPX0RDNSk7Cj4gKwl9Cj4gK30KPiAr Cj4gIHN0YXRpYyB2b2lkIGk5eHhfYWx3YXlzX29uX3Bvd2VyX3dlbGxfbm9vcChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkJICAgc3RydWN0IGk5MTVfcG93ZXJfd2Vs bCAqcG93ZXJfd2VsbCkKPiAgewo+IEBAIC0xNTE3LDYgKzE1NTAsMTMgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfb3BzIHNrbF9wb3dlcl93ZWxsX29wcyA9IHsKPiAgCS5p c19lbmFibGVkID0gc2tsX3Bvd2VyX3dlbGxfZW5hYmxlZCwKPiAgfTsKPiAgCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX29wcyBnZW45X2RjX29mZl9wb3dlcl93ZWxsX29w cyA9IHsKPiArCS5zeW5jX2h3ID0gZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9zeW5jX2h3LAo+ICsJ LmVuYWJsZSA9IGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZW5hYmxlLAo+ICsJLmRpc2FibGUgPSBn ZW45X2RjX29mZl9wb3dlcl93ZWxsX2Rpc2FibGUsCj4gKwkuaXNfZW5hYmxlZCA9IGdlbjlfZGNf b2ZmX3Bvd2VyX3dlbGxfZW5hYmxlZCwKPiArfTsKPiArCj4gIHN0YXRpYyBzdHJ1Y3QgaTkxNV9w b3dlcl93ZWxsIGhzd19wb3dlcl93ZWxsc1tdID0gewo+ICAJewo+ICAJCS5uYW1lID0gImFsd2F5 cy1vbiIsCj4gQEAgLTE2OTEsNiArMTczMSwxMiBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJf d2VsbCBza2xfcG93ZXJfd2VsbHNbXSA9IHsKPiAgCQkuZGF0YSA9IFNLTF9ESVNQX1BXX01JU0Nf SU8sCj4gIAl9LAo+ICAJewo+ICsJCS5uYW1lID0gIkRDIG9mZiIsCj4gKwkJLmRvbWFpbnMgPSBT S0xfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUywKPiArCQkub3BzID0gJmdlbjlfZGNfb2Zm X3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5kYXRhID0gU0tMX0RJU1BfUFdfRENfT0ZGLAo+ICsJfSwK PiArCXsKPiAgCQkubmFtZSA9ICJwb3dlciB3ZWxsIDIiLAo+ICAJCS5kb21haW5zID0gU0tMX0RJ U1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJnNrbF9wb3dlcl93 ZWxsX29wcywKPiBAQCAtMTc2OSw3ICsxODE1LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dl cl93ZWxsIGJ4dF9wb3dlcl93ZWxsc1tdID0gewo+ICAJCS5kb21haW5zID0gQlhUX0RJU1BMQVlf UE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUywKPiAgCQkub3BzID0gJnNrbF9wb3dlcl93ZWxsX29w cywKPiAgCQkuZGF0YSA9IFNLTF9ESVNQX1BXXzIsCj4gLQl9Cj4gKwl9LAo+ICsJewo+ICsJCS5u YW1lID0gIkRDIG9mZiIsCj4gKwkJLmRvbWFpbnMgPSBCWFRfRElTUExBWV9EQ19PRkZfUE9XRVJf RE9NQUlOUywKPiArCQkub3BzID0gJmdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfb3BzLAo+ICsJCS5k YXRhID0gU0tMX0RJU1BfUFdfRENfT0ZGLAo+ICsJfSwKPiArCgpKdXN0IHJlYWxpemVkIHRoYXQg SSBmb3Jnb3QgdG8gbW92ZSBEQyBvZmYgZm9yIEJYVCBhYm92ZSBQVzIuIFdpbGwgcmVzZW5kLCBz b3JyeQpmb3IgdGhlIG5vaXNlLgoKLVBhdHJpawoKPiAgfTsKPiAgCj4gICNkZWZpbmUgc2V0X3Bv d2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIF9fcG93ZXJfd2VsbHMpICh7CQlcCj4gLS0gCj4gMi41 LjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=