From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Gupta Subject: Re: [PATCH v3 08/23] drm/i915/tgl: Access the right register when handling PSR interruptions Date: Mon, 26 Aug 2019 15:23:55 +0530 Message-ID: <20190826095354.GE30506@intel.com> References: <20190823082055.5992-1-lucas.demarchi@intel.com> <20190823082055.5992-9-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 E85FC6E227 for ; Mon, 26 Aug 2019 09:57:08 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190823082055.5992-9-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: Lucas De Marchi , jose.souza@intel.com Cc: intel-gfx@lists.freedesktop.org, Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org T24gMjAxOS0wOC0yMyBhdCAwMToyMDo0MCAtMDcwMCwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+ IEZyb206IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IAo+ IEZvciBvbGRlciBnZW5zIFBTUiBJSVIgYW5kIElNUiBoYWQgYSBmaXhlZCBhZGRyZXNzIHRoYXQg d2FzIG5vdAo+IHJlbGF0aXZlIHRvIGFueXRoaW5nLCBidXQgZnJvbSBUR0wgdGhvc2UgcmVnaXN0 ZXJzIG1vdmVkIHRvIGVhY2gKPiB0cmFuc2NvZGVyIG9mZnNldC4KPiAKPiBTbyBoZXJlIGFkZGlu ZyBhIG5ldyBtYWNybyBhbmQgYSBuZXcgUFNSIGlycSBoYW5kbGVyIHdpdGggdGhlCj4gdHJhbnNj b2RlciBwYXJhbWV0ZXIuCj4KVGhlcmUgYXJlIGZldyBtaW5vciBjb21tZW50cyBiZWxvdywgYXBh cnQgZnJvbSBiZWxvdyBjb21tZW50cwpwYXRjaCBpcyBsb29rcyBvayB0byBtZS4KUmV2aWV3ZWQt Ynk6IEFuc2h1bWFuIEd1cHRhIDxhbnNodW1hbi5ndXB0YUBpbnRlbC5jb20+ICAKPiBDYzogRGhp bmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gQ2M6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBKb3PD qSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyB8IDY3ICsrKysrKysrKysrKysr KysrKy0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5oIHwg IDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgIHwgNTIgKysr KysrKysrKysrKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAg ICAgfCAxMCArKystCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDIzIGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwo+ IGluZGV4IDI0MjkzMjhmOTYzZS4uYzMzYWExNmVkMDM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCj4gQEAgLTkxLDIwICs5MSwzMyBAQCBzdGF0aWMgYm9v bCBpbnRlbF9wc3IyX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICBzdGF0aWMgdm9pZCBwc3JfaXJxX2NvbnRyb2woc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICB7Cj4gIAllbnVtIHRyYW5zY29kZXIgdHJhbnMgPSBkZXZfcHJpdi0+cHNyLnRy YW5zY29kZXI7Cj4gLQl1MzIgdmFsLCBtYXNrOwo+ICsJdTMyIHBzcl9lcnJvciwgcHNyX2VudHJ5 LCBwc3JfZXhpdCwgbWFzaywgdmFsOwo+ICsJaTkxNV9yZWdfdCBtYXNrX3JlZzsKPiArCj4gKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgewo+ICsJCXBzcl9lcnJvciA9IFRSQU5TX1BT Ul9FUlJPUjsKPiArCQlwc3JfZW50cnkgPSBUUkFOU19QU1JfUFJFX0VOVFJZOwo+ICsJCXBzcl9l eGl0ID0gVFJBTlNfUFNSX1BPU1RfRVhJVDsKPiArCQltYXNrX3JlZyA9IFRSQU5TX1BTUl9JTVIo dHJhbnMpOwo+ICsJfSBlbHNlIHsKPiArCQlwc3JfZXJyb3IgPSBFRFBfUFNSX0VSUk9SKHRyYW5z KTsKPiArCQlwc3JfZW50cnkgPSBFRFBfUFNSX1BSRV9FTlRSWSh0cmFucyk7Cj4gKwkJcHNyX2V4 aXQgPSBFRFBfUFNSX1BPU1RfRVhJVCh0cmFucyk7Cj4gKwkJbWFza19yZWcgPSBFRFBfUFNSX0lN UjsKPiArCX0KPiAgCj4gLQltYXNrID0gRURQX1BTUl9FUlJPUih0cmFucyk7Cj4gKwltYXNrID0g cHNyX2Vycm9yOwo+ICAJaWYgKGRldl9wcml2LT5wc3IuZGVidWcgJiBJOTE1X1BTUl9ERUJVR19J UlEpCj4gLQkJbWFzayB8PSBFRFBfUFNSX1BPU1RfRVhJVCh0cmFucykgfCBFRFBfUFNSX1BSRV9F TlRSWSh0cmFucyk7Cj4gKwkJbWFzayB8PSBwc3JfZXhpdCB8IHBzcl9lbnRyeTsKPiAgCj4gIAkv Kgo+ICAJICogVE9ETzogd2hlbiBoYW5kbGluZyBtdWx0aXBsZSBQU1IgaW5zdGFuY2VzIGEgZ2xv YmFsIHNwaW5sb2NrIHdpbGwgYmUKPiAgCSAqIG5lZWRlZCB0byBzeW5jaHJvbml6ZSB0aGUgdmFs dWUgb2Ygc2hhcmVkIHJlZ2lzdGVyCj4gIAkgKi8KPiAtCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNS X0lNUik7Cj4gLQl2YWwgJj0gfkVEUF9QU1JfVFJBTlNfTUFTSyh0cmFucyk7Cj4gKwl2YWwgPSBJ OTE1X1JFQUQobWFza19yZWcpOwo+ICsJdmFsICY9IH4ocHNyX2Vycm9yIHwgcHNyX2VudHJ5IHwg cHNyX2V4aXQpOwo+ICAJdmFsIHw9IH5tYXNrOwo+IC0JSTkxNV9XUklURShFRFBfUFNSX0lNUiwg dmFsKTsKPiArCUk5MTVfV1JJVEUobWFza19yZWcsIHZhbCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2 b2lkIHBzcl9ldmVudF9wcmludCh1MzIgdmFsLCBib29sIHBzcjJfZW5hYmxlZCkKPiBAQCAtMTQ3 LDkgKzE2MCwyMSBAQCBzdGF0aWMgdm9pZCBwc3JfZXZlbnRfcHJpbnQodTMyIHZhbCwgYm9vbCBw c3IyX2VuYWJsZWQpCj4gIHZvaWQgaW50ZWxfcHNyX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBzcl9paXIpCj4gIHsKPiAgCWVudW0gdHJhbnNjb2Rl ciBjcHVfdHJhbnNjb2RlciA9IGRldl9wcml2LT5wc3IudHJhbnNjb2RlcjsKPiArCXUzMiBwc3Jf ZXJyb3IsIHBzcl9lbnRyeSwgcHNyX2V4aXQ7Cj4gIAlrdGltZV90IHRpbWVfbnMgPSAga3RpbWVf Z2V0KCk7Cj4gIAo+IC0JaWYgKHBzcl9paXIgJiBFRFBfUFNSX0VSUk9SKGNwdV90cmFuc2NvZGVy KSkgewo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKPiArCQlwc3JfZXJyb3Ig PSBUUkFOU19QU1JfRVJST1I7Cj4gKwkJcHNyX2VudHJ5ID0gVFJBTlNfUFNSX1BSRV9FTlRSWTsK PiArCQlwc3JfZXhpdCA9IFRSQU5TX1BTUl9QT1NUX0VYSVQ7Cj4gKwl9IGVsc2Ugewo+ICsJCXBz cl9lcnJvciA9IEVEUF9QU1JfRVJST1IoY3B1X3RyYW5zY29kZXIpOwo+ICsJCXBzcl9lbnRyeSA9 IEVEUF9QU1JfUFJFX0VOVFJZKGNwdV90cmFuc2NvZGVyKTsKPiArCQlwc3JfZXhpdCA9IEVEUF9Q U1JfUE9TVF9FWElUKGNwdV90cmFuc2NvZGVyKTsKPiArCX0KPiArCj4gKwlpZiAocHNyX2lpciAm IHBzcl9lcnJvcikgewo+ICsJCWk5MTVfcmVnX3QgbWFza19yZWc7Cj4gIAkJdTMyIHZhbDsKPiAg Cj4gIAkJRFJNX1dBUk4oIlt0cmFuc2NvZGVyICVzXSBQU1IgYXV4IGVycm9yXG4iLAo+IEBAIC0x NjgsMjAgKzE5MywyNSBAQCB2b2lkIGludGVsX3Bzcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwc3JfaWlyKQo+ICAJCSAqIFRPRE86IHdoZW4gaGFu ZGxpbmcgbXVsdGlwbGUgUFNSIGluc3RhbmNlcyBhIGdsb2JhbCBzcGlubG9jawo+ICAJCSAqIHdp bGwgYmUgbmVlZGVkIHRvIHN5bmNocm9uaXplIHRoZSB2YWx1ZSBvZiBzaGFyZWQgcmVnaXN0ZXIK PiAgCQkgKi8KPiAtCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9JTVIpOwo+IC0JCXZhbCB8PSBF RFBfUFNSX0VSUk9SKGNwdV90cmFuc2NvZGVyKTsKPiAtCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1S LCB2YWwpOwo+ICsJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQo+ICsJCQltYXNrX3Jl ZyA9IFRSQU5TX1BTUl9JTVIoY3B1X3RyYW5zY29kZXIpOwo+ICsJCWVsc2UKPiArCQkJbWFza19y ZWcgPSBFRFBfUFNSX0lNUjsKPiArCj4gKwkJdmFsID0gSTkxNV9SRUFEKG1hc2tfcmVnKTsKPiAr CQl2YWwgfD0gcHNyX2Vycm9yOwo+ICsJCUk5MTVfV1JJVEUobWFza19yZWcsIHZhbCk7Cj4gIAo+ ICAJCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5wc3Iud29yayk7Cj4gIAl9Cj4gIAo+IC0JaWYg KHBzcl9paXIgJiBFRFBfUFNSX1BSRV9FTlRSWShjcHVfdHJhbnNjb2RlcikpIHsKPiArCWlmIChw c3JfaWlyICYgcHNyX2VudHJ5KSB7Cj4gIAkJZGV2X3ByaXYtPnBzci5sYXN0X2VudHJ5X2F0dGVt cHQgPSB0aW1lX25zOwo+ICAJCURSTV9ERUJVR19LTVMoIlt0cmFuc2NvZGVyICVzXSBQU1IgZW50 cnkgYXR0ZW1wdCBpbiAyIHZibGFua3NcbiIsCj4gIAkJCSAgICAgIHRyYW5zY29kZXJfbmFtZShj cHVfdHJhbnNjb2RlcikpOwo+ICAJfQo+ICAKPiAtCWlmIChwc3JfaWlyICYgRURQX1BTUl9QT1NU X0VYSVQoY3B1X3RyYW5zY29kZXIpKSB7Cj4gKwlpZiAocHNyX2lpciAmIHBzcl9leGl0KSB7Cj4g IAkJZGV2X3ByaXYtPnBzci5sYXN0X2V4aXQgPSB0aW1lX25zOwo+ICAJCURSTV9ERUJVR19LTVMo Ilt0cmFuc2NvZGVyICVzXSBQU1IgZXhpdCBjb21wbGV0ZWRcbiIsCj4gIAkJCSAgICAgIHRyYW5z Y29kZXJfbmFtZShjcHVfdHJhbnNjb2RlcikpOwo+IEBAIC02MzIsNyArNjYyLDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfcHNyX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsK PiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmCj4gLQkgICAgcHNyMl9zdXBw b3J0ZWQoZGV2X3ByaXYsIGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpCj4gKwkgICAgdHJhbnNj b2Rlcl9oYXNfcHNyMihkZXZfcHJpdiwgZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkKPiAgCQlX QVJOX09OKEk5MTVfUkVBRChFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkg JiBFRFBfUFNSMl9FTkFCTEUpOwo+ICAJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2 X3ByaXYtPnBzci50cmFuc2NvZGVyKSkgJiBFRFBfUFNSX0VOQUJMRSk7Cj4gIAlXQVJOX09OKGRl dl9wcml2LT5wc3IuYWN0aXZlKTsKPiBAQCAtNzMwLDggKzc2MCwxMyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9wc3JfZW5hYmxlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAkgKiBmaXJzdCB0aW1lIHRoYXQgUFNSIEhXIHRyaWVzIHRvIGFjdGl2YXRlIHNvIGxldHMg a2VlcCBQU1IgZGlzYWJsZWQKPiAgCSAqIHRvIGF2b2lkIGFueSByZW5kZXJpbmcgcHJvYmxlbXMu Cj4gIAkgKi8KPiAtCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7Cj4gLQl2YWwgJj0gRURQ X1BTUl9FUlJPUihkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOwo+ICsJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gMTIpIHsKPiArCQl2YWwgPSBJOTE1X1JFQUQoVFJBTlNfUFNSX0lJUihkZXZf cHJpdi0+cHNyLnRyYW5zY29kZXIpKTsKPiArCQl2YWwgJj0gVFJBTlNfUFNSX0VSUk9SOwo+ICsJ fSBlbHNlIHsKPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9JSVIpOwo+ICsJCXZhbCAmPSBF RFBfUFNSX0VSUk9SKGRldl9wcml2LT5wc3IudHJhbnNjb2Rlcik7Cj4gKwl9Cj4gIAlpZiAodmFs KSB7Cj4gIAkJZGV2X3ByaXYtPnBzci5zaW5rX25vdF9yZWxpYWJsZSA9IHRydWU7Cj4gIAkJRFJN X0RFQlVHX0tNUygiUFNSIGludGVycnVwdGlvbiBlcnJvciBzZXQsIG5vdCBlbmFibGluZyBQU1Jc biIpOwo+IEBAIC03ODcsNyArODIyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2V4aXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAKPiAgCWlmICghZGV2X3ByaXYtPnBz ci5hY3RpdmUpIHsKPiAgCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmCj4gLQkJICAg IHBzcjJfc3VwcG9ydGVkKGRldl9wcml2LCBkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKSB7Cj4g KwkJICAgIHRyYW5zY29kZXJfaGFzX3BzcjIoZGV2X3ByaXYsIGRldl9wcml2LT5wc3IudHJhbnNj b2RlcikpIHsKPiAgCQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNy LnRyYW5zY29kZXIpKTsKPiAgCQkJV0FSTl9PTih2YWwgJiBFRFBfUFNSMl9FTkFCTEUpOwo+ICAJ CX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3Iu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmgKPiBpbmRleCA0NmU0 ZGU4YjhjZDUuLjY1NzBhMjNhNjhiMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Bzci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9wc3IuaAo+IEBAIC02LDYgKzYsNyBAQAo+ICAjaWZuZGVmIF9fSU5URUxfUFNSX0hf Xwo+ICAjZGVmaW5lIF9fSU5URUxfUFNSX0hfXwo+ICAKPiArI2luY2x1ZGUgImludGVsX2Rpc3Bs YXkuaCIKSU1PIHdlIGRvbid0IG5lZWQgdG8gaW5jbHVkZSB0aGlzIGhlYWRlci4KPiAgI2luY2x1 ZGUgImludGVsX2Zyb250YnVmZmVyLmgiCj4gIAo+ICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCA3NzM5MWQ4MzI1YmYuLjYwMjRhNmVmMWM3 NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0yNjU1LDExICsyNjU1LDIyIEBA IGdlbjhfZGVfbWlzY19pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBpaXIpCj4gIAl9Cj4gIAo+ICAJaWYgKGlpciAmIEdFTjhfREVfRURQX1BTUikgewo+ IC0JCXUzMiBwc3JfaWlyID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKPiArCQl1MzIgcHNyX2lp cjsKPiArCj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKPiArCQkJZW51bSB0 cmFuc2NvZGVyIHRyYW5zID0gZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyOwo+ICsKPiArCQkJcHNy X2lpciA9IEk5MTVfUkVBRChUUkFOU19QU1JfSUlSKHRyYW5zKSk7Cj4gKwkJCUk5MTVfV1JJVEUo VFJBTlNfUFNSX0lJUih0cmFucyksIHBzcl9paXIpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXBzcl9p aXIgPSBJOTE1X1JFQUQoRURQX1BTUl9JSVIpOwo+ICsJCQlJOTE1X1dSSVRFKEVEUF9QU1JfSUlS LCBwc3JfaWlyKTsKPiArCQl9Cj4gKwo+ICsJCWlmIChwc3JfaWlyKQo+ICsJCQlmb3VuZCA9IHRy dWU7Cj4gIAo+ICAJCWludGVsX3Bzcl9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcHNyX2lpcik7Cj4g LQkJSTkxNV9XUklURShFRFBfUFNSX0lJUiwgcHNyX2lpcik7Cj4gLQkJZm91bmQgPSB0cnVlOwo+ ICAJfQo+ICAKPiAgCWlmICghZm91bmQpCj4gQEAgLTMyNzksOCArMzI5MCwyMyBAQCBzdGF0aWMg dm9pZCBnZW4xMV9pcnFfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICAKPiAgCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdFTjExX0RJU1BMQVlfSU5UX0NUTCwg MCk7Cj4gIAo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRURQX1BTUl9JTVIsIDB4ZmZm ZmZmZmYpOwo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgRURQX1BTUl9JSVIsIDB4ZmZm ZmZmZmYpOwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKPiArCQllbnVtIHRy YW5zY29kZXIgdHJhbnM7Cj4gKwo+ICsJCWZvciAodHJhbnMgPSBUUkFOU0NPREVSX0E7IHRyYW5z IDw9IFRSQU5TQ09ERVJfRDsgdHJhbnMrKykgewo+ICsJCQllbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIGRvbWFpbjsKPiArCj4gKwkJCWRvbWFpbiA9IFBPV0VSX0RPTUFJTl9UUkFOU0NP REVSKHRyYW5zKTsKPiArCQkJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2 X3ByaXYsIGRvbWFpbikpCj4gKwkJCQljb250aW51ZTsKPiArCj4gKwkJCWludGVsX3VuY29yZV93 cml0ZSh1bmNvcmUsIFRSQU5TX1BTUl9JTVIodHJhbnMpLCAweGZmZmZmZmZmKTsKPiArCQkJaW50 ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgVFJBTlNfUFNSX0lJUih0cmFucyksIDB4ZmZmZmZmZmYp OwpMaW5lcyBvdmVyIDgwIGNoYXIuCj4gKwkJfQo+ICsJfSBlbHNlIHsKPiArCQlpbnRlbF91bmNv cmVfd3JpdGUodW5jb3JlLCBFRFBfUFNSX0lNUiwgMHhmZmZmZmZmZik7Cj4gKwkJaW50ZWxfdW5j b3JlX3dyaXRlKHVuY29yZSwgRURQX1BTUl9JSVIsIDB4ZmZmZmZmZmYpOwo+ICsJfQo+ICAKPiAg CWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCj4gIAkJaWYgKGludGVsX2Rpc3BsYXlfcG93 ZXJfaXNfZW5hYmxlZChkZXZfcHJpdiwKPiBAQCAtMzc5Myw3ICszODE5LDIxIEBAIHN0YXRpYyB2 b2lkIGdlbjhfZGVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgCWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gIAkJZGVfcG9ydF9l bmFibGVzIHw9IEdFTjhfUE9SVF9EUF9BX0hPVFBMVUc7Cj4gIAo+IC0JZ2VuM19hc3NlcnRfaWly X2lzX3plcm8odW5jb3JlLCBFRFBfUFNSX0lJUik7Cj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMikgewo+ICsJCWVudW0gdHJhbnNjb2RlciB0cmFuczsKPiArCj4gKwkJZm9yICh0cmFu cyA9IFRSQU5TQ09ERVJfQTsgdHJhbnMgPD0gVFJBTlNDT0RFUl9EOyB0cmFucysrKSB7Cj4gKwkJ CWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOwo+ICsKPiArCQkJZG9tYWlu ID0gUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVIodHJhbnMpOwo+ICsJCQlpZiAoIWludGVsX2Rpc3Bs YXlfcG93ZXJfaXNfZW5hYmxlZChkZXZfcHJpdiwgZG9tYWluKSkKPiArCQkJCWNvbnRpbnVlOwo+ ICsKPiArCQkJZ2VuM19hc3NlcnRfaWlyX2lzX3plcm8odW5jb3JlLCBUUkFOU19QU1JfSUlSKHRy YW5zKSk7Cj4gKwkJfQo+ICsJfSBlbHNlIHsKPiArCQlnZW4zX2Fzc2VydF9paXJfaXNfemVybyh1 bmNvcmUsIEVEUF9QU1JfSUlSKTsKPiArCX0KPiAgCj4gIAlmb3JfZWFjaF9waXBlKGRldl9wcml2 LCBwaXBlKSB7Cj4gIAkJZGV2X3ByaXYtPmRlX2lycV9tYXNrW3BpcGVdID0gfmRlX3BpcGVfbWFz a2VkOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IDFjNmQ5OTk0NDYzMC4uM2RlMDI2 ODNkODU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTQyMjIsNyArNDIyMiw3 IEBAIGVudW0gewo+ICAjZGVmaW5lICAgRURQX1BTUl9UUDFfVElNRV8wdXMJCQkoMyA8PCA0KQo+ ICAjZGVmaW5lICAgRURQX1BTUl9JRExFX0ZSQU1FX1NISUZUCQkwCj4gIAo+IC0vKiBCc3BlYyBj bGFpbXMgdGhvc2UgYXJlbid0IHNoaWZ0ZWQgYnV0IHN0YXkgYXQgMHg2NDgwMCAqLwo+ICsvKiBC c3BlYyBjbGFpbXMgdGhvc2UgYXJlbid0IHNoaWZ0ZWQgYnV0IHN0YXkgYXQgMHg2NDgwMCB1bnRp bCBUR0wgKi8KPiAgI2RlZmluZSBFRFBfUFNSX0lNUgkJCQlfTU1JTygweDY0ODM0KQo+ICAjZGVm aW5lIEVEUF9QU1JfSUlSCQkJCV9NTUlPKDB4NjQ4MzgpCj4gICNkZWZpbmUgICBfRURQX1BTUl9U UkFOU19TSElGVCh0cmFucykJCSgodHJhbnMpID09IFRSQU5TQ09ERVJfRURQID8gXAo+IEBAIC00 MjMyLDYgKzQyMzIsMTQgQEAgZW51bSB7Cj4gICNkZWZpbmUgICBFRFBfUFNSX1BPU1RfRVhJVCh0 cmFucykJCSgweDIgPDwgX0VEUF9QU1JfVFJBTlNfU0hJRlQodHJhbnMpKQo+ICAjZGVmaW5lICAg RURQX1BTUl9QUkVfRU5UUlkodHJhbnMpCQkoMHgxIDw8IF9FRFBfUFNSX1RSQU5TX1NISUZUKHRy YW5zKSkKPiAgCj4gKyNkZWZpbmUgX1BTUl9JTVJfQQkJCQkweDYwODE0Cj4gKyNkZWZpbmUgX1BT Ul9JSVJfQQkJCQkweDYwODE4Cj4gKyNkZWZpbmUgVFJBTlNfUFNSX0lNUih0cmFuKQkJCV9NTUlP X1RSQU5TMih0cmFuLCBfUFNSX0lNUl9BKSAvKiBUR0wrICovCj4gKyNkZWZpbmUgVFJBTlNfUFNS X0lJUih0cmFuKQkJCV9NTUlPX1RSQU5TMih0cmFuLCBfUFNSX0lJUl9BKSAvKiBUR0wrICovCklN TyBpZiAvKiBUR0wrICovIGNvbW1lbnQgc2hpZnRlZCBhYm92ZSwgaXQgd2lsbCBzYXRpc2Z5IHRo ZSA4MCBjaGFyIGxpbWl0LiAgCj4gKyNkZWZpbmUgICBUUkFOU19QU1JfRVJST1IJCQkoMSA8PCAy KQo+ICsjZGVmaW5lICAgVFJBTlNfUFNSX1BPU1RfRVhJVAkJCSgxIDw8IDEpCj4gKyNkZWZpbmUg ICBUUkFOU19QU1JfUFJFX0VOVFJZCQkJKDEgPDwgMCkKPiArCj4gICNkZWZpbmUgX1NSRF9BVVhf Q1RMX0EJCQkJMHg2MDgxMAo+ICAjZGVmaW5lIF9TUkRfQVVYX0NUTF9FRFAJCQkweDZmODEwCj4g ICNkZWZpbmUgRURQX1BTUl9BVVhfQ1RMKHRyYW4pCQkJX01NSU8oX1BTUl9BREoodHJhbiwgX1NS RF9BVVhfQ1RMX0EpKQo+IC0tIAo+IDIuMjMuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=