From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH v3 08/23] drm/i915/tgl: Access the right register when handling PSR interruptions Date: Fri, 23 Aug 2019 01:20:40 -0700 Message-ID: <20190823082055.5992-9-lucas.demarchi@intel.com> References: <20190823082055.5992-1-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 16D966EC30 for ; Fri, 23 Aug 2019 08:54:11 +0000 (UTC) In-Reply-To: <20190823082055.5992-1-lucas.demarchi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+CgpGb3Ig b2xkZXIgZ2VucyBQU1IgSUlSIGFuZCBJTVIgaGFkIGEgZml4ZWQgYWRkcmVzcyB0aGF0IHdhcyBu b3QKcmVsYXRpdmUgdG8gYW55dGhpbmcsIGJ1dCBmcm9tIFRHTCB0aG9zZSByZWdpc3RlcnMgbW92 ZWQgdG8gZWFjaAp0cmFuc2NvZGVyIG9mZnNldC4KClNvIGhlcmUgYWRkaW5nIGEgbmV3IG1hY3Jv IGFuZCBhIG5ldyBQU1IgaXJxIGhhbmRsZXIgd2l0aCB0aGUKdHJhbnNjb2RlciBwYXJhbWV0ZXIu CgpDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ CkNjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIHwgNjcgKysrKysrKysrKysrKysr KysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5oIHwgIDEg KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICB8IDUyICsrKysrKysr KysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICB8IDEw ICsrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCmluZGV4IDI0MjkzMjhm OTYzZS4uYzMzYWExNmVkMDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf cHNyLmMKQEAgLTkxLDIwICs5MSwzMyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9wc3IyX2VuYWJsZWQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQgcHNyX2lycV9j b250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAllbnVtIHRyYW5z Y29kZXIgdHJhbnMgPSBkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXI7Ci0JdTMyIHZhbCwgbWFzazsK Kwl1MzIgcHNyX2Vycm9yLCBwc3JfZW50cnksIHBzcl9leGl0LCBtYXNrLCB2YWw7CisJaTkxNV9y ZWdfdCBtYXNrX3JlZzsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7CisJCXBz cl9lcnJvciA9IFRSQU5TX1BTUl9FUlJPUjsKKwkJcHNyX2VudHJ5ID0gVFJBTlNfUFNSX1BSRV9F TlRSWTsKKwkJcHNyX2V4aXQgPSBUUkFOU19QU1JfUE9TVF9FWElUOworCQltYXNrX3JlZyA9IFRS QU5TX1BTUl9JTVIodHJhbnMpOworCX0gZWxzZSB7CisJCXBzcl9lcnJvciA9IEVEUF9QU1JfRVJS T1IodHJhbnMpOworCQlwc3JfZW50cnkgPSBFRFBfUFNSX1BSRV9FTlRSWSh0cmFucyk7CisJCXBz cl9leGl0ID0gRURQX1BTUl9QT1NUX0VYSVQodHJhbnMpOworCQltYXNrX3JlZyA9IEVEUF9QU1Jf SU1SOworCX0KIAotCW1hc2sgPSBFRFBfUFNSX0VSUk9SKHRyYW5zKTsKKwltYXNrID0gcHNyX2Vy cm9yOwogCWlmIChkZXZfcHJpdi0+cHNyLmRlYnVnICYgSTkxNV9QU1JfREVCVUdfSVJRKQotCQlt YXNrIHw9IEVEUF9QU1JfUE9TVF9FWElUKHRyYW5zKSB8IEVEUF9QU1JfUFJFX0VOVFJZKHRyYW5z KTsKKwkJbWFzayB8PSBwc3JfZXhpdCB8IHBzcl9lbnRyeTsKIAogCS8qCiAJICogVE9ETzogd2hl biBoYW5kbGluZyBtdWx0aXBsZSBQU1IgaW5zdGFuY2VzIGEgZ2xvYmFsIHNwaW5sb2NrIHdpbGwg YmUKIAkgKiBuZWVkZWQgdG8gc3luY2hyb25pemUgdGhlIHZhbHVlIG9mIHNoYXJlZCByZWdpc3Rl cgogCSAqLwotCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0lNUik7Ci0JdmFsICY9IH5FRFBfUFNS X1RSQU5TX01BU0sodHJhbnMpOworCXZhbCA9IEk5MTVfUkVBRChtYXNrX3JlZyk7CisJdmFsICY9 IH4ocHNyX2Vycm9yIHwgcHNyX2VudHJ5IHwgcHNyX2V4aXQpOwogCXZhbCB8PSB+bWFzazsKLQlJ OTE1X1dSSVRFKEVEUF9QU1JfSU1SLCB2YWwpOworCUk5MTVfV1JJVEUobWFza19yZWcsIHZhbCk7 CiB9CiAKIHN0YXRpYyB2b2lkIHBzcl9ldmVudF9wcmludCh1MzIgdmFsLCBib29sIHBzcjJfZW5h YmxlZCkKQEAgLTE0Nyw5ICsxNjAsMjEgQEAgc3RhdGljIHZvaWQgcHNyX2V2ZW50X3ByaW50KHUz MiB2YWwsIGJvb2wgcHNyMl9lbmFibGVkKQogdm9pZCBpbnRlbF9wc3JfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcHNyX2lpcikKIHsKIAllbnVtIHRy YW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXI7CisJdTMy IHBzcl9lcnJvciwgcHNyX2VudHJ5LCBwc3JfZXhpdDsKIAlrdGltZV90IHRpbWVfbnMgPSAga3Rp bWVfZ2V0KCk7CiAKLQlpZiAocHNyX2lpciAmIEVEUF9QU1JfRVJST1IoY3B1X3RyYW5zY29kZXIp KSB7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKKwkJcHNyX2Vycm9yID0gVFJB TlNfUFNSX0VSUk9SOworCQlwc3JfZW50cnkgPSBUUkFOU19QU1JfUFJFX0VOVFJZOworCQlwc3Jf ZXhpdCA9IFRSQU5TX1BTUl9QT1NUX0VYSVQ7CisJfSBlbHNlIHsKKwkJcHNyX2Vycm9yID0gRURQ X1BTUl9FUlJPUihjcHVfdHJhbnNjb2Rlcik7CisJCXBzcl9lbnRyeSA9IEVEUF9QU1JfUFJFX0VO VFJZKGNwdV90cmFuc2NvZGVyKTsKKwkJcHNyX2V4aXQgPSBFRFBfUFNSX1BPU1RfRVhJVChjcHVf dHJhbnNjb2Rlcik7CisJfQorCisJaWYgKHBzcl9paXIgJiBwc3JfZXJyb3IpIHsKKwkJaTkxNV9y ZWdfdCBtYXNrX3JlZzsKIAkJdTMyIHZhbDsKIAogCQlEUk1fV0FSTigiW3RyYW5zY29kZXIgJXNd IFBTUiBhdXggZXJyb3JcbiIsCkBAIC0xNjgsMjAgKzE5MywyNSBAQCB2b2lkIGludGVsX3Bzcl9p cnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwc3JfaWly KQogCQkgKiBUT0RPOiB3aGVuIGhhbmRsaW5nIG11bHRpcGxlIFBTUiBpbnN0YW5jZXMgYSBnbG9i YWwgc3BpbmxvY2sKIAkJICogd2lsbCBiZSBuZWVkZWQgdG8gc3luY2hyb25pemUgdGhlIHZhbHVl IG9mIHNoYXJlZCByZWdpc3RlcgogCQkgKi8KLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfSU1S KTsKLQkJdmFsIHw9IEVEUF9QU1JfRVJST1IoY3B1X3RyYW5zY29kZXIpOwotCQlJOTE1X1dSSVRF KEVEUF9QU1JfSU1SLCB2YWwpOworCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJ CW1hc2tfcmVnID0gVFJBTlNfUFNSX0lNUihjcHVfdHJhbnNjb2Rlcik7CisJCWVsc2UKKwkJCW1h c2tfcmVnID0gRURQX1BTUl9JTVI7CisKKwkJdmFsID0gSTkxNV9SRUFEKG1hc2tfcmVnKTsKKwkJ dmFsIHw9IHBzcl9lcnJvcjsKKwkJSTkxNV9XUklURShtYXNrX3JlZywgdmFsKTsKIAogCQlzY2hl ZHVsZV93b3JrKCZkZXZfcHJpdi0+cHNyLndvcmspOwogCX0KIAotCWlmIChwc3JfaWlyICYgRURQ X1BTUl9QUkVfRU5UUlkoY3B1X3RyYW5zY29kZXIpKSB7CisJaWYgKHBzcl9paXIgJiBwc3JfZW50 cnkpIHsKIAkJZGV2X3ByaXYtPnBzci5sYXN0X2VudHJ5X2F0dGVtcHQgPSB0aW1lX25zOwogCQlE Uk1fREVCVUdfS01TKCJbdHJhbnNjb2RlciAlc10gUFNSIGVudHJ5IGF0dGVtcHQgaW4gMiB2Ymxh bmtzXG4iLAogCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKGNwdV90cmFuc2NvZGVyKSk7CiAJfQog Ci0JaWYgKHBzcl9paXIgJiBFRFBfUFNSX1BPU1RfRVhJVChjcHVfdHJhbnNjb2RlcikpIHsKKwlp ZiAocHNyX2lpciAmIHBzcl9leGl0KSB7CiAJCWRldl9wcml2LT5wc3IubGFzdF9leGl0ID0gdGlt ZV9uczsKIAkJRFJNX0RFQlVHX0tNUygiW3RyYW5zY29kZXIgJXNdIFBTUiBleGl0IGNvbXBsZXRl ZFxuIiwKIAkJCSAgICAgIHRyYW5zY29kZXJfbmFtZShjcHVfdHJhbnNjb2RlcikpOwpAQCAtNjMy LDcgKzY2Miw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3Rv X2k5MTUoaW50ZWxfZHApOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAmJgotCSAg ICBwc3IyX3N1cHBvcnRlZChkZXZfcHJpdiwgZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkKKwkg ICAgdHJhbnNjb2Rlcl9oYXNfcHNyMihkZXZfcHJpdiwgZGV2X3ByaXYtPnBzci50cmFuc2NvZGVy KSkKIAkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNj b2RlcikpICYgRURQX1BTUjJfRU5BQkxFKTsKIAlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSX0NU TChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKSAmIEVEUF9QU1JfRU5BQkxFKTsKIAlXQVJOX09O KGRldl9wcml2LT5wc3IuYWN0aXZlKTsKQEAgLTczMCw4ICs3NjAsMTMgQEAgc3RhdGljIHZvaWQg aW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCSAqIGZpcnN0IHRpbWUgdGhhdCBQU1IgSFcgdHJpZXMgdG8gYWN0aXZhdGUgc28gbGV0cyBr ZWVwIFBTUiBkaXNhYmxlZAogCSAqIHRvIGF2b2lkIGFueSByZW5kZXJpbmcgcHJvYmxlbXMuCiAJ ICovCi0JdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKLQl2YWwgJj0gRURQX1BTUl9FUlJP UihkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDEyKSB7CisJCXZhbCA9IEk5MTVfUkVBRChUUkFOU19QU1JfSUlSKGRldl9wcml2LT5wc3IudHJh bnNjb2RlcikpOworCQl2YWwgJj0gVFJBTlNfUFNSX0VSUk9SOworCX0gZWxzZSB7CisJCXZhbCA9 IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7CisJCXZhbCAmPSBFRFBfUFNSX0VSUk9SKGRldl9wcml2 LT5wc3IudHJhbnNjb2Rlcik7CisJfQogCWlmICh2YWwpIHsKIAkJZGV2X3ByaXYtPnBzci5zaW5r X25vdF9yZWxpYWJsZSA9IHRydWU7CiAJCURSTV9ERUJVR19LTVMoIlBTUiBpbnRlcnJ1cHRpb24g ZXJyb3Igc2V0LCBub3QgZW5hYmxpbmcgUFNSXG4iKTsKQEAgLTc4Nyw3ICs4MjIsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9wc3JfZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAKIAlpZiAoIWRldl9wcml2LT5wc3IuYWN0aXZlKSB7CiAJCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDkgJiYKLQkJICAgIHBzcjJfc3VwcG9ydGVkKGRldl9wcml2LCBkZXZfcHJpdi0+cHNy LnRyYW5zY29kZXIpKSB7CisJCSAgICB0cmFuc2NvZGVyX2hhc19wc3IyKGRldl9wcml2LCBkZXZf cHJpdi0+cHNyLnRyYW5zY29kZXIpKSB7CiAJCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RM KGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpOwogCQkJV0FSTl9PTih2YWwgJiBFRFBfUFNSMl9F TkFCTEUpOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Bzci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuaAppbmRl eCA0NmU0ZGU4YjhjZDUuLjY1NzBhMjNhNjhiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3Bzci5oCkBAIC02LDYgKzYsNyBAQAogI2lmbmRlZiBfX0lOVEVMX1BTUl9IX18K ICNkZWZpbmUgX19JTlRFTF9QU1JfSF9fCiAKKyNpbmNsdWRlICJpbnRlbF9kaXNwbGF5LmgiCiAj aW5jbHVkZSAiaW50ZWxfZnJvbnRidWZmZXIuaCIKIAogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA3NzM5MWQ4MzI1YmYuLjYwMjRhNmVmMWM3NiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0yNjU1LDExICsyNjU1LDIyIEBAIGdlbjhfZGVf bWlzY19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBp aXIpCiAJfQogCiAJaWYgKGlpciAmIEdFTjhfREVfRURQX1BTUikgewotCQl1MzIgcHNyX2lpciA9 IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7CisJCXUzMiBwc3JfaWlyOworCisJCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDEyKSB7CisJCQllbnVtIHRyYW5zY29kZXIgdHJhbnMgPSBkZXZfcHJp di0+cHNyLnRyYW5zY29kZXI7CisKKwkJCXBzcl9paXIgPSBJOTE1X1JFQUQoVFJBTlNfUFNSX0lJ Uih0cmFucykpOworCQkJSTkxNV9XUklURShUUkFOU19QU1JfSUlSKHRyYW5zKSwgcHNyX2lpcik7 CisJCX0gZWxzZSB7CisJCQlwc3JfaWlyID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKKwkJCUk5 MTVfV1JJVEUoRURQX1BTUl9JSVIsIHBzcl9paXIpOworCQl9CisKKwkJaWYgKHBzcl9paXIpCisJ CQlmb3VuZCA9IHRydWU7CiAKIAkJaW50ZWxfcHNyX2lycV9oYW5kbGVyKGRldl9wcml2LCBwc3Jf aWlyKTsKLQkJSTkxNV9XUklURShFRFBfUFNSX0lJUiwgcHNyX2lpcik7Ci0JCWZvdW5kID0gdHJ1 ZTsKIAl9CiAKIAlpZiAoIWZvdW5kKQpAQCAtMzI3OSw4ICszMjkwLDIzIEBAIHN0YXRpYyB2b2lk IGdlbjExX2lycV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlp bnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBHRU4xMV9ESVNQTEFZX0lOVF9DVEwsIDApOwogCi0J aW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRURQX1BTUl9JTVIsIDB4ZmZmZmZmZmYpOwotCWlu dGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEVEUF9QU1JfSUlSLCAweGZmZmZmZmZmKTsKKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQllbnVtIHRyYW5zY29kZXIgdHJhbnM7CisK KwkJZm9yICh0cmFucyA9IFRSQU5TQ09ERVJfQTsgdHJhbnMgPD0gVFJBTlNDT0RFUl9EOyB0cmFu cysrKSB7CisJCQllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbjsKKworCQkJ ZG9tYWluID0gUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVIodHJhbnMpOworCQkJaWYgKCFpbnRlbF9k aXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2X3ByaXYsIGRvbWFpbikpCisJCQkJY29udGludWU7 CisKKwkJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIFRSQU5TX1BTUl9JTVIodHJhbnMpLCAw eGZmZmZmZmZmKTsKKwkJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIFRSQU5TX1BTUl9JSVIo dHJhbnMpLCAweGZmZmZmZmZmKTsKKwkJfQorCX0gZWxzZSB7CisJCWludGVsX3VuY29yZV93cml0 ZSh1bmNvcmUsIEVEUF9QU1JfSU1SLCAweGZmZmZmZmZmKTsKKwkJaW50ZWxfdW5jb3JlX3dyaXRl KHVuY29yZSwgRURQX1BTUl9JSVIsIDB4ZmZmZmZmZmYpOworCX0KIAogCWZvcl9lYWNoX3BpcGUo ZGV2X3ByaXYsIHBpcGUpCiAJCWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2 X3ByaXYsCkBAIC0zNzkzLDcgKzM4MTksMjEgQEAgc3RhdGljIHZvaWQgZ2VuOF9kZV9pcnFfcG9z dGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWVsc2UgaWYgKElT X0JST0FEV0VMTChkZXZfcHJpdikpCiAJCWRlX3BvcnRfZW5hYmxlcyB8PSBHRU44X1BPUlRfRFBf QV9IT1RQTFVHOwogCi0JZ2VuM19hc3NlcnRfaWlyX2lzX3plcm8odW5jb3JlLCBFRFBfUFNSX0lJ Uik7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKKwkJZW51bSB0cmFuc2NvZGVy IHRyYW5zOworCisJCWZvciAodHJhbnMgPSBUUkFOU0NPREVSX0E7IHRyYW5zIDw9IFRSQU5TQ09E RVJfRDsgdHJhbnMrKykgeworCQkJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21h aW47CisKKwkJCWRvbWFpbiA9IFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSKHRyYW5zKTsKKwkJCWlm ICghaW50ZWxfZGlzcGxheV9wb3dlcl9pc19lbmFibGVkKGRldl9wcml2LCBkb21haW4pKQorCQkJ CWNvbnRpbnVlOworCisJCQlnZW4zX2Fzc2VydF9paXJfaXNfemVybyh1bmNvcmUsIFRSQU5TX1BT Ul9JSVIodHJhbnMpKTsKKwkJfQorCX0gZWxzZSB7CisJCWdlbjNfYXNzZXJ0X2lpcl9pc196ZXJv KHVuY29yZSwgRURQX1BTUl9JSVIpOworCX0KIAogCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBp cGUpIHsKIAkJZGV2X3ByaXYtPmRlX2lycV9tYXNrW3BpcGVdID0gfmRlX3BpcGVfbWFza2VkOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggMWM2ZDk5OTQ0NjMwLi4zZGUwMjY4M2Q4NTYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtNDIyMiw3ICs0MjIyLDcgQEAgZW51bSB7CiAjZGVm aW5lICAgRURQX1BTUl9UUDFfVElNRV8wdXMJCQkoMyA8PCA0KQogI2RlZmluZSAgIEVEUF9QU1Jf SURMRV9GUkFNRV9TSElGVAkJMAogCi0vKiBCc3BlYyBjbGFpbXMgdGhvc2UgYXJlbid0IHNoaWZ0 ZWQgYnV0IHN0YXkgYXQgMHg2NDgwMCAqLworLyogQnNwZWMgY2xhaW1zIHRob3NlIGFyZW4ndCBz aGlmdGVkIGJ1dCBzdGF5IGF0IDB4NjQ4MDAgdW50aWwgVEdMICovCiAjZGVmaW5lIEVEUF9QU1Jf SU1SCQkJCV9NTUlPKDB4NjQ4MzQpCiAjZGVmaW5lIEVEUF9QU1JfSUlSCQkJCV9NTUlPKDB4NjQ4 MzgpCiAjZGVmaW5lICAgX0VEUF9QU1JfVFJBTlNfU0hJRlQodHJhbnMpCQkoKHRyYW5zKSA9PSBU UkFOU0NPREVSX0VEUCA/IFwKQEAgLTQyMzIsNiArNDIzMiwxNCBAQCBlbnVtIHsKICNkZWZpbmUg ICBFRFBfUFNSX1BPU1RfRVhJVCh0cmFucykJCSgweDIgPDwgX0VEUF9QU1JfVFJBTlNfU0hJRlQo dHJhbnMpKQogI2RlZmluZSAgIEVEUF9QU1JfUFJFX0VOVFJZKHRyYW5zKQkJKDB4MSA8PCBfRURQ X1BTUl9UUkFOU19TSElGVCh0cmFucykpCiAKKyNkZWZpbmUgX1BTUl9JTVJfQQkJCQkweDYwODE0 CisjZGVmaW5lIF9QU1JfSUlSX0EJCQkJMHg2MDgxOAorI2RlZmluZSBUUkFOU19QU1JfSU1SKHRy YW4pCQkJX01NSU9fVFJBTlMyKHRyYW4sIF9QU1JfSU1SX0EpIC8qIFRHTCsgKi8KKyNkZWZpbmUg VFJBTlNfUFNSX0lJUih0cmFuKQkJCV9NTUlPX1RSQU5TMih0cmFuLCBfUFNSX0lJUl9BKSAvKiBU R0wrICovCisjZGVmaW5lICAgVFJBTlNfUFNSX0VSUk9SCQkJKDEgPDwgMikKKyNkZWZpbmUgICBU UkFOU19QU1JfUE9TVF9FWElUCQkJKDEgPDwgMSkKKyNkZWZpbmUgICBUUkFOU19QU1JfUFJFX0VO VFJZCQkJKDEgPDwgMCkKKwogI2RlZmluZSBfU1JEX0FVWF9DVExfQQkJCQkweDYwODEwCiAjZGVm aW5lIF9TUkRfQVVYX0NUTF9FRFAJCQkweDZmODEwCiAjZGVmaW5lIEVEUF9QU1JfQVVYX0NUTCh0 cmFuKQkJCV9NTUlPKF9QU1JfQURKKHRyYW4sIF9TUkRfQVVYX0NUTF9BKSkKLS0gCjIuMjMuMAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4