From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Start tracking PSR state in crtc state Date: Thu, 12 Oct 2017 15:23:46 +0300 Message-ID: <20171012122346.GF10981@intel.com> References: <20171012100920.29823-1-ville.syrjala@linux.intel.com> <87r2u8myxq.fsf@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 ESMTPS id 055B26E2EE for ; Thu, 12 Oct 2017 12:23:51 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87r2u8myxq.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMTIsIDIwMTcgYXQgMDE6NDA6MzNQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVGh1LCAxMiBPY3QgMjAxNywgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+Cj4gPiBBZGQgdGhlIG1pbmltYWwgYW1vdW50IG9m IFBTUiB0cmFja2luZyBpbnRvIHRoZSBjcnRjIHN0YXRlLiBUaGlzIGFsbG93cwo+ID4gcHJlY29t cHV0aW5nIHRoZSBwb3NzaWJpbGl0eSBvZiB1c2luZyBQU1IgY29ycmVjdGx5LCBhbmQgaXQgbWVh bnMgd2UgY2FuCj4gPiBzYWZlbHkgY2FsbCB0aGUgcHNyIGVuYWJsZS9kaXNhYmxlIGZ1bmN0aW9u cyBmb3IgYW55IERQIGVuZGNvZGVyLgo+ID4KPiA+IEFzIGEgbmljZSBib251cyB3ZSBnZXQgcmlk IG9mIHNvbWUgbW9yZSBjcnRjLT5jb25maWcgdXNhZ2UsIHdoaWNoIHdlCj4gPiB3YW50IHRvIGtp bGwgb2ZmIGV2ZW50dWFsbHkuCj4gPgo+ID4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwg IDIgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwgIDUgKysrCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgfCA4NCArKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25z KCspLCA0MSBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGlu ZGV4IGIwZjQ0NmI2OGY0Mi4uNzUzNDA0MjgwYTE5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ID4gQEAgLTE4MzIsNiArMTgzMiw4IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAlpZiAoIUhBU19EREkoZGV2X3By aXYpKQo+ID4gIAkJaW50ZWxfZHBfc2V0X2Nsb2NrKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiA+ ICAKPiA+ICsJaW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZyk7 Cj4gPiArCj4gPiAgCXJldHVybiB0cnVlOwo+ID4gIH0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiBpbmRleCBiODc5NDZkY2M1M2YuLmQ2MTk4NWY5M2Q0MCAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTcxOCw2ICs3MTgsOSBAQCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPiAgCXN0cnVjdCBpbnRlbF9saW5rX21fbiBkcF9tMl9uMjsK PiA+ICAJYm9vbCBoYXNfZHJyczsKPiA+ICAKPiA+ICsJYm9vbCBoYXNfcHNyOwo+ID4gKwlib29s IGhhc19wc3IyOwo+ID4gKwo+ID4gIAkvKgo+ID4gIAkgKiBGcmVxdWVuY2UgdGhlIGRwbGwgZm9y IHRoZSBwb3J0IHNob3VsZCBydW4gYXQuIERpZmZlcnMgZnJvbSB0aGUKPiA+ICAJICogYWRqdXN0 ZWQgZG90Y2xvY2sgZS5nLiBmb3IgRFAgb3IgMTJicGMgaGRtaSBtb2RlLiBUaGlzIGlzIGFsc28K PiA+IEBAIC0xNzY0LDYgKzE3NjcsOCBAQCB2b2lkIGludGVsX3Bzcl9mbHVzaChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgdm9pZCBpbnRlbF9wc3JfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gIHZvaWQgaW50ZWxfcHNyX3NpbmdsZV9m cmFtZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJCQkg ICB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiA+ICt2b2lkIGludGVsX3Bzcl9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gKwkJCSAgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiA+ICAKPiA+ICAvKiBpbnRlbF9ydW50aW1l X3BtLmMgKi8KPiA+ICBpbnQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICopOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+IGluZGV4IDU0MTlj ZGE4M2JhOC4uZjYxNDlhZjM5ZjAyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcHNyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5j Cj4gPiBAQCAtMzc2LDIyICszNzYsMjUgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9hY3RpdmF0ZShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAkJaHN3X2FjdGl2YXRlX3BzcjEoaW50ZWxf ZHApOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgYm9vbCBpbnRlbF9wc3JfbWF0Y2hfY29uZGl0 aW9ucyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gK3ZvaWQgaW50ZWxfcHNyX2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiArCQkJICAgICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiAtCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRpZ19wb3J0LT5iYXNlLmJhc2UuY3J0YzsKPiA+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNl LmJhc2UuZGV2KTsKPiA+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPQo+ID4gLQkJJmludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ ID4gKwkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ICAJaW50IHBzcl9zZXR1 cF90aW1lOwo+ID4gIAo+ID4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHNyLmxv Y2spOwo+ID4gLQlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmRldi0+bW9kZV9jb25m aWcuY29ubmVjdGlvbl9tdXRleCkpOwo+ID4gLQlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2Nr ZWQoJmNydGMtPm11dGV4KSk7Cj4gPiArCWlmICghSEFTX1BTUihkZXZfcHJpdikpCj4gPiArCQly ZXR1cm47Cj4gPiAgCj4gPiAtCWRldl9wcml2LT5wc3Iuc291cmNlX29rID0gZmFsc2U7Cj4gPiAr CWlmICghaXNfZWRwX3BzcihpbnRlbF9kcCkpCj4gCj4gSSBndWVzcyBJJ2QgbGlrZSBhbiBpbnRl bF9kcF9pc19lZHAoKSBjaGVjayBoZXJlIG9yIHdpdGhpbiBpc19lZHBfcHNyKCkKPiBiZWZvcmUg dG91Y2hpbmcgaW50ZWxfZHAtPnBzcl9kcGNkLgoKSG1tLiBJIGd1ZXNzIGp1c3Qgc3R1ZmZpbmcg aXQgaW50byBpc19lZHBfcHNyKCkgd291bGQgYmUgYSBkZWNlbnQgaWRlYS4KCj4gCj4gPiArCQly ZXR1cm47Cj4gPiArCj4gPiArCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxlX3Bzcikgewo+ID4g KwkJRFJNX0RFQlVHX0tNUygiUFNSIGRpc2FibGUgYnkgZmxhZ1xuIik7Cj4gPiArCQlyZXR1cm47 Cj4gPiArCX0KPiA+ICAKPiA+ICAJLyoKPiA+ICAJICogSFNXIHNwZWMgZXhwbGljaXRseSBzYXlz IFBTUiBpcyB0aWVkIHRvIHBvcnQgQS4KPiA+IEBAIC00MDIsNjYgKzQwNSw3MCBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9wc3JfbWF0Y2hfY29uZGl0aW9ucyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gIAkgKi8KPiA+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpICYmIGRpZ19wb3J0LT5wb3J0 ICE9IFBPUlRfQSkgewo+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6 IFBvcnQgbm90IHN1cHBvcnRlZFxuIik7Cj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4gPiAtCX0KPiA+ IC0KPiA+IC0JaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfcHNyKSB7Cj4gPiAtCQlEUk1fREVC VUdfS01TKCJQU1IgZGlzYWJsZSBieSBmbGFnXG4iKTsKPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ ICsJCXJldHVybjsKPiA+ICAJfQo+ID4gIAo+ID4gIAlpZiAoKElTX1ZBTExFWVZJRVcoZGV2X3By aXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSAmJgo+ID4gIAkgICAgIWRldl9wcml2LT5w c3IubGlua19zdGFuZGJ5KSB7Cj4gPiAgCQlEUk1fRVJST1IoIlBTUiBjb25kaXRpb24gZmFpbGVk OiBMaW5rIG9mZiByZXF1ZXN0ZWQgYnV0IG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybVxu Iik7Cj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4gPiArCQlyZXR1cm47Cj4gPiAgCX0KPiA+ICAKPiA+ ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpICYmCj4gPiAtCSAgICBJOTE1X1JFQUQoSFNXX1NU RVJFT18zRF9DVEwoaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlcikpICYKPiA+ICsJ ICAgIEk5MTVfUkVBRChIU1dfU1RFUkVPXzNEX0NUTChjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rl cikpICYKPiA+ICAJCSAgICAgIFMzRF9FTkFCTEUpIHsKPiA+ICAJCURSTV9ERUJVR19LTVMoIlBT UiBjb25kaXRpb24gZmFpbGVkOiBTdGVyZW8gM0QgaXMgRW5hYmxlZFxuIik7Cj4gPiAtCQlyZXR1 cm4gZmFsc2U7Cj4gPiArCQlyZXR1cm47Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaWYgKElTX0hBU1dF TEwoZGV2X3ByaXYpICYmCj4gPiAgCSAgICBhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RF X0ZMQUdfSU5URVJMQUNFKSB7Cj4gPiAgCQlEUk1fREVCVUdfS01TKCJQU1IgY29uZGl0aW9uIGZh aWxlZDogSW50ZXJsYWNlZCBpcyBFbmFibGVkXG4iKTsKPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ ICsJCXJldHVybjsKPiA+ICAJfQo+ID4gIAo+ID4gIAlwc3Jfc2V0dXBfdGltZSA9IGRybV9kcF9w c3Jfc2V0dXBfdGltZShpbnRlbF9kcC0+cHNyX2RwY2QpOwo+ID4gIAlpZiAocHNyX3NldHVwX3Rp bWUgPCAwKSB7Cj4gPiAgCQlEUk1fREVCVUdfS01TKCJQU1IgY29uZGl0aW9uIGZhaWxlZDogSW52 YWxpZCBQU1Igc2V0dXAgdGltZSAoMHglMDJ4KVxuIiwKPiA+ICAJCQkgICAgICBpbnRlbF9kcC0+ cHNyX2RwY2RbMV0pOwo+ID4gLQkJcmV0dXJuIGZhbHNlOwo+ID4gKwkJcmV0dXJuOwo+ID4gIAl9 Cj4gPiAgCj4gPiAgCWlmIChpbnRlbF91c2Vjc190b19zY2FubGluZXMoYWRqdXN0ZWRfbW9kZSwg cHNyX3NldHVwX3RpbWUpID4KPiA+ICAJICAgIGFkanVzdGVkX21vZGUtPmNydGNfdnRvdGFsIC0g YWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSAtIDEpIHsKPiA+ICAJCURSTV9ERUJVR19LTVMo IlBTUiBjb25kaXRpb24gZmFpbGVkOiBQU1Igc2V0dXAgdGltZSAoJWQgdXMpIHRvbyBsb25nXG4i LAo+ID4gIAkJCSAgICAgIHBzcl9zZXR1cF90aW1lKTsKPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBGSVhNRSBwc3IyX3N1 cHBvcnQgaXMgbWVzc2VkIHVwLiBJdCdzIGJvdGggY29tcHV0ZWQKPiA+ICsJICogZHluYW1pY2Fs bHkgZHVyaW5nIFBTUiBlbmFibGUsIGFuZCBleHRyYWN0ZWQgZnJvbSBzaW5rCj4gPiArCSAqIGNh cHMgZHVyaW5nIGVEUCBkZXRlY3Rpb24uCj4gPiArCSAqLwo+IAo+IEFncmVlZCwgeXVjay4KPiAK PiA+ICsJaWYgKCFkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkgewo+ID4gKwkJY3J0Y19zdGF0 ZS0+aGFzX3BzciA9IHRydWU7Cj4gPiArCQlyZXR1cm47Cj4gPiAgCX0KPiA+ICAKPiA+ICAJLyog UFNSMiBpcyByZXN0cmljdGVkIHRvIHdvcmsgd2l0aCBwYW5lbCByZXNvbHV0aW9ucyB1cHRvIDMy MDB4MjAwMCAqLwo+ID4gLQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQgJiYKPiA+IC0J ICAgIChpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3cgPiAzMjAwIHx8Cj4gPiAtCSAgICAg aW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oID4gMjAwMCkpIHsKPiA+IC0JCWRldl9wcml2 LT5wc3IucHNyMl9zdXBwb3J0ID0gZmFsc2U7Cj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4gPiArCWlm IChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ID4gMzIwMCB8fAo+ID4gKwkgICAgYWRqdXN0 ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSA+IDIwMDApIHsKPiA+ICsJCURSTV9ERUJVR19LTVMoIlBT UjIgZGlzYWJsZWQsIHBhbmVsIHJlc29sdXRpb24gdG9vIGJpZ1xuIik7Cj4gCj4gVGhpcyBicmFu Y2ggZG9lc24ndCBzZXQgaGFzX3BzciA9IHRydWUsIHNob3VsZG4ndCBpdD8KClRoZSBvcmlnaW5h bCBkaWRuJ3Qgc2V0IGRldl9wcml2LT5wc3Iuc291cmNlX29rPXRydWUgdW50aWwgdGhlIHZlcnkg ZW5kLgpTbyBJIGd1ZXNzIHRoZSBsb2dpYyBoZXJlIGlzIChmb3Igd2hhdGV2ZXIgcmVhc29uKSB0 byBkaXNhYmxlIFBTUiBlbnRpcmVseQppZiB0aGUgc2luayBjYW4gZG8gUFNSMiBidXQgdGhlIHNv dXJjZSBjYW4ndC4gSSBqdXN0IHRyaWVkIHRvIHByZXNlcnZlCnRoYXQgYmVoYXZpb3VyLgoKPiBN YXliZSBtb3ZlIHRoYXQKPiBiZWZvcmUgdGhlIGlmICghZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBv cnQpIGNvbmRpdGlvbiBmcm9tIHdpdGhpbiB0aGUKPiBibG9jaz8KPiAKPiA+ICsJCXJldHVybjsK PiA+ICAJfQo+ID4gIAo+ID4gIAkvKgo+ID4gIAkgKiBGSVhNRTplbmFibGUgcHNyMiBvbmx5IGZv ciB5LWNvcmRpbmF0ZSBwc3IyIHBhbmVscwo+ID4gIAkgKiBBZnRlciBndGMgaW1wbGVtZW50YXRp b24gLCByZW1vdmUgdGhpcyByZXN0cmljdGlvbi4KPiA+ICAJICovCj4gPiAtCWlmICghZGV2X3By aXYtPnBzci55X2NvcmRfc3VwcG9ydCAmJiAgZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpIHsK PiA+ICsJaWYgKCFkZXZfcHJpdi0+cHNyLnlfY29yZF9zdXBwb3J0KSB7Cj4gPiAgCQlEUk1fREVC VUdfS01TKCJQU1IyIGRpc2FibGVkLCBwYW5lbCBkb2VzIG5vdCBzdXBwb3J0IFkgY29vcmRpbmF0 ZVxuIik7Cj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4gPiArCQlyZXR1cm47Cj4gPiAgCX0KPiA+ICAK PiA+IC0JZGV2X3ByaXYtPnBzci5zb3VyY2Vfb2sgPSB0cnVlOwo+ID4gLQlyZXR1cm4gdHJ1ZTsK PiA+ICsJY3J0Y19zdGF0ZS0+aGFzX3BzciA9IHRydWU7Cj4gPiArCWNydGNfc3RhdGUtPmhhc19w c3IyID0gdHJ1ZTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2FjdGl2 YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiBAQCAtNTMxLDEzICs1MzgsOCBAQCB2 b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiAg Cj4gPiAtCWlmICghSEFTX1BTUihkZXZfcHJpdikpCj4gPiAtCQlyZXR1cm47Cj4gPiAtCj4gPiAt CWlmICghaXNfZWRwX3BzcihpbnRlbF9kcCkpIHsKPiA+IC0JCURSTV9ERUJVR19LTVMoIlBTUiBu b3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGFuZWxcbiIpOwo+ID4gLQkJcmV0dXJuOwo+ID4gLQl9Cj4g PiArCWlmICghY3J0Y19zdGF0ZS0+aGFzX3BzcikKPiA+ICsJCWdvdG8gdW5sb2NrOwo+IAo+IEl0 J3Mgbm90IGxvY2tlZCB5ZXQuLi4KCkRvaC4gV2lsbCBmaXguCgo+IAo+IEJSLAo+IEphbmkuCj4g Cj4gPiAgCj4gPiAgCVdBUk5fT04oZGV2X3ByaXYtPmRycnMuZHApOwo+ID4gIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ID4gQEAgLTU0Niw4ICs1NDgsOCBAQCB2b2lkIGludGVs X3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCWdvdG8gdW5sb2Nr Owo+ID4gIAl9Cj4gPiAgCj4gPiAtCWlmICghaW50ZWxfcHNyX21hdGNoX2NvbmRpdGlvbnMoaW50 ZWxfZHApKQo+ID4gLQkJZ290byB1bmxvY2s7Cj4gPiArCWRldl9wcml2LT5wc3IucHNyMl9zdXBw b3J0ID0gY3J0Y19zdGF0ZS0+aGFzX3BzcjI7Cj4gPiArCWRldl9wcml2LT5wc3Iuc291cmNlX29r ID0gdHJ1ZTsKPiA+ICAKPiA+ICAJZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMg PSAwOwo+ID4gIAo+ID4gQEAgLTY2OCw3ICs2NzAsNyBAQCB2b2lkIGludGVsX3Bzcl9kaXNhYmxl KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gIAo+ID4gLQlpZiAoIUhBU19QU1Io ZGV2X3ByaXYpKQo+ID4gKwlpZiAoIW9sZF9jcnRjX3N0YXRlLT5oYXNfcHNyKQo+ID4gIAkJcmV0 dXJuOwo+ID4gIAo+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+IAo+IC0t IAo+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0g ClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==