From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm/i915: Start tracking PSR state in crtc state Date: Thu, 12 Oct 2017 21:33:46 +0300 Message-ID: <20171012183346.GS10981@intel.com> References: <20171012100920.29823-1-ville.syrjala@linux.intel.com> <20171012130201.21318-1-ville.syrjala@linux.intel.com> <87fuaomr5g.fsf@intel.com> <20171012181145.w2cmys2tfxob5xwo@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 653996E24C for ; Thu, 12 Oct 2017 18:34:05 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171012181145.w2cmys2tfxob5xwo@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMTIsIDIwMTcgYXQgMTE6MTE6NDVBTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIFRodSwgT2N0IDEyLCAyMDE3IGF0IDAxOjI4OjQzUE0gKzAwMDAsIEphbmkgTmlr dWxhIHdyb3RlOgo+ID4gT24gVGh1LCAxMiBPY3QgMjAxNywgVmlsbGUgU3lyamFsYSA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPgo+ID4gPiBBZGQgdGhlIG1p bmltYWwgYW1vdW50IG9mIFBTUiB0cmFja2luZyBpbnRvIHRoZSBjcnRjIHN0YXRlLiBUaGlzIGFs bG93cwo+ID4gPiBwcmVjb21wdXRpbmcgdGhlIHBvc3NpYmlsaXR5IG9mIHVzaW5nIFBTUiBjb3Jy ZWN0bHksIGFuZCBpdCBtZWFucyB3ZSBjYW4KPiA+ID4gc2FmZWx5IGNhbGwgdGhlIHBzciBlbmFi bGUvZGlzYWJsZSBmdW5jdGlvbnMgZm9yIGFueSBEUCBlbmRjb2Rlci4KPiAKPiBnb29kIGlkZWEu Cj4gCj4gPiA+Cj4gPiA+IEFzIGEgbmljZSBib251cyB3ZSBnZXQgcmlkIG9mIHNvbWUgbW9yZSBj cnRjLT5jb25maWcgdXNhZ2UsIHdoaWNoIHdlCj4gPiA+IHdhbnQgdG8ga2lsbCBvZmYgZXZlbnR1 YWxseS4KPiA+ID4KPiA+ID4gdjI6IEZpeCAnZ290byB1bmxvY2snIGZhaWwgaW4gaW50ZWxfcHNy X2VuYWJsZSgpIChKYW5pKQo+ID4gPiAgICAgQ2hlY2sgaW50ZWxfZHBfaXNfZWRwKCkgaW4gaXNf ZWRwX3BzcigpIChKYW5pKQo+ID4gPgo+ID4gPiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgo+ID4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNv bT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IAo+ID4gUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBpbnRlbC5jb20+Cj4gCj4gQWNrZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KClRoYW5rIHlvdSBib3RoLiBQYXRjaCBwdXNoZWQgdG8gZGlucS4KCj4gCj4g PiAKPiA+IEJ1dCBJIHRoaW5rIGFuIGFjayBmcm9tIFJvZHJpZ28gbWlnaHQgYmUgaW4gb3JkZXIu Cj4gPiAKPiA+IFRoZXJlJ3MgYWxzbyBzb21lIGZvbGxvdy11cCB0byBkbyB3aXRoIHVudGFuZ2xp bmcKPiA+IGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0Lgo+IAo+ICtWYXRoc2FsYSBqdXN0IGlu IGNhc2UgOykKPiAKPiA+IAo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgIHwgIDIgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg fCAgNSArKysKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIHwgODUgKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAgMyBmaWxlcyBjaGFu Z2VkLCA1MiBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPiA+ID4KPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCj4gPiA+IGluZGV4IGIwZjQ0NmI2OGY0Mi4uNzUzNDA0MjgwYTE5IDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gQEAgLTE4MzIsNiArMTgz Miw4IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gPiAgCWlmICghSEFTX0RESShkZXZfcHJpdikpCj4gPiA+ICAJCWludGVsX2RwX3Nl dF9jbG9jayhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gPiA+ICAKPiA+ID4gKwlpbnRlbF9wc3Jf Y29tcHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKPiA+ID4gKwo+ID4gPiAgCXJl dHVybiB0cnVlOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiA+IGluZGV4IGI4Nzk0NmRjYzUzZi4uZDYxOTg1ZjkzZDQwIDEwMDY0NAo+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtNzE4LDYgKzcxOCw5IEBAIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlIHsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfbGlua19tX24gZHBfbTJfbjI7 Cj4gPiA+ICAJYm9vbCBoYXNfZHJyczsKPiA+ID4gIAo+ID4gPiArCWJvb2wgaGFzX3BzcjsKPiA+ ID4gKwlib29sIGhhc19wc3IyOwo+ID4gPiArCj4gPiA+ICAJLyoKPiA+ID4gIAkgKiBGcmVxdWVu Y2UgdGhlIGRwbGwgZm9yIHRoZSBwb3J0IHNob3VsZCBydW4gYXQuIERpZmZlcnMgZnJvbSB0aGUK PiA+ID4gIAkgKiBhZGp1c3RlZCBkb3RjbG9jayBlLmcuIGZvciBEUCBvciAxMmJwYyBoZG1pIG1v ZGUuIFRoaXMgaXMgYWxzbwo+ID4gPiBAQCAtMTc2NCw2ICsxNzY3LDggQEAgdm9pZCBpbnRlbF9w c3JfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgdm9pZCBp bnRlbF9wc3JfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gPiAg dm9pZCBpbnRlbF9wc3Jfc2luZ2xlX2ZyYW1lX3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gPiA+ICAJCQkJICAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7Cj4g PiA+ICt2b2lkIGludGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ID4gPiArCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Owo+ID4gPiAgCj4gPiA+ICAvKiBpbnRlbF9ydW50aW1lX3BtLmMgKi8KPiA+ID4gIGludCBpbnRl bF9wb3dlcl9kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKik7Cj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiA+IGluZGV4IDU0MTljZGE4M2JhOC4uOTNiMTc3Y2M0 Y2JmIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ID4gPiBAQCAtNTgs NiArNTgsOSBAQAo+ID4gPiAgCj4gPiA+ICBzdGF0aWMgYm9vbCBpc19lZHBfcHNyKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ICB7Cj4gPiA+ICsJaWYgKCFpbnRlbF9kcF9pc19lZHAo aW50ZWxfZHApKQo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsKPiA+ID4gIAlyZXR1cm4g aW50ZWxfZHAtPnBzcl9kcGNkWzBdICYgRFBfUFNSX0lTX1NVUFBPUlRFRDsKPiA+ID4gIH0KPiA+ ID4gIAo+ID4gPiBAQCAtMzc2LDIyICszNzksMjUgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9hY3Rp dmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiAgCQloc3dfYWN0aXZhdGVfcHNy MShpbnRlbF9kcCk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyBib29sIGludGVsX3Bz cl9tYXRjaF9jb25kaXRpb25zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ICt2b2lk IGludGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4g PiArCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ICB7 Cj4gPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdf cG9ydChpbnRlbF9kcCk7Cj4gPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2Owo+ID4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPiA+ID4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkaWdfcG9y dC0+YmFzZS5iYXNlLmNydGM7Cj4gPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ID4gPiAgCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiA+ID4gLQkJJmludGVs X2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gPiArCQkmY3J0Y19zdGF0ZS0+ YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gPiAgCWludCBwc3Jfc2V0dXBfdGltZTsKPiA+ID4gIAo+ ID4gPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wc3IubG9jayk7Cj4gPiA+IC0J V0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rp b25fbXV0ZXgpKTsKPiA+ID4gLQlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmNydGMt Pm11dGV4KSk7Cj4gPiA+ICsJaWYgKCFIQVNfUFNSKGRldl9wcml2KSkKPiA+ID4gKwkJcmV0dXJu Owo+ID4gPiAgCj4gPiA+IC0JZGV2X3ByaXYtPnBzci5zb3VyY2Vfb2sgPSBmYWxzZTsKPiA+ID4g KwlpZiAoIWlzX2VkcF9wc3IoaW50ZWxfZHApKQo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsKPiA+ ID4gKwlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IpIHsKPiA+ID4gKwkJRFJNX0RFQlVH X0tNUygiUFNSIGRpc2FibGUgYnkgZmxhZ1xuIik7Cj4gPiA+ICsJCXJldHVybjsKPiA+ID4gKwl9 Cj4gPiA+ICAKPiA+ID4gIAkvKgo+ID4gPiAgCSAqIEhTVyBzcGVjIGV4cGxpY2l0bHkgc2F5cyBQ U1IgaXMgdGllZCB0byBwb3J0IEEuCj4gPiA+IEBAIC00MDIsNjYgKzQwOCw3MCBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9wc3JfbWF0Y2hfY29uZGl0aW9ucyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gPiAgCSAqLwo+ID4gPiAgCWlmIChIQVNfRERJKGRldl9wcml2KSAmJiBkaWdfcG9ydC0+ cG9ydCAhPSBQT1JUX0EpIHsKPiA+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBm YWlsZWQ6IFBvcnQgbm90IHN1cHBvcnRlZFxuIik7Cj4gPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ ID4gLQl9Cj4gPiA+IC0KPiA+ID4gLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IpIHsK PiA+ID4gLQkJRFJNX0RFQlVHX0tNUygiUFNSIGRpc2FibGUgYnkgZmxhZ1xuIik7Cj4gPiA+IC0J CXJldHVybiBmYWxzZTsKPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAg CWlmICgoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp ICYmCj4gPiA+ICAJICAgICFkZXZfcHJpdi0+cHNyLmxpbmtfc3RhbmRieSkgewo+ID4gPiAgCQlE Uk1fRVJST1IoIlBTUiBjb25kaXRpb24gZmFpbGVkOiBMaW5rIG9mZiByZXF1ZXN0ZWQgYnV0IG5v dCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybVxuIik7Cj4gPiA+IC0JCXJldHVybiBmYWxzZTsK PiA+ID4gKwkJcmV0dXJuOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAgCWlmIChJU19IQVNXRUxM KGRldl9wcml2KSAmJgo+ID4gPiAtCSAgICBJOTE1X1JFQUQoSFNXX1NURVJFT18zRF9DVEwoaW50 ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlcikpICYKPiA+ID4gKwkgICAgSTkxNV9SRUFE KEhTV19TVEVSRU9fM0RfQ1RMKGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyKSkgJgo+ID4gPiAg CQkgICAgICBTM0RfRU5BQkxFKSB7Cj4gPiA+ICAJCURSTV9ERUJVR19LTVMoIlBTUiBjb25kaXRp b24gZmFpbGVkOiBTdGVyZW8gM0QgaXMgRW5hYmxlZFxuIik7Cj4gPiA+IC0JCXJldHVybiBmYWxz ZTsKPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAgCWlmIChJU19IQVNX RUxMKGRldl9wcml2KSAmJgo+ID4gPiAgCSAgICBhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9N T0RFX0ZMQUdfSU5URVJMQUNFKSB7Cj4gPiA+ICAJCURSTV9ERUJVR19LTVMoIlBTUiBjb25kaXRp b24gZmFpbGVkOiBJbnRlcmxhY2VkIGlzIEVuYWJsZWRcbiIpOwo+ID4gPiAtCQlyZXR1cm4gZmFs c2U7Cj4gPiA+ICsJCXJldHVybjsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAlwc3Jfc2V0dXBf dGltZSA9IGRybV9kcF9wc3Jfc2V0dXBfdGltZShpbnRlbF9kcC0+cHNyX2RwY2QpOwo+ID4gPiAg CWlmIChwc3Jfc2V0dXBfdGltZSA8IDApIHsKPiA+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNv bmRpdGlvbiBmYWlsZWQ6IEludmFsaWQgUFNSIHNldHVwIHRpbWUgKDB4JTAyeClcbiIsCj4gPiA+ ICAJCQkgICAgICBpbnRlbF9kcC0+cHNyX2RwY2RbMV0pOwo+ID4gPiAtCQlyZXR1cm4gZmFsc2U7 Cj4gPiA+ICsJCXJldHVybjsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAlpZiAoaW50ZWxfdXNl Y3NfdG9fc2NhbmxpbmVzKGFkanVzdGVkX21vZGUsIHBzcl9zZXR1cF90aW1lKSA+Cj4gPiA+ICAJ ICAgIGFkanVzdGVkX21vZGUtPmNydGNfdnRvdGFsIC0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlz cGxheSAtIDEpIHsKPiA+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6 IFBTUiBzZXR1cCB0aW1lICglZCB1cykgdG9vIGxvbmdcbiIsCj4gPiA+ICAJCQkgICAgICBwc3Jf c2V0dXBfdGltZSk7Cj4gPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ID4gKwkJcmV0dXJuOwo+ID4g PiArCX0KPiA+ID4gKwo+ID4gPiArCS8qCj4gPiA+ICsJICogRklYTUUgcHNyMl9zdXBwb3J0IGlz IG1lc3NlZCB1cC4gSXQncyBib3RoIGNvbXB1dGVkCj4gPiA+ICsJICogZHluYW1pY2FsbHkgZHVy aW5nIFBTUiBlbmFibGUsIGFuZCBleHRyYWN0ZWQgZnJvbSBzaW5rCj4gPiA+ICsJICogY2FwcyBk dXJpbmcgZURQIGRldGVjdGlvbi4KPiA+ID4gKwkgKi8KPiAKPiArVmF0aHNhbGEKPiAKPiA+ID4g KwlpZiAoIWRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KSB7Cj4gPiA+ICsJCWNydGNfc3RhdGUt Pmhhc19wc3IgPSB0cnVlOwo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ ICAJLyogUFNSMiBpcyByZXN0cmljdGVkIHRvIHdvcmsgd2l0aCBwYW5lbCByZXNvbHV0aW9ucyB1 cHRvIDMyMDB4MjAwMCAqLwo+ID4gPiAtCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCAm Jgo+ID4gPiAtCSAgICAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193ID4gMzIwMCB8fAo+ ID4gPiAtCSAgICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oID4gMjAwMCkpIHsKPiA+ ID4gLQkJZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQgPSBmYWxzZTsKPiA+ID4gLQkJcmV0dXJu IGZhbHNlOwo+ID4gPiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ID4gMzIwMCB8 fAo+ID4gPiArCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5ID4gMjAwMCkgewo+ID4g PiArCQlEUk1fREVCVUdfS01TKCJQU1IyIGRpc2FibGVkLCBwYW5lbCByZXNvbHV0aW9uIHRvbyBi aWdcbiIpOwo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ICAJLyoKPiA+ ID4gIAkgKiBGSVhNRTplbmFibGUgcHNyMiBvbmx5IGZvciB5LWNvcmRpbmF0ZSBwc3IyIHBhbmVs cwo+ID4gPiAgCSAqIEFmdGVyIGd0YyBpbXBsZW1lbnRhdGlvbiAsIHJlbW92ZSB0aGlzIHJlc3Ry aWN0aW9uLgo+ID4gPiAgCSAqLwo+ID4gPiAtCWlmICghZGV2X3ByaXYtPnBzci55X2NvcmRfc3Vw cG9ydCAmJiAgZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpIHsKPiA+ID4gKwlpZiAoIWRldl9w cml2LT5wc3IueV9jb3JkX3N1cHBvcnQpIHsKPiA+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSMiBk aXNhYmxlZCwgcGFuZWwgZG9lcyBub3Qgc3VwcG9ydCBZIGNvb3JkaW5hdGVcbiIpOwo+ID4gPiAt CQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsJCXJldHVybjsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4g LQlkZXZfcHJpdi0+cHNyLnNvdXJjZV9vayA9IHRydWU7Cj4gPiA+IC0JcmV0dXJuIHRydWU7Cj4g PiA+ICsJY3J0Y19zdGF0ZS0+aGFzX3BzciA9IHRydWU7Cj4gPiA+ICsJY3J0Y19zdGF0ZS0+aGFz X3BzcjIgPSB0cnVlOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9w c3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gQEAgLTUzMSwxNCAr NTQxLDkgQEAgdm9pZCBpbnRlbF9wc3JfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJh c2UuZGV2Owo+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiA+ID4gIAo+ID4gPiAtCWlmICghSEFTX1BTUihkZXZfcHJpdikpCj4gPiA+ICsJ aWYgKCFjcnRjX3N0YXRlLT5oYXNfcHNyKQo+ID4gPiAgCQlyZXR1cm47Cj4gPiA+ICAKPiA+ID4g LQlpZiAoIWlzX2VkcF9wc3IoaW50ZWxfZHApKSB7Cj4gPiA+IC0JCURSTV9ERUJVR19LTVMoIlBT UiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGFuZWxcbiIpOwo+ID4gPiAtCQlyZXR1cm47Cj4gPiA+ IC0JfQo+ID4gPiAtCj4gPiA+ICAJV0FSTl9PTihkZXZfcHJpdi0+ZHJycy5kcCk7Cj4gPiA+ICAJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiA+ID4gIAlpZiAoZGV2X3ByaXYtPnBz ci5lbmFibGVkKSB7Cj4gPiA+IEBAIC01NDYsOCArNTUxLDggQEAgdm9pZCBpbnRlbF9wc3JfZW5h YmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ICAJCWdvdG8gdW5sb2NrOwo+ID4g PiAgCX0KPiA+ID4gIAo+ID4gPiAtCWlmICghaW50ZWxfcHNyX21hdGNoX2NvbmRpdGlvbnMoaW50 ZWxfZHApKQo+ID4gPiAtCQlnb3RvIHVubG9jazsKPiA+ID4gKwlkZXZfcHJpdi0+cHNyLnBzcjJf c3VwcG9ydCA9IGNydGNfc3RhdGUtPmhhc19wc3IyOwo+ID4gPiArCWRldl9wcml2LT5wc3Iuc291 cmNlX29rID0gdHJ1ZTsKPiA+ID4gIAo+ID4gPiAgCWRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1 ZmZlcl9iaXRzID0gMDsKPiA+ID4gIAo+ID4gPiBAQCAtNjY4LDcgKzY3Myw3IEBAIHZvaWQgaW50 ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4gPiA+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gPiAg Cj4gPiA+IC0JaWYgKCFIQVNfUFNSKGRldl9wcml2KSkKPiA+ID4gKwlpZiAoIW9sZF9jcnRjX3N0 YXRlLT5oYXNfcHNyKQo+ID4gPiAgCQlyZXR1cm47Cj4gPiA+ICAKPiA+ID4gIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ID4gCj4gPiAtLSAKPiA+IEphbmkgTmlrdWxhLCBJbnRl bCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRl bCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==