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 13:40:33 +0300 Message-ID: <87r2u8myxq.fsf@intel.com> References: <20171012100920.29823-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 24A756E2B5 for ; Thu, 12 Oct 2017 10:40:51 +0000 (UTC) In-Reply-To: <20171012100920.29823-1-ville.syrjala@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: Ville Syrjala , intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxMiBPY3QgMjAxNywgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBBZGQgdGhlIG1pbmltYWwgYW1vdW50IG9mIFBTUiB0cmFja2lu ZyBpbnRvIHRoZSBjcnRjIHN0YXRlLiBUaGlzIGFsbG93cwo+IHByZWNvbXB1dGluZyB0aGUgcG9z c2liaWxpdHkgb2YgdXNpbmcgUFNSIGNvcnJlY3RseSwgYW5kIGl0IG1lYW5zIHdlIGNhbgo+IHNh ZmVseSBjYWxsIHRoZSBwc3IgZW5hYmxlL2Rpc2FibGUgZnVuY3Rpb25zIGZvciBhbnkgRFAgZW5k Y29kZXIuCj4KPiBBcyBhIG5pY2UgYm9udXMgd2UgZ2V0IHJpZCBvZiBzb21lIG1vcmUgY3J0Yy0+ Y29uZmlnIHVzYWdlLCB3aGljaCB3ZQo+IHdhbnQgdG8ga2lsbCBvZmYgZXZlbnR1YWxseS4KPgo+ IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gQ2M6IEphbmkgTmlr dWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyAgfCAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIHwgIDUgKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIHwgODQg KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAzIGZpbGVzIGNoYW5n ZWQsIDUwIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCj4gaW5kZXggYjBmNDQ2YjY4ZjQyLi43NTM0MDQyODBhMTkgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiBAQCAtMTgzMiw2ICsxODMyLDggQEAgaW50ZWxfZHBfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpZiAoIUhBU19EREkoZGV2 X3ByaXYpKQo+ICAJCWludGVsX2RwX3NldF9jbG9jayhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4g IAo+ICsJaW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZyk7Cj4g Kwo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBp bmRleCBiODc5NDZkY2M1M2YuLmQ2MTk4NWY5M2Q0MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gQEAgLTcxOCw2ICs3MTgsOSBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4g IAlzdHJ1Y3QgaW50ZWxfbGlua19tX24gZHBfbTJfbjI7Cj4gIAlib29sIGhhc19kcnJzOwo+ICAK PiArCWJvb2wgaGFzX3BzcjsKPiArCWJvb2wgaGFzX3BzcjI7Cj4gKwo+ICAJLyoKPiAgCSAqIEZy ZXF1ZW5jZSB0aGUgZHBsbCBmb3IgdGhlIHBvcnQgc2hvdWxkIHJ1biBhdC4gRGlmZmVycyBmcm9t IHRoZQo+ICAJICogYWRqdXN0ZWQgZG90Y2xvY2sgZS5nLiBmb3IgRFAgb3IgMTJicGMgaGRtaSBt b2RlLiBUaGlzIGlzIGFsc28KPiBAQCAtMTc2NCw2ICsxNzY3LDggQEAgdm9pZCBpbnRlbF9wc3Jf Zmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICB2b2lkIGludGVsX3Bz cl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxf cHNyX3NpbmdsZV9mcmFtZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCQkJICAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7Cj4gK3ZvaWQgaW50ZWxfcHNy X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gKwkJCSAgICAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgCj4gIC8qIGludGVsX3J1bnRp bWVfcG0uYyAqLwo+ICBpbnQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICopOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w c3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gaW5kZXggNTQxOWNkYTgz YmE4Li5mNjE0OWFmMzlmMDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcHNyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IEBAIC0z NzYsMjIgKzM3NiwyNSBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2FjdGl2YXRlKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gIAkJaHN3X2FjdGl2YXRlX3BzcjEoaW50ZWxfZHApOwo+ICB9Cj4g IAo+IC1zdGF0aWMgYm9vbCBpbnRlbF9wc3JfbWF0Y2hfY29uZGl0aW9ucyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICt2b2lkIGludGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAo+ICsJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGln X3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkaWdfcG9ydC0+ YmFzZS5iYXNlLmNydGM7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiAtCQkmaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGU7Cj4gKwkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAg CWludCBwc3Jfc2V0dXBfdGltZTsKPiAgCj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJp di0+cHNyLmxvY2spOwo+IC0JV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1v ZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsKPiAtCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lz X2xvY2tlZCgmY3J0Yy0+bXV0ZXgpKTsKPiArCWlmICghSEFTX1BTUihkZXZfcHJpdikpCj4gKwkJ cmV0dXJuOwo+ICAKPiAtCWRldl9wcml2LT5wc3Iuc291cmNlX29rID0gZmFsc2U7Cj4gKwlpZiAo IWlzX2VkcF9wc3IoaW50ZWxfZHApKQoKSSBndWVzcyBJJ2QgbGlrZSBhbiBpbnRlbF9kcF9pc19l ZHAoKSBjaGVjayBoZXJlIG9yIHdpdGhpbiBpc19lZHBfcHNyKCkKYmVmb3JlIHRvdWNoaW5nIGlu dGVsX2RwLT5wc3JfZHBjZC4KCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmICghaTkxNV9tb2RwYXJh bXMuZW5hYmxlX3Bzcikgewo+ICsJCURSTV9ERUJVR19LTVMoIlBTUiBkaXNhYmxlIGJ5IGZsYWdc biIpOwo+ICsJCXJldHVybjsKPiArCX0KPiAgCj4gIAkvKgo+ICAJICogSFNXIHNwZWMgZXhwbGlj aXRseSBzYXlzIFBTUiBpcyB0aWVkIHRvIHBvcnQgQS4KPiBAQCAtNDAyLDY2ICs0MDUsNzAgQEAg c3RhdGljIGJvb2wgaW50ZWxfcHNyX21hdGNoX2NvbmRpdGlvbnMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgCSAqLwo+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpICYmIGRpZ19wb3J0LT5w b3J0ICE9IFBPUlRfQSkgewo+ICAJCURSTV9ERUJVR19LTVMoIlBTUiBjb25kaXRpb24gZmFpbGVk OiBQb3J0IG5vdCBzdXBwb3J0ZWRcbiIpOwo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4g LQlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJQ U1IgZGlzYWJsZSBieSBmbGFnXG4iKTsKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gKwkJcmV0dXJuOwo+ ICAJfQo+ICAKPiAgCWlmICgoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikpICYmCj4gIAkgICAgIWRldl9wcml2LT5wc3IubGlua19zdGFuZGJ5KSB7Cj4g IAkJRFJNX0VSUk9SKCJQU1IgY29uZGl0aW9uIGZhaWxlZDogTGluayBvZmYgcmVxdWVzdGVkIGJ1 dCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm1cbiIpOwo+IC0JCXJldHVybiBmYWxzZTsK PiArCQlyZXR1cm47Cj4gIAl9Cj4gIAo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpICYmCj4g LQkgICAgSTkxNV9SRUFEKEhTV19TVEVSRU9fM0RfQ1RMKGludGVsX2NydGMtPmNvbmZpZy0+Y3B1 X3RyYW5zY29kZXIpKSAmCj4gKwkgICAgSTkxNV9SRUFEKEhTV19TVEVSRU9fM0RfQ1RMKGNydGNf c3RhdGUtPmNwdV90cmFuc2NvZGVyKSkgJgo+ICAJCSAgICAgIFMzRF9FTkFCTEUpIHsKPiAgCQlE Uk1fREVCVUdfS01TKCJQU1IgY29uZGl0aW9uIGZhaWxlZDogU3RlcmVvIDNEIGlzIEVuYWJsZWRc biIpOwo+IC0JCXJldHVybiBmYWxzZTsKPiArCQlyZXR1cm47Cj4gIAl9Cj4gIAo+ICAJaWYgKElT X0hBU1dFTEwoZGV2X3ByaXYpICYmCj4gIAkgICAgYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX0lOVEVSTEFDRSkgewo+ICAJCURSTV9ERUJVR19LTVMoIlBTUiBjb25kaXRpb24g ZmFpbGVkOiBJbnRlcmxhY2VkIGlzIEVuYWJsZWRcbiIpOwo+IC0JCXJldHVybiBmYWxzZTsKPiAr CQlyZXR1cm47Cj4gIAl9Cj4gIAo+ICAJcHNyX3NldHVwX3RpbWUgPSBkcm1fZHBfcHNyX3NldHVw X3RpbWUoaW50ZWxfZHAtPnBzcl9kcGNkKTsKPiAgCWlmIChwc3Jfc2V0dXBfdGltZSA8IDApIHsK PiAgCQlEUk1fREVCVUdfS01TKCJQU1IgY29uZGl0aW9uIGZhaWxlZDogSW52YWxpZCBQU1Igc2V0 dXAgdGltZSAoMHglMDJ4KVxuIiwKPiAgCQkJICAgICAgaW50ZWxfZHAtPnBzcl9kcGNkWzFdKTsK PiAtCQlyZXR1cm4gZmFsc2U7Cj4gKwkJcmV0dXJuOwo+ICAJfQo+ICAKPiAgCWlmIChpbnRlbF91 c2Vjc190b19zY2FubGluZXMoYWRqdXN0ZWRfbW9kZSwgcHNyX3NldHVwX3RpbWUpID4KPiAgCSAg ICBhZGp1c3RlZF9tb2RlLT5jcnRjX3Z0b3RhbCAtIGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3Bs YXkgLSAxKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6IFBTUiBz ZXR1cCB0aW1lICglZCB1cykgdG9vIGxvbmdcbiIsCj4gIAkJCSAgICAgIHBzcl9zZXR1cF90aW1l KTsKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCS8qCj4gKwkg KiBGSVhNRSBwc3IyX3N1cHBvcnQgaXMgbWVzc2VkIHVwLiBJdCdzIGJvdGggY29tcHV0ZWQKPiAr CSAqIGR5bmFtaWNhbGx5IGR1cmluZyBQU1IgZW5hYmxlLCBhbmQgZXh0cmFjdGVkIGZyb20gc2lu awo+ICsJICogY2FwcyBkdXJpbmcgZURQIGRldGVjdGlvbi4KPiArCSAqLwoKQWdyZWVkLCB5dWNr LgoKPiArCWlmICghZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpIHsKPiArCQljcnRjX3N0YXRl LT5oYXNfcHNyID0gdHJ1ZTsKPiArCQlyZXR1cm47Cj4gIAl9Cj4gIAo+ICAJLyogUFNSMiBpcyBy ZXN0cmljdGVkIHRvIHdvcmsgd2l0aCBwYW5lbCByZXNvbHV0aW9ucyB1cHRvIDMyMDB4MjAwMCAq Lwo+IC0JaWYgKGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0ICYmCj4gLQkgICAgKGludGVsX2Ny dGMtPmNvbmZpZy0+cGlwZV9zcmNfdyA+IDMyMDAgfHwKPiAtCSAgICAgaW50ZWxfY3J0Yy0+Y29u ZmlnLT5waXBlX3NyY19oID4gMjAwMCkpIHsKPiAtCQlkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9y dCA9IGZhbHNlOwo+IC0JCXJldHVybiBmYWxzZTsKPiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRj X2hkaXNwbGF5ID4gMzIwMCB8fAo+ICsJICAgIGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXkg PiAyMDAwKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiUFNSMiBkaXNhYmxlZCwgcGFuZWwgcmVzb2x1 dGlvbiB0b28gYmlnXG4iKTsKClRoaXMgYnJhbmNoIGRvZXNuJ3Qgc2V0IGhhc19wc3IgPSB0cnVl LCBzaG91bGRuJ3QgaXQ/IE1heWJlIG1vdmUgdGhhdApiZWZvcmUgdGhlIGlmICghZGV2X3ByaXYt PnBzci5wc3IyX3N1cHBvcnQpIGNvbmRpdGlvbiBmcm9tIHdpdGhpbiB0aGUKYmxvY2s/Cgo+ICsJ CXJldHVybjsKPiAgCX0KPiAgCj4gIAkvKgo+ICAJICogRklYTUU6ZW5hYmxlIHBzcjIgb25seSBm b3IgeS1jb3JkaW5hdGUgcHNyMiBwYW5lbHMKPiAgCSAqIEFmdGVyIGd0YyBpbXBsZW1lbnRhdGlv biAsIHJlbW92ZSB0aGlzIHJlc3RyaWN0aW9uLgo+ICAJICovCj4gLQlpZiAoIWRldl9wcml2LT5w c3IueV9jb3JkX3N1cHBvcnQgJiYgIGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KSB7Cj4gKwlp ZiAoIWRldl9wcml2LT5wc3IueV9jb3JkX3N1cHBvcnQpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJQ U1IyIGRpc2FibGVkLCBwYW5lbCBkb2VzIG5vdCBzdXBwb3J0IFkgY29vcmRpbmF0ZVxuIik7Cj4g LQkJcmV0dXJuIGZhbHNlOwo+ICsJCXJldHVybjsKPiAgCX0KPiAgCj4gLQlkZXZfcHJpdi0+cHNy LnNvdXJjZV9vayA9IHRydWU7Cj4gLQlyZXR1cm4gdHJ1ZTsKPiArCWNydGNfc3RhdGUtPmhhc19w c3IgPSB0cnVlOwo+ICsJY3J0Y19zdGF0ZS0+aGFzX3BzcjIgPSB0cnVlOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCBpbnRlbF9wc3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiBAQCAtNTMxLDEzICs1MzgsOCBAQCB2b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9y dC0+YmFzZS5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAgCj4gLQlpZiAoIUhBU19QU1IoZGV2X3ByaXYpKQo+IC0JCXJldHVy bjsKPiAtCj4gLQlpZiAoIWlzX2VkcF9wc3IoaW50ZWxfZHApKSB7Cj4gLQkJRFJNX0RFQlVHX0tN UygiUFNSIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwYW5lbFxuIik7Cj4gLQkJcmV0dXJuOwo+IC0J fQo+ICsJaWYgKCFjcnRjX3N0YXRlLT5oYXNfcHNyKQo+ICsJCWdvdG8gdW5sb2NrOwoKSXQncyBu b3QgbG9ja2VkIHlldC4uLgoKQlIsCkphbmkuCgo+ICAKPiAgCVdBUk5fT04oZGV2X3ByaXYtPmRy cnMuZHApOwo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiBAQCAtNTQ2LDgg KzU0OCw4IEBAIHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LAo+ICAJCWdvdG8gdW5sb2NrOwo+ICAJfQo+ICAKPiAtCWlmICghaW50ZWxfcHNyX21hdGNoX2Nv bmRpdGlvbnMoaW50ZWxfZHApKQo+IC0JCWdvdG8gdW5sb2NrOwo+ICsJZGV2X3ByaXYtPnBzci5w c3IyX3N1cHBvcnQgPSBjcnRjX3N0YXRlLT5oYXNfcHNyMjsKPiArCWRldl9wcml2LT5wc3Iuc291 cmNlX29rID0gdHJ1ZTsKPiAgCj4gIAlkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0 cyA9IDA7Cj4gIAo+IEBAIC02NjgsNyArNjcwLDcgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlu dGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAKPiAtCWlmICghSEFTX1BTUihkZXZfcHJpdikp Cj4gKwlpZiAoIW9sZF9jcnRjX3N0YXRlLT5oYXNfcHNyKQo+ICAJCXJldHVybjsKPiAgCj4gIAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBP cGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK