From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Start tracking PSR state in crtc state Date: Thu, 12 Oct 2017 15:30:12 +0300 Message-ID: <87infkmtuz.fsf@intel.com> References: <20171012100920.29823-1-ville.syrjala@linux.intel.com> <87r2u8myxq.fsf@intel.com> <20171012122346.GF10981@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 E623C6E7FA for ; Thu, 12 Oct 2017 12:30:30 +0000 (UTC) In-Reply-To: <20171012122346.GF10981@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxMiBPY3QgMjAxNywgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVGh1LCBPY3QgMTIsIDIwMTcgYXQgMDE6NDA6MzNQTSAr MDMwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IE9uIFRodSwgMTIgT2N0IDIwMTcsIFZpbGxlIFN5 cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPj4gPiBGcm9tOiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiA+Cj4+ID4g QWRkIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBQU1IgdHJhY2tpbmcgaW50byB0aGUgY3J0YyBzdGF0 ZS4gVGhpcyBhbGxvd3MKPj4gPiBwcmVjb21wdXRpbmcgdGhlIHBvc3NpYmlsaXR5IG9mIHVzaW5n IFBTUiBjb3JyZWN0bHksIGFuZCBpdCBtZWFucyB3ZSBjYW4KPj4gPiBzYWZlbHkgY2FsbCB0aGUg cHNyIGVuYWJsZS9kaXNhYmxlIGZ1bmN0aW9ucyBmb3IgYW55IERQIGVuZGNvZGVyLgo+PiA+Cj4+ ID4gQXMgYSBuaWNlIGJvbnVzIHdlIGdldCByaWQgb2Ygc29tZSBtb3JlIGNydGMtPmNvbmZpZyB1 c2FnZSwgd2hpY2ggd2UKPj4gPiB3YW50IHRvIGtpbGwgb2ZmIGV2ZW50dWFsbHkuCj4+ID4KPj4g PiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+PiA+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgIDIgKwo+PiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICA1ICsrKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wc3IuYyB8IDg0ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0KPj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMo LSkKPj4gPgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiA+IGluZGV4IGIwZjQ0NmI2OGY0 Mi4uNzUzNDA0MjgwYTE5IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ID4g QEAgLTE4MzIsNiArMTgzMiw4IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+PiA+ICAJaWYgKCFIQVNfRERJKGRldl9wcml2KSkKPj4gPiAg CQlpbnRlbF9kcF9zZXRfY2xvY2soZW5jb2RlciwgcGlwZV9jb25maWcpOwo+PiA+ICAKPj4gPiAr CWludGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhpbnRlbF9kcCwgcGlwZV9jb25maWcpOwo+PiA+ICsK Pj4gPiAgCXJldHVybiB0cnVlOwo+PiA+ICB9Cj4+ID4gIAo+PiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4+ID4gaW5kZXggYjg3OTQ2ZGNjNTNmLi5kNjE5ODVmOTNkNDAgMTAwNjQ0Cj4+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+IEBAIC03MTgsNiArNzE4LDkgQEAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgewo+PiA+ICAJc3RydWN0IGludGVsX2xpbmtfbV9uIGRwX20yX24y Owo+PiA+ICAJYm9vbCBoYXNfZHJyczsKPj4gPiAgCj4+ID4gKwlib29sIGhhc19wc3I7Cj4+ID4g Kwlib29sIGhhc19wc3IyOwo+PiA+ICsKPj4gPiAgCS8qCj4+ID4gIAkgKiBGcmVxdWVuY2UgdGhl IGRwbGwgZm9yIHRoZSBwb3J0IHNob3VsZCBydW4gYXQuIERpZmZlcnMgZnJvbSB0aGUKPj4gPiAg CSAqIGFkanVzdGVkIGRvdGNsb2NrIGUuZy4gZm9yIERQIG9yIDEyYnBjIGhkbWkgbW9kZS4gVGhp cyBpcyBhbHNvCj4+ID4gQEAgLTE3NjQsNiArMTc2Nyw4IEBAIHZvaWQgaW50ZWxfcHNyX2ZsdXNo KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gPiAgdm9pZCBpbnRlbF9wc3Jf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiA+ICB2b2lkIGludGVs X3Bzcl9zaW5nbGVfZnJhbWVfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPj4gPiAgCQkJCSAgIHVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMpOwo+PiA+ICt2b2lkIGlu dGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+PiA+ICsJ CQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+ID4gIAo+PiA+ ICAvKiBpbnRlbF9ydW50aW1lX3BtLmMgKi8KPj4gPiAgaW50IGludGVsX3Bvd2VyX2RvbWFpbnNf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKTsKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w c3IuYwo+PiA+IGluZGV4IDU0MTljZGE4M2JhOC4uZjYxNDlhZjM5ZjAyIDEwMDY0NAo+PiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPj4gPiBAQCAtMzc2LDIyICszNzYsMjUgQEAgc3RhdGlj IHZvaWQgaHN3X3Bzcl9hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiA+ICAJ CWhzd19hY3RpdmF0ZV9wc3IxKGludGVsX2RwKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAtc3RhdGlj IGJvb2wgaW50ZWxfcHNyX21hdGNoX2NvbmRpdGlvbnMoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPj4gPiArdm9pZCBpbnRlbF9wc3JfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPj4gPiArCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4+ID4gIHsKPj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+PiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+PiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+PiA+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0g ZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjOwo+PiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4+ID4gIAlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4+ID4gLQkJJmlu dGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+PiA+ICsJCSZjcnRjX3N0YXRl LT5iYXNlLmFkanVzdGVkX21vZGU7Cj4+ID4gIAlpbnQgcHNyX3NldHVwX3RpbWU7Cj4+ID4gIAo+ PiA+IC0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBzci5sb2NrKTsKPj4gPiAtCVdB Uk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9u X211dGV4KSk7Cj4+ID4gLQlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmNydGMtPm11 dGV4KSk7Cj4+ID4gKwlpZiAoIUhBU19QU1IoZGV2X3ByaXYpKQo+PiA+ICsJCXJldHVybjsKPj4g PiAgCj4+ID4gLQlkZXZfcHJpdi0+cHNyLnNvdXJjZV9vayA9IGZhbHNlOwo+PiA+ICsJaWYgKCFp c19lZHBfcHNyKGludGVsX2RwKSkKPj4gCj4+IEkgZ3Vlc3MgSSdkIGxpa2UgYW4gaW50ZWxfZHBf aXNfZWRwKCkgY2hlY2sgaGVyZSBvciB3aXRoaW4gaXNfZWRwX3BzcigpCj4+IGJlZm9yZSB0b3Vj aGluZyBpbnRlbF9kcC0+cHNyX2RwY2QuCj4KPiBIbW0uIEkgZ3Vlc3MganVzdCBzdHVmZmluZyBp dCBpbnRvIGlzX2VkcF9wc3IoKSB3b3VsZCBiZSBhIGRlY2VudCBpZGVhLgo+Cj4+IAo+PiA+ICsJ CXJldHVybjsKPj4gPiArCj4+ID4gKwlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IpIHsK Pj4gPiArCQlEUk1fREVCVUdfS01TKCJQU1IgZGlzYWJsZSBieSBmbGFnXG4iKTsKPj4gPiArCQly ZXR1cm47Cj4+ID4gKwl9Cj4+ID4gIAo+PiA+ICAJLyoKPj4gPiAgCSAqIEhTVyBzcGVjIGV4cGxp Y2l0bHkgc2F5cyBQU1IgaXMgdGllZCB0byBwb3J0IEEuCj4+ID4gQEAgLTQwMiw2NiArNDA1LDcw IEBAIHN0YXRpYyBib29sIGludGVsX3Bzcl9tYXRjaF9jb25kaXRpb25zKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4+ID4gIAkgKi8KPj4gPiAgCWlmIChIQVNfRERJKGRldl9wcml2KSAmJiBk aWdfcG9ydC0+cG9ydCAhPSBQT1JUX0EpIHsKPj4gPiAgCQlEUk1fREVCVUdfS01TKCJQU1IgY29u ZGl0aW9uIGZhaWxlZDogUG9ydCBub3Qgc3VwcG9ydGVkXG4iKTsKPj4gPiAtCQlyZXR1cm4gZmFs c2U7Cj4+ID4gLQl9Cj4+ID4gLQo+PiA+IC0JaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfcHNy KSB7Cj4+ID4gLQkJRFJNX0RFQlVHX0tNUygiUFNSIGRpc2FibGUgYnkgZmxhZ1xuIik7Cj4+ID4g LQkJcmV0dXJuIGZhbHNlOwo+PiA+ICsJCXJldHVybjsKPj4gPiAgCX0KPj4gPiAgCj4+ID4gIAlp ZiAoKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSAm Jgo+PiA+ICAJICAgICFkZXZfcHJpdi0+cHNyLmxpbmtfc3RhbmRieSkgewo+PiA+ICAJCURSTV9F UlJPUigiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6IExpbmsgb2ZmIHJlcXVlc3RlZCBidXQgbm90IHN1 cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtXG4iKTsKPj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4+ID4g KwkJcmV0dXJuOwo+PiA+ICAJfQo+PiA+ICAKPj4gPiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2 KSAmJgo+PiA+IC0JICAgIEk5MTVfUkVBRChIU1dfU1RFUkVPXzNEX0NUTChpbnRlbF9jcnRjLT5j b25maWctPmNwdV90cmFuc2NvZGVyKSkgJgo+PiA+ICsJICAgIEk5MTVfUkVBRChIU1dfU1RFUkVP XzNEX0NUTChjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcikpICYKPj4gPiAgCQkgICAgICBTM0Rf RU5BQkxFKSB7Cj4+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6IFN0 ZXJlbyAzRCBpcyBFbmFibGVkXG4iKTsKPj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4+ID4gKwkJcmV0 dXJuOwo+PiA+ICAJfQo+PiA+ICAKPj4gPiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJgo+ PiA+ICAJICAgIGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0Up IHsKPj4gPiAgCQlEUk1fREVCVUdfS01TKCJQU1IgY29uZGl0aW9uIGZhaWxlZDogSW50ZXJsYWNl ZCBpcyBFbmFibGVkXG4iKTsKPj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4+ID4gKwkJcmV0dXJuOwo+ PiA+ICAJfQo+PiA+ICAKPj4gPiAgCXBzcl9zZXR1cF90aW1lID0gZHJtX2RwX3Bzcl9zZXR1cF90 aW1lKGludGVsX2RwLT5wc3JfZHBjZCk7Cj4+ID4gIAlpZiAocHNyX3NldHVwX3RpbWUgPCAwKSB7 Cj4+ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6IEludmFsaWQgUFNS IHNldHVwIHRpbWUgKDB4JTAyeClcbiIsCj4+ID4gIAkJCSAgICAgIGludGVsX2RwLT5wc3JfZHBj ZFsxXSk7Cj4+ID4gLQkJcmV0dXJuIGZhbHNlOwo+PiA+ICsJCXJldHVybjsKPj4gPiAgCX0KPj4g PiAgCj4+ID4gIAlpZiAoaW50ZWxfdXNlY3NfdG9fc2NhbmxpbmVzKGFkanVzdGVkX21vZGUsIHBz cl9zZXR1cF90aW1lKSA+Cj4+ID4gIAkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y192dG90YWwgLSBh ZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5IC0gMSkgewo+PiA+ICAJCURSTV9ERUJVR19LTVMo IlBTUiBjb25kaXRpb24gZmFpbGVkOiBQU1Igc2V0dXAgdGltZSAoJWQgdXMpIHRvbyBsb25nXG4i LAo+PiA+ICAJCQkgICAgICBwc3Jfc2V0dXBfdGltZSk7Cj4+ID4gLQkJcmV0dXJuIGZhbHNlOwo+ PiA+ICsJCXJldHVybjsKPj4gPiArCX0KPj4gPiArCj4+ID4gKwkvKgo+PiA+ICsJICogRklYTUUg cHNyMl9zdXBwb3J0IGlzIG1lc3NlZCB1cC4gSXQncyBib3RoIGNvbXB1dGVkCj4+ID4gKwkgKiBk eW5hbWljYWxseSBkdXJpbmcgUFNSIGVuYWJsZSwgYW5kIGV4dHJhY3RlZCBmcm9tIHNpbmsKPj4g PiArCSAqIGNhcHMgZHVyaW5nIGVEUCBkZXRlY3Rpb24uCj4+ID4gKwkgKi8KPj4gCj4+IEFncmVl ZCwgeXVjay4KPj4gCj4+ID4gKwlpZiAoIWRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KSB7Cj4+ ID4gKwkJY3J0Y19zdGF0ZS0+aGFzX3BzciA9IHRydWU7Cj4+ID4gKwkJcmV0dXJuOwo+PiA+ICAJ fQo+PiA+ICAKPj4gPiAgCS8qIFBTUjIgaXMgcmVzdHJpY3RlZCB0byB3b3JrIHdpdGggcGFuZWwg cmVzb2x1dGlvbnMgdXB0byAzMjAweDIwMDAgKi8KPj4gPiAtCWlmIChkZXZfcHJpdi0+cHNyLnBz cjJfc3VwcG9ydCAmJgo+PiA+IC0JICAgIChpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3cg PiAzMjAwIHx8Cj4+ID4gLQkgICAgIGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfaCA+IDIw MDApKSB7Cj4+ID4gLQkJZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQgPSBmYWxzZTsKPj4gPiAt CQlyZXR1cm4gZmFsc2U7Cj4+ID4gKwlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSA+ IDMyMDAgfHwKPj4gPiArCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5ID4gMjAwMCkg ewo+PiA+ICsJCURSTV9ERUJVR19LTVMoIlBTUjIgZGlzYWJsZWQsIHBhbmVsIHJlc29sdXRpb24g dG9vIGJpZ1xuIik7Cj4+IAo+PiBUaGlzIGJyYW5jaCBkb2Vzbid0IHNldCBoYXNfcHNyID0gdHJ1 ZSwgc2hvdWxkbid0IGl0Pwo+Cj4gVGhlIG9yaWdpbmFsIGRpZG4ndCBzZXQgZGV2X3ByaXYtPnBz ci5zb3VyY2Vfb2s9dHJ1ZSB1bnRpbCB0aGUgdmVyeSBlbmQuCj4gU28gSSBndWVzcyB0aGUgbG9n aWMgaGVyZSBpcyAoZm9yIHdoYXRldmVyIHJlYXNvbikgdG8gZGlzYWJsZSBQU1IgZW50aXJlbHkK PiBpZiB0aGUgc2luayBjYW4gZG8gUFNSMiBidXQgdGhlIHNvdXJjZSBjYW4ndC4gSSBqdXN0IHRy aWVkIHRvIHByZXNlcnZlCj4gdGhhdCBiZWhhdmlvdXIuCgpBY2sgb24gcHJlc2VydmluZyB0aGUg YmVoYXZpb3VyLgoKQlIsCkphbmkuCgo+Cj4+IE1heWJlIG1vdmUgdGhhdAo+PiBiZWZvcmUgdGhl IGlmICghZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpIGNvbmRpdGlvbiBmcm9tIHdpdGhpbiB0 aGUKPj4gYmxvY2s/Cj4+IAo+PiA+ICsJCXJldHVybjsKPj4gPiAgCX0KPj4gPiAgCj4+ID4gIAkv Kgo+PiA+ICAJICogRklYTUU6ZW5hYmxlIHBzcjIgb25seSBmb3IgeS1jb3JkaW5hdGUgcHNyMiBw YW5lbHMKPj4gPiAgCSAqIEFmdGVyIGd0YyBpbXBsZW1lbnRhdGlvbiAsIHJlbW92ZSB0aGlzIHJl c3RyaWN0aW9uLgo+PiA+ICAJICovCj4+ID4gLQlpZiAoIWRldl9wcml2LT5wc3IueV9jb3JkX3N1 cHBvcnQgJiYgIGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KSB7Cj4+ID4gKwlpZiAoIWRldl9w cml2LT5wc3IueV9jb3JkX3N1cHBvcnQpIHsKPj4gPiAgCQlEUk1fREVCVUdfS01TKCJQU1IyIGRp c2FibGVkLCBwYW5lbCBkb2VzIG5vdCBzdXBwb3J0IFkgY29vcmRpbmF0ZVxuIik7Cj4+ID4gLQkJ cmV0dXJuIGZhbHNlOwo+PiA+ICsJCXJldHVybjsKPj4gPiAgCX0KPj4gPiAgCj4+ID4gLQlkZXZf cHJpdi0+cHNyLnNvdXJjZV9vayA9IHRydWU7Cj4+ID4gLQlyZXR1cm4gdHJ1ZTsKPj4gPiArCWNy dGNfc3RhdGUtPmhhc19wc3IgPSB0cnVlOwo+PiA+ICsJY3J0Y19zdGF0ZS0+aGFzX3BzcjIgPSB0 cnVlOwo+PiA+ICB9Cj4+ID4gIAo+PiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfYWN0aXZhdGUo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gPiBAQCAtNTMxLDEzICs1MzgsOCBAQCB2b2lk IGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPj4gPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPj4gPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4gPiAg Cj4+ID4gLQlpZiAoIUhBU19QU1IoZGV2X3ByaXYpKQo+PiA+IC0JCXJldHVybjsKPj4gPiAtCj4+ ID4gLQlpZiAoIWlzX2VkcF9wc3IoaW50ZWxfZHApKSB7Cj4+ID4gLQkJRFJNX0RFQlVHX0tNUygi UFNSIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwYW5lbFxuIik7Cj4+ID4gLQkJcmV0dXJuOwo+PiA+ IC0JfQo+PiA+ICsJaWYgKCFjcnRjX3N0YXRlLT5oYXNfcHNyKQo+PiA+ICsJCWdvdG8gdW5sb2Nr Owo+PiAKPj4gSXQncyBub3QgbG9ja2VkIHlldC4uLgo+Cj4gRG9oLiBXaWxsIGZpeC4KPgo+PiAK Pj4gQlIsCj4+IEphbmkuCj4+IAo+PiA+ICAKPj4gPiAgCVdBUk5fT04oZGV2X3ByaXYtPmRycnMu ZHApOwo+PiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPj4gPiBAQCAtNTQ2 LDggKzU0OCw4IEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+PiA+ICAJCWdvdG8gdW5sb2NrOwo+PiA+ICAJfQo+PiA+ICAKPj4gPiAtCWlmICghaW50 ZWxfcHNyX21hdGNoX2NvbmRpdGlvbnMoaW50ZWxfZHApKQo+PiA+IC0JCWdvdG8gdW5sb2NrOwo+ PiA+ICsJZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQgPSBjcnRjX3N0YXRlLT5oYXNfcHNyMjsK Pj4gPiArCWRldl9wcml2LT5wc3Iuc291cmNlX29rID0gdHJ1ZTsKPj4gPiAgCj4+ID4gIAlkZXZf cHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyA9IDA7Cj4+ID4gIAo+PiA+IEBAIC02Njgs NyArNjcwLDcgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+PiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNl LmJhc2UuZGV2Owo+PiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwo+PiA+ICAKPj4gPiAtCWlmICghSEFTX1BTUihkZXZfcHJpdikpCj4+ID4gKwlp ZiAoIW9sZF9jcnRjX3N0YXRlLT5oYXNfcHNyKQo+PiA+ICAJCXJldHVybjsKPj4gPiAgCj4+ID4g IAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+PiAKPj4gLS0gCj4+IEphbmkgTmlr dWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0gCkphbmkgTmlrdWxh LCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK