From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrik Jakobsson Subject: Re: [PATCH v2 10/12] drm/i915/gen9: Turn DC handling into a power well Date: Thu, 12 Nov 2015 13:55:36 +0100 Message-ID: <20151112125536.GD30759@patrik-desktop.isw.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> <1447269812.24928.40.camel@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 9FB486ECB8 for ; Thu, 12 Nov 2015 04:55:32 -0800 (PST) Content-Disposition: inline In-Reply-To: <1447269812.24928.40.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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMTEsIDIwMTUgYXQgMDk6MjM6MzJQTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIG1hLCAyMDE1LTExLTA5IGF0IDE2OjQ4ICswMTAwLCBQYXRyaWsgSmFrb2Jzc29uIHdy b3RlOgo+ID4gSGFuZGxlIERDIG9mZiBhcyBhIHBvd2VyIHdlbGwgd2hlcmUgZW5hYmxpbmcgdGhl IHBvd2VyIHdlbGwgd2lsbAo+ID4gcHJldmVudAo+ID4gdGhlIERNQyB0byBlbnRlciBzZWxlY3Rl ZCBEQyBzdGF0ZXMgKHJlcXVpcmVkIGFyb3VuZCBtb2Rlc2V0cyBhbmQgQXV4Cj4gPiBBKS4gRGlz YWJsaW5nIHRoZSBwb3dlciB3ZWxsIHdpbGwgYWxsb3cgREMgc3RhdGVzIGFnYWluLiBGb3Igbm93 IHRoZQo+ID4gaGlnaGVzdCBEQyBzdGF0ZSBpcyBEQzYgZm9yIFNreWxha2UgYW5kIERDNSBmb3Ig QnJveHRvbiBidXQgd2lsbCBiZQo+ID4gY29uZmlndXJhYmxlIGZvciBTa3lsYWtlIGluIGEgbGF0 ZXIgcGF0Y2guCj4gPiAKPiA+IHYyOiBDaGVjayBib3RoIERDNSBhbmQgREM2IGJpdHMgaW4gcG93 ZXIgd2VsbCBlbmFibGVkIGZ1bmN0aW9uCj4gPiAoVmlsbGUpCj4gPiAKPiA+IFNpZ25lZC1vZmYt Ynk6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5qYWtvYnNzb25AbGludXguaW50ZWwuY29tPgo+ ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgICA2 IC0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgIHwgICAxICsK PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCAgIDYgKysKPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAxMTAKPiA+ICsrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNl cnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwo+ID4gaW5kZXggNWE2M2Y5YS4uMGM3ZjQzNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKPiA+IEBAIC0xMDcyLDkgKzEwNzIsNiBAQCBzdGF0aWMgaW50IGk5MTVfcG1fcmVz dW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ICAKPiA+ICBzdGF0aWMgaW50IHNrbF9zdXNwZW5k X2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICB7Cj4gPiAt CWlmIChkZXZfcHJpdi0+Y3NyLmRtY19wYXlsb2FkKQo+ID4gLQkJc2tsX2VuYWJsZV9kYzYoZGV2 X3ByaXYpOwo+ID4gLQo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtMTExOSw5 ICsxMTE2LDYgQEAgc3RhdGljIGludCBieHRfcmVzdW1lX3ByZXBhcmUoc3RydWN0Cj4gPiBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAKPiA+ICBzdGF0aWMgaW50IHNrbF9yZXN1bWVf cHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgewo+ID4gLQlp ZiAoZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9hZCkKPiA+IC0JCXNrbF9kaXNhYmxlX2RjNihkZXZf cHJpdik7Cj4gPiAtCj4gPiAgCXJldHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiA+IGluZGV4IDMxYjNhODQuLmRmNDQ1YmEgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBAQCAtNjM2LDYgKzYzNiw3IEBAIGVudW0gc2tsX2Rpc3Bf cG93ZXJfd2VsbHMgewo+ID4gIAo+ID4gIAkvKiBOb3QgYWN0dWFsIGJpdCBncm91cHMuIFVzZWQg YXMgSURzIGZvcgo+ID4gbG9va3VwX3Bvd2VyX3dlbGwoKSAqLwo+ID4gIAlTS0xfRElTUF9QV19B TFdBWVNfT04sCj4gPiArCVNLTF9ESVNQX1BXX0RDX09GRiwKPiA+ICB9Owo+ID4gIAo+ID4gICNk ZWZpbmUgU0tMX1BPV0VSX1dFTExfU1RBVEUocHcpICgxIDw8ICgocHcpICogMikpCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggNjQ5YWMzNC4uODU2ZDgw MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMTMz MjAsNiArMTMzMjAsOSBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0Cj4g PiBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0 ZSkKPiA+IC0+dXBkYXRlX3BpcGU7Cj4gPiAgCQl1bnNpZ25lZCBsb25nIHB1dF9kb21haW5zID0g MDsKPiA+ICAKPiA+ICsJCWlmIChtb2Rlc2V0KQo+ID4gKwkJCWludGVsX2Rpc3BsYXlfcG93ZXJf Z2V0KGRldl9wcml2LAo+ID4gUE9XRVJfRE9NQUlOX01PREVTRVQpOwo+ID4gKwo+ID4gIAkJaWYg KG1vZGVzZXQgJiYgY3J0Yy0+c3RhdGUtPmFjdGl2ZSkgewo+ID4gIAkJCXVwZGF0ZV9zY2FubGlu ZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4gPiAgCQkJZGV2X3ByaXYtPmRpc3BsYXku Y3J0Y19lbmFibGUoY3J0Yyk7Cj4gPiBAQCAtMTMzNDMsNiArMTMzNDYsOSBAQCBzdGF0aWMgaW50 IGludGVsX2F0b21pY19jb21taXQoc3RydWN0Cj4gPiBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQkJ bW9kZXNldF9wdXRfcG93ZXJfZG9tYWlucyhkZXZfcHJpdiwKPiA+IHB1dF9kb21haW5zKTsKPiA+ ICAKPiA+ICAJCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwo+ID4gKwo+ID4g KwkJaWYgKG1vZGVzZXQpCj4gPiArCQkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYs Cj4gPiBQT1dFUl9ET01BSU5fTU9ERVNFVCk7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJLyogRklYTUU6 IGFkZCBzdWJwaXhlbCBvcmRlciAqLwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMKPiA+IGluZGV4IGVkZjc1M2UuLjk1YzNmY2MgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gQEAgLTQ5LDkgKzQ5LDYgQEAKPiA+ ICAgKiBwcmVzZW50IGZvciBhIGdpdmVuIHBsYXRmb3JtLgo+ID4gICAqLwo+ID4gIAo+ID4gLSNk ZWZpbmUgR0VOOV9FTkFCTEVfREM1KGRldikgMAo+ID4gLSNkZWZpbmUgU0tMX0VOQUJMRV9EQzYo ZGV2KSBJU19TS1lMQUtFKGRldikKPiA+IC0KPiA+ICAjZGVmaW5lIGZvcl9lYWNoX3Bvd2VyX3dl bGwoaSwgcG93ZXJfd2VsbCwgZG9tYWluX21hc2ssCj4gPiBwb3dlcl9kb21haW5zKQlcCj4gPiAg CWZvciAoaSA9IDA7CQkJCQkJCQo+ID4gXAo+ID4gIAkgICAgIGkgPCAocG93ZXJfZG9tYWlucykt PnBvd2VyX3dlbGxfY291bnQgJiYJCQo+ID4gCVwKPiA+IEBAIC0zMDksOSArMzA2LDE0IEBAIHN0 YXRpYyB2b2lkIGhzd19zZXRfcG93ZXJfd2VsbChzdHJ1Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ID4gICNkZWZpbmUgU0tMX0RJU1BMQVlfRERJX0RfUE9XRVJfRE9NQUlOUyAo CQlcCj4gPiAgCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykgfAkJXAo+ID4gIAlC SVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ID4gKyNkZWZpbmUgU0tMX0RJU1BMQVlfRENfT0ZGX1BP V0VSX0RPTUFJTlMgKAkJXAo+ID4gKwlCSVQoUE9XRVJfRE9NQUlOX01PREVTRVQpIHwJCQlcCj4g PiArCUJJVChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCj4gPiArCUJJVChQT1dFUl9ET01BSU5f SU5JVCkpCj4gPiAgI2RlZmluZSBTS0xfRElTUExBWV9BTFdBWVNfT05fUE9XRVJfRE9NQUlOUyAo CQlcCj4gPiAgCShQT1dFUl9ET01BSU5fTUFTSyAmIH4oCQkJCVwKPiA+IC0JU0tMX0RJU1BMQVlf UE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUykpIHwJXAo+ID4gKwlTS0xfRElTUExBWV9QT1dFUldF TExfMl9QT1dFUl9ET01BSU5TIHwJCVwKPiA+ICsJU0tMX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RP TUFJTlMpKSB8CQlcCj4gPiAgCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4gPiAgCj4gPiAgI2Rl ZmluZSBCWFRfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TICgJCVwKPiA+IEBAIC0z MzksNiArMzQxLDEwIEBAIHN0YXRpYyB2b2lkIGhzd19zZXRfcG93ZXJfd2VsbChzdHJ1Y3QKPiA+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAlCSVQoUE9XRVJfRE9NQUlOX0FVWF9B KSB8CQkJXAo+ID4gIAlCSVQoUE9XRVJfRE9NQUlOX1BMTFMpIHwJCQlcCj4gPiAgCUJJVChQT1dF Ul9ET01BSU5fSU5JVCkpCj4gPiArI2RlZmluZSBCWFRfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9N QUlOUyAoCQlcCj4gPiArCUJJVChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKPiA+ICsJQklU KFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKPiA+ICsJQklUKFBPV0VSX0RPTUFJTl9JTklUKSkK PiA+ICAjZGVmaW5lIEJYVF9ESVNQTEFZX0FMV0FZU19PTl9QT1dFUl9ET01BSU5TICgJCVwKPiA+ ICAJKFBPV0VSX0RPTUFJTl9NQVNLICYgfihCWFRfRElTUExBWV9QT1dFUldFTExfMV9QT1dFUl9E T01BSU5TCj4gPiB8CVwKPiA+ICAJQlhUX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlO UykpIHwJXAo+ID4gQEAgLTQ4NiwxNSArNDkyLDYgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFibGVf ZGM1KHN0cnVjdAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgCWdlbjlfc2V0 X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9FTl9VUFRPX0RDNSk7Cj4gPiAgfQo+ID4gIAo+ ID4gLXN0YXRpYyB2b2lkIGdlbjlfZGlzYWJsZV9kYzUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ID4gLXsKPiA+IC0JYXNzZXJ0X2Nhbl9kaXNhYmxlX2RjNShkZXZfcHJpdik7 Cj4gPiAtCj4gPiAtCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyBEQzVcbiIpOwo+ID4gLQo+ID4g LQlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRElTQUJMRSk7Cj4gPiAtfQo+ ID4gLQo+ID4gIHN0YXRpYyB2b2lkIGFzc2VydF9jYW5fZW5hYmxlX2RjNihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZGV2X3ByaXYtPmRldjsKPiA+IEBAIC01MjIsNiArNTE5LDE0IEBAIHN0YXRpYyB2b2lkIGFz c2VydF9jYW5fZGlzYWJsZV9kYzYoc3RydWN0Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiA+ICAJCSAgIkRDNiBhbHJlYWR5IHByb2dyYW1tZWQgdG8gYmUgZGlzYWJsZWQuXG4iKTsK PiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIHZvaWQgZ2VuOV9kaXNhYmxlX2RjNV9kYzYoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gK3sKPiA+ICsJYXNzZXJ0X2Nhbl9kaXNh YmxlX2RjNShkZXZfcHJpdik7Cj4gPiArCWFzc2VydF9jYW5fZGlzYWJsZV9kYzYoZGV2X3ByaXYp Owo+ID4gKwo+ID4gKwlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRElTQUJM RSk7Cj4gPiArfQo+ID4gKwo+ID4gIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIHsKPiA+ICAJYXNzZXJ0X2Nhbl9lbmFibGVfZGM2KGRl dl9wcml2KTsKPiA+IEBAIC01NzEsNiArNTc2LDcgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dl cl93ZWxsKHN0cnVjdAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCWNhc2Ug U0tMX0RJU1BfUFdfRERJX0M6Cj4gPiAgCWNhc2UgU0tMX0RJU1BfUFdfRERJX0Q6Cj4gPiAgCWNh c2UgU0tMX0RJU1BfUFdfTUlTQ19JTzoKPiA+ICsJY2FzZSBTS0xfRElTUF9QV19EQ19PRkY6Cj4g Cj4gV2h5IGlzIHRoaXMgbmVlZGVkPyBJIHRoaW5rIHRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgY2Fs bGVkIGZvciBEQzUvNi4KCllvdSdyZSByaWdodCwgaXQncyBub3QgbmVlZGVkLiBJJ2xsIHJlbW92 ZSBpdC4KCj4gCj4gPiAgCQlicmVhazsKPiA+ICAJZGVmYXVsdDoKPiA+ICAJCVdBUk4oMSwgIlVu a25vd24gcG93ZXIgd2VsbCAlbHVcbiIsIHBvd2VyX3dlbGwKPiA+IC0+ZGF0YSk7Cj4gPiBAQCAt NTg5LDE3ICs1OTUsMTMgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdAo+ ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQkJCSJJbnZhbGlkIGZvciBwb3dl ciB3ZWxsIHN0YXR1cyB0byBiZQo+ID4gZW5hYmxlZCwgdW5sZXNzIGRvbmUgYnkgdGhlIEJJT1Ms IFwKPiA+ICAJCQkJd2hlbiByZXF1ZXN0IGlzIHRvIGRpc2FibGUhXG4iKTsKPiA+ICAJCQlpZiAo cG93ZXJfd2VsbC0+ZGF0YSA9PSBTS0xfRElTUF9QV18yKSB7Cj4gPiAtCQkJCWlmIChHRU45X0VO QUJMRV9EQzUoZGV2KSkKPiA+IC0JCQkJCWdlbjlfZGlzYWJsZV9kYzUoZGV2X3ByaXYpOwo+ID4g LQkJCQlpZiAoU0tMX0VOQUJMRV9EQzYoZGV2KSkgewo+ID4gLQkJCQkJLyoKPiA+IC0JCQkJCSAq IERESSBidWZmZXIgcHJvZ3JhbW1pbmcKPiA+IHVubmVjZXNzYXJ5IGR1cmluZyBkcml2ZXItbG9h ZC9yZXN1bWUKPiA+IC0JCQkJCSAqIGFzIGl0J3MgYWxyZWFkeSBkb25lCj4gPiBkdXJpbmcgbW9k ZXNldCBpbml0aWFsaXphdGlvbiB0aGVuLgo+ID4gLQkJCQkJICogSXQncyBhbHNvIGludmFsaWQg aGVyZSBhcwo+ID4gZW5jb2RlciBsaXN0IGlzIHN0aWxsIHVuaW5pdGlhbGl6ZWQuCj4gPiAtCQkJ CQkgKi8KPiA+IC0JCQkJCWlmICghZGV2X3ByaXYKPiA+IC0+cG93ZXJfZG9tYWlucy5pbml0aWFs aXppbmcpCj4gPiAtCQkJCQkJaW50ZWxfcHJlcGFyZV9kZGkoZGUKPiA+IHYpOwo+ID4gLQkJCQl9 Cj4gPiArCQkJCS8qCj4gPiArCQkJCSAqIERESSBidWZmZXIgcHJvZ3JhbW1pbmcKPiA+IHVubmVj ZXNzYXJ5IGR1cmluZyBkcml2ZXItbG9hZC9yZXN1bWUKPiA+ICsJCQkJICogYXMgaXQncyBhbHJl YWR5IGRvbmUgZHVyaW5nCj4gPiBtb2Rlc2V0IGluaXRpYWxpemF0aW9uIHRoZW4uCj4gPiArCQkJ CSAqIEl0J3MgYWxzbyBpbnZhbGlkIGhlcmUgYXMgZW5jb2Rlcgo+ID4gbGlzdCBpcyBzdGlsbCB1 bmluaXRpYWxpemVkLgo+ID4gKwkJCQkgKi8KPiA+ICsJCQkJaWYgKCFkZXZfcHJpdgo+ID4gLT5w b3dlcl9kb21haW5zLmluaXRpYWxpemluZykKPiA+ICsJCQkJCWludGVsX3ByZXBhcmVfZGRpKGRl dik7Cj4gPiAgCQkJfQo+ID4gIAkJCUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0RSSVZFUiwgdG1w IHwKPiA+IHJlcV9tYXNrKTsKPiA+ICAJCX0KPiA+IEBAIC02MTcsMTAgKzYxOSw2IEBAIHN0YXRp YyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ID4gIAkJCUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0RSSVZFUiwJdG1wICYKPiA+ IH5yZXFfbWFzayk7Cj4gPiAgCQkJUE9TVElOR19SRUFEKEhTV19QV1JfV0VMTF9EUklWRVIpOwo+ ID4gIAkJCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyAlc1xuIiwgcG93ZXJfd2VsbAo+ID4gLT5u YW1lKTsKPiA+IC0KPiA+IC0JCQlpZiAoR0VOOV9FTkFCTEVfREM1KGRldikgJiYKPiA+IC0JCQkJ cG93ZXJfd2VsbC0+ZGF0YSA9PSBTS0xfRElTUF9QV18yKQo+ID4gLQkJCQkJZ2VuOV9lbmFibGVf ZGM1KGRldl9wcml2KTsKPiA+ICAJCX0KPiA+ICAJfQo+ID4gIAo+ID4gQEAgLTY5NSw2ICs2OTMs NDAgQEAgc3RhdGljIHZvaWQgc2tsX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QKPiA+IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAlza2xfc2V0X3Bvd2VyX3dlbGwoZGV2X3ByaXYs IHBvd2VyX3dlbGwsIGZhbHNlKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wgZ2VuOV9k Y19vZmZfcG93ZXJfd2VsbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiAqZGV2 X3ByaXYsCj4gPiArCQkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwKPiA+ICpwb3dlcl93ZWxs KQo+ID4gK3sKPiA+ICsJcmV0dXJuIChJOTE1X1JFQUQoRENfU1RBVEVfRU4pICYKPiA+IERDX1NU QVRFX0VOX1VQVE9fREM1X0RDNl9NQVNLKSA9PSAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMg dm9pZCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZQo+ID4gKmRldl9wcml2LAo+ID4gKwkJCQkJIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwKPiA+ICpw b3dlcl93ZWxsKQo+ID4gK3sKPiA+ICsJZ2VuOV9kaXNhYmxlX2RjNV9kYzYoZGV2X3ByaXYpOwo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2Rpc2Fi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ICpkZXZfcHJpdiwKPiA+ICsJCQkJCSAgc3Ry dWN0IGk5MTVfcG93ZXJfd2VsbAo+ID4gKnBvd2VyX3dlbGwpCj4gPiArewo+ID4gKwlpZiAoSVNf U0tZTEFLRShkZXZfcHJpdikpCj4gPiArCQlza2xfZW5hYmxlX2RjNihkZXZfcHJpdik7Cj4gPiAr CWVsc2UKPiA+ICsJCWdlbjlfZW5hYmxlX2RjNShkZXZfcHJpdik7Cj4gPiArfQo+ID4gKwo+ID4g K3N0YXRpYyB2b2lkIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfc3luY19odyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZQo+ID4gKmRldl9wcml2LAo+ID4gKwkJCQkJICBzdHJ1Y3QgaTkxNV9wb3dlcl93 ZWxsCj4gPiAqcG93ZXJfd2VsbCkKPiA+ICt7Cj4gPiArCWlmIChwb3dlcl93ZWxsLT5jb3VudCA+ IDApIHsKPiA+ICsJCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxF KTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSkKPiA+ICsJ CQlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwKPiA+IERDX1NUQVRFX0VOX1VQVE9fREM2KTsK PiA+ICsJCWVsc2UKPiA+ICsJCQlnZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwKPiA+IERDX1NU QVRFX0VOX1VQVE9fREM1KTsKPiA+ICsJfQo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBp OXh4X2Fsd2F5c19vbl9wb3dlcl93ZWxsX25vb3Aoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ ICpkZXZfcHJpdiwKPiA+ICAJCQkJCSAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwKPiA+ICpwb3dl cl93ZWxsKQo+ID4gIHsKPiA+IEBAIC0xNTE3LDYgKzE1NDksMTMgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X3Bvd2VyX3dlbGxfb3BzCj4gPiBza2xfcG93ZXJfd2VsbF9vcHMgPSB7Cj4gPiAg CS5pc19lbmFibGVkID0gc2tsX3Bvd2VyX3dlbGxfZW5hYmxlZCwKPiA+ICB9Owo+ID4gIAo+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX29wcyBnZW45X2RjX29mZl9wb3dl cl93ZWxsX29wcyA9Cj4gPiB7Cj4gPiArCS5zeW5jX2h3ID0gZ2VuOV9kY19vZmZfcG93ZXJfd2Vs bF9zeW5jX2h3LAo+ID4gKwkuZW5hYmxlID0gZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGUs Cj4gPiArCS5kaXNhYmxlID0gZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9kaXNhYmxlLAo+ID4gKwku aXNfZW5hYmxlZCA9IGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZW5hYmxlZCwKPiA+ICt9Owo+ID4g Kwo+ID4gIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsIGhzd19wb3dlcl93ZWxsc1tdID0g ewo+ID4gIAl7Cj4gPiAgCQkubmFtZSA9ICJhbHdheXMtb24iLAo+ID4gQEAgLTE2OTcsNiArMTcz NiwxMiBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2VsbAo+ID4gc2tsX3Bvd2VyX3dlbGxz W10gPSB7Cj4gPiAgCQkuZGF0YSA9IFNLTF9ESVNQX1BXXzIsCj4gPiAgCX0sCj4gPiAgCXsKPiA+ ICsJCS5uYW1lID0gIkRDIG9mZiIsCj4gPiArCQkuZG9tYWlucyA9IFNLTF9ESVNQTEFZX0RDX09G Rl9QT1dFUl9ET01BSU5TLAo+ID4gKwkJLm9wcyA9ICZnZW45X2RjX29mZl9wb3dlcl93ZWxsX29w cywKPiA+ICsJCS5kYXRhID0gU0tMX0RJU1BfUFdfRENfT0ZGLAo+ID4gKwl9LAo+ID4gKwl7Cj4g PiAgCQkubmFtZSA9ICJEREkgQS9FIHBvd2VyIHdlbGwiLAo+ID4gIAkJLmRvbWFpbnMgPSBTS0xf RElTUExBWV9ERElfQV9FX1BPV0VSX0RPTUFJTlMsCj4gPiAgCQkub3BzID0gJnNrbF9wb3dlcl93 ZWxsX29wcywKPiA+IEBAIC0xNzY5LDcgKzE4MTQsMTQgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3Bv d2VyX3dlbGwKPiA+IGJ4dF9wb3dlcl93ZWxsc1tdID0gewo+ID4gIAkJLmRvbWFpbnMgPSBCWFRf RElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TLAo+ID4gIAkJLm9wcyA9ICZza2xfcG93 ZXJfd2VsbF9vcHMsCj4gPiAgCQkuZGF0YSA9IFNLTF9ESVNQX1BXXzIsCj4gPiAtCX0KPiA+ICsJ fSwKPiA+ICsJewo+ID4gKwkJLm5hbWUgPSAiREMgb2ZmIiwKPiA+ICsJCS5kb21haW5zID0gQlhU X0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMsCj4gPiArCQkub3BzID0gJmdlbjlfZGNfb2Zm X3Bvd2VyX3dlbGxfb3BzLAo+ID4gKwkJLmRhdGEgPSBTS0xfRElTUF9QV19EQ19PRkYsCj4gPiAr CX0sCj4gPiArCj4gPiAgfTsKPiA+ICAKPiA+ICAjZGVmaW5lIHNldF9wb3dlcl93ZWxscyhwb3dl cl9kb21haW5zLCBfX3Bvd2VyX3dlbGxzKSAoewkJCj4gPiBcCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==