From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH v3 6/9] drm/i915: handle interrupts from the OA unit Date: Tue, 26 Feb 2019 14:29:08 +0000 Message-ID: <20190226142911.9789-7-lionel.g.landwerlin@intel.com> References: <20190226142911.9789-1-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 350B789E69 for ; Tue, 26 Feb 2019 14:29:26 +0000 (UTC) In-Reply-To: <20190226142911.9789-1-lionel.g.landwerlin@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 List-Id: intel-gfx@lists.freedesktop.org VGhlIE9BIHVuaXQgY2FuIG5vdGlmeSB0aGF0IGl0cyBjaXJjdWxhciBidWZmZXIgaXMgaGFsZiBm dWxsIHRocm91Z2gKYW4gaW50ZXJydXB0IGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGdpdmUgdGhlIGFw cGxpY2F0aW9uIHRoZSBhYmlsaXR5IHRvCm1ha2UgdXNlIG9mIHRoaXMgaW50ZXJydXB0IHRvIGdl dCByaWQgb2YgQ1BVIGNoZWNrcyBvbiB0aGUgT0EgYnVmZmVyLgoKVGhpcyBjaGFuZ2Ugd2lyZXMg dXAgdGhlIGludGVycnVwdCB0byB0aGUgaTkxNS1wZXJmIHN0cmVhbSBhbmQgbGVhdmVzCml0IGln bm9yZWQgZm9yIG5vdy4KCnYyOiBVc2Ugc3Bpbl9sb2NrX2lycSgpIHRvIGFjY2VzcyB0aGUgSU1S IHJlZ2lzdGVyIG9uIEhhc3dlbGwgKENocmlzKQoKU2lnbmVkLW9mZi1ieTogTGlvbmVsIExhbmR3 ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8IDIxICsrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKysrLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jICAgICAgICB8IDI2ICsrKysrKysr KysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgfCAgNyAr KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgIDIgKysKIDUg ZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAppbmRleCBiNTQ5MjljYmYxZjkuLjhmYWE5Y2IyYjYyMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0xNDAwLDYgKzE0MDAsMTIgQEAgc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gewogCSAqIGJ1ZmZlciBzaG91bGQgYmUgY2hlY2tlZCBmb3IgYXZhaWxhYmxlIGRhdGEu CiAJICovCiAJdTY0IHBvbGxfb2FfcGVyaW9kOworCisJLyoqCisJICogQG9hX2ludGVycnVwdF9t b25pdG9yOiBXaGV0aGVyIHRoZSBzdHJlYW0gd2lsbCBiZSBub3RpZmllZCBieSBPQQorCSAqIGlu dGVycnVwdHMuCisJICovCisJYm9vbCBvYV9pbnRlcnJ1cHRfbW9uaXRvcjsKIH07CiAKIC8qKgpA QCAtMTg5Miw2ICsxODk4LDIxIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJCXdhaXRf cXVldWVfaGVhZF90IHBvbGxfd3E7CiAJCQlib29sIHBvbGxpbjsKIAorCQkJLyoqCisJCQkgKiBB dG9taWMgY291bnRlciBpbmNyZW1lbnRlZCBieSB0aGUgaW50ZXJydXB0CisJCQkgKiBoYW5kbGlu ZyBjb2RlIGZvciBlYWNoIE9BIGhhbGYgZnVsbCBpbnRlcnJ1cHQKKwkJCSAqIHJlY2VpdmVkLgor CQkJICovCisJCQlhdG9taWM2NF90IGhhbGZfZnVsbF9jb3VudDsKKworCQkJLyoqCisJCQkgKiBD b3B5IG9mIHRoZSBhdG9taWMgaGFsZl9mdWxsX2NvdW50IHRoYXQgd2FzIGxhc3QKKwkJCSAqIHBy b2Nlc3NlZCBpbiB0aGUgaTkxNS1wZXJmIGRyaXZlci4gSWYgYm90aCBjb3VudGVycworCQkJICog ZGlmZmVyLCB0aGVyZSBpcyBkYXRhIGF2YWlsYWJsZSB0byByZWFkIGluIHRoZSBPQQorCQkJICog YnVmZmVyLgorCQkJICovCisJCQl1NjQgaGFsZl9mdWxsX2NvdW50X2xhc3Q7CisKIAkJCS8qKgog CQkJICogRm9yIHJhdGUgbGltaXRpbmcgYW55IG5vdGlmaWNhdGlvbnMgb2Ygc3B1cmlvdXMKIAkJ CSAqIGludmFsaWQgT0EgcmVwb3J0cwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggN2M3ZTg0 ZTg2YzZhLi4xMDI4ZDBkNTU0MmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMTE3MSw2 ICsxMTcxLDEyIEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3Jwc19jaGFuZ2VfaXJxX2hhbmRsZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybjsKIH0KIAorc3RhdGlj IHZvaWQgbm90aWZ5X3BlcmZtb25fYnVmZmVyX2hhbGZfZnVsbChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKK3sKKwlhdG9taWM2NF9pbmMoJmk5MTUtPnBlcmYub2EuaGFsZl9mdWxsX2Nv dW50KTsKKwl3YWtlX3VwX2FsbCgmaTkxNS0+cGVyZi5vYS5wb2xsX3dxKTsKK30KKwogc3RhdGlj IHZvaWQgdmx2X2MwX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ c3RydWN0IGludGVsX3Jwc19laSAqZWkpCiB7CkBAIC0xNDQ3LDYgKzE0NTMsOSBAQCBzdGF0aWMg dm9pZCBzbmJfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQkgICAgICBHVF9SRU5ERVJfQ1NfTUFTVEVSX0VSUk9SX0lOVEVSUlVQVCkpCiAJCURSTV9E RUJVRygiQ29tbWFuZCBwYXJzZXIgZXJyb3IsIGd0X2lpciAweCUwOHhcbiIsIGd0X2lpcik7CiAK KwlpZiAoZ3RfaWlyICYgR1RfUEVSRk1PTl9CVUZGRVJfSEFMRl9GVUxMX0lOVEVSUlVQVCkKKwkJ bm90aWZ5X3BlcmZtb25fYnVmZmVyX2hhbGZfZnVsbChkZXZfcHJpdik7CisKIAlpZiAoZ3RfaWly ICYgR1RfUEFSSVRZX0VSUk9SKGRldl9wcml2KSkKIAkJaXZ5YnJpZGdlX3Bhcml0eV9lcnJvcl9p cnFfaGFuZGxlcihkZXZfcHJpdiwgZ3RfaWlyKTsKIH0KQEAgLTE0NjgsNiArMTQ3NywxMiBAQCBn ZW44X2NzX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIGlp cikKIAkJdGFza2xldF9oaV9zY2hlZHVsZSgmZW5naW5lLT5leGVjbGlzdHMudGFza2xldCk7CiB9 CiAKK3N0YXRpYyB2b2lkIGdlbjhfcGVyZm1vbl9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LCB1MzIgaWlyKQoreworCWlmIChpaXIgJiBHRU44X0dUX1BFUkZNT05fQlVGRkVS X0hBTEZfRlVMTF9JTlRFUlJVUFQpCisJCW5vdGlmeV9wZXJmbW9uX2J1ZmZlcl9oYWxmX2Z1bGwo aTkxNSk7Cit9CisKIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX2FjayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAkJCSAgICB1MzIgbWFzdGVyX2N0bCwgdTMyIGd0X2lpcls0XSkKIHsK QEAgLTE0NzcsNiArMTQ5Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX2FjayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICAgICAgR0VOOF9HVF9CQ1NfSVJRIHwgXAogCQkg ICAgICBHRU44X0dUX1ZDUzFfSVJRIHwgXAogCQkgICAgICBHRU44X0dUX1ZDUzJfSVJRIHwgXAor CQkgICAgICBHRU44X0dUX1dEQk9YX09BQ1NfSVJRIHwgXAogCQkgICAgICBHRU44X0dUX1ZFQ1Nf SVJRIHwgXAogCQkgICAgICBHRU44X0dUX1BNX0lSUSB8IFwKIAkJICAgICAgR0VOOF9HVF9HVUNf SVJRKQpAQCAtMTQ5OSw3ICsxNTE1LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9ndF9pcnFfYWNrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJcmF3X3JlZ193cml0ZShyZWdzLCBHRU44 X0dUX0lJUigyKSwgZ3RfaWlyWzJdKTsKIAl9CiAKLQlpZiAobWFzdGVyX2N0bCAmIEdFTjhfR1Rf VkVDU19JUlEpIHsKKwlpZiAobWFzdGVyX2N0bCAmIChHRU44X0dUX1ZFQ1NfSVJRIHwgR0VOOF9H VF9XREJPWF9PQUNTX0lSUSkpIHsKIAkJZ3RfaWlyWzNdID0gcmF3X3JlZ19yZWFkKHJlZ3MsIEdF TjhfR1RfSUlSKDMpKTsKIAkJaWYgKGxpa2VseShndF9paXJbM10pKQogCQkJcmF3X3JlZ193cml0 ZShyZWdzLCBHRU44X0dUX0lJUigzKSwgZ3RfaWlyWzNdKTsKQEAgLTE1MjMsOSArMTUzOSwxMSBA QCBzdGF0aWMgdm9pZCBnZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAogCQkJCSAgICBndF9paXJbMV0gPj4gR0VOOF9WQ1MyX0lSUV9TSElGVCk7CiAJfQog Ci0JaWYgKG1hc3Rlcl9jdGwgJiBHRU44X0dUX1ZFQ1NfSVJRKSB7CisJaWYgKG1hc3Rlcl9jdGwg JiAoR0VOOF9HVF9WRUNTX0lSUSB8IEdFTjhfR1RfV0RCT1hfT0FDU19JUlEpKSB7CiAJCWdlbjhf Y3NfaXJxX2hhbmRsZXIoaTkxNS0+ZW5naW5lW1ZFQ1NdLAogCQkJCSAgICBndF9paXJbM10gPj4g R0VOOF9WRUNTX0lSUV9TSElGVCk7CisJCWdlbjhfcGVyZm1vbl9oYW5kbGVyKGk5MTUsCisJCQkJ ICAgICBndF9paXJbM10gPj4gR0VOOF9XRF9JUlFfU0hJRlQpOwogCX0KIAogCWlmIChtYXN0ZXJf Y3RsICYgKEdFTjhfR1RfUE1fSVJRIHwgR0VOOF9HVF9HVUNfSVJRKSkgewpAQCAtMjkzNiw2ICsy OTU0LDggQEAgZ2VuMTFfb3RoZXJfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KiBjb25zdCBpOTE1LAogewogCWlmIChpbnN0YW5jZSA9PSBPVEhFUl9HVFBNX0lOU1RBTkNFKQog CQlyZXR1cm4gZ2VuNl9ycHNfaXJxX2hhbmRsZXIoaTkxNSwgaWlyKTsKKwlpZiAoaW5zdGFuY2Ug PT0gT1RIRVJfV0RPQVBFUkZfSU5TVEFOQ0UpCisJCXJldHVybiBnZW44X3BlcmZtb25faGFuZGxl cihpOTE1LCBpaXIpOwogCiAJV0FSTl9PTkNFKDEsICJ1bmhhbmRsZWQgb3RoZXIgaW50ZXJydXB0 IGluc3RhbmNlPTB4JXgsIGlpcj0weCV4XG4iLAogCQkgIGluc3RhbmNlLCBpaXIpOwpAQCAtMzc2 OSw2ICszNzg5LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJCWd0X2lycXMgfD0gR1RfQkxUX1VTRVJfSU5URVJSVVBUIHwg R1RfQlNEX1VTRVJfSU5URVJSVVBUOwogCX0KIAorCS8qIFdlIG9ubHkgZXhwb3NlIHRoZSBpOTE1 L3BlcmYgaW50ZXJmYWNlIG9uIEhTVysuICovCisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQor CQlndF9pcnFzIHw9IEdUX1BFUkZNT05fQlVGRkVSX0hBTEZfRlVMTF9JTlRFUlJVUFQ7CisKIAlH RU4zX0lSUV9JTklUKEdULCBkZXZfcHJpdi0+Z3RfaXJxX21hc2ssIGd0X2lycXMpOwogCiAJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewpAQCAtMzg5OCw3ICszOTIyLDggQEAgc3RhdGlj IHZvaWQgZ2VuOF9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFf U0hJRlQsCiAJCTAsCiAJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1ZFQ1NfSVJR X1NISUZUIHwKLQkJCUdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X1ZFQ1NfSVJR X1NISUZUCisJCQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WRUNTX0lSUV9T SElGVCB8CisJCQlHRU44X0dUX1BFUkZNT05fQlVGRkVSX0hBTEZfRlVMTF9JTlRFUlJVUFQgPDwg R0VOOF9XRF9JUlFfU0hJRlQKIAkJfTsKIAogCWRldl9wcml2LT5wbV9pZXIgPSAweDA7CkBAIC00 MDE3LDEyICs0MDQyLDEyIEBAIHN0YXRpYyB2b2lkIGdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAkvKgogCSAqIFJQUyBpbnRlcnJ1 cHRzIHdpbGwgZ2V0IGVuYWJsZWQvZGlzYWJsZWQgb24gZGVtYW5kIHdoZW4gUlBTIGl0c2VsZgot CSAqIGlzIGVuYWJsZWQvZGlzYWJsZWQuCisJICogaXMgZW5hYmxlZC9kaXNhYmxlZCwganVzdCBl bmFibGUgdGhlIE9BIGludGVycnVwdCBmb3Igbm93LgogCSAqLwotCWRldl9wcml2LT5wbV9pZXIg PSAweDA7CisJZGV2X3ByaXYtPnBtX2llciA9IEdFTjhfR1RfUEVSRk1PTl9CVUZGRVJfSEFMRl9G VUxMX0lOVEVSUlVQVDsKIAlkZXZfcHJpdi0+cG1faW1yID0gfmRldl9wcml2LT5wbV9pZXI7Ci0J STkxNV9XUklURShHRU4xMV9HUE1fV0dCT1hQRVJGX0lOVFJfRU5BQkxFLCAwKTsKLQlJOTE1X1dS SVRFKEdFTjExX0dQTV9XR0JPWFBFUkZfSU5UUl9NQVNLLCAgfjApOworCUk5MTVfV1JJVEUoR0VO MTFfR1BNX1dHQk9YUEVSRl9JTlRSX0VOQUJMRSwgZGV2X3ByaXYtPnBtX2llcik7CisJSTkxNV9X UklURShHRU4xMV9HUE1fV0dCT1hQRVJGX0lOVFJfTUFTSywgIGRldl9wcml2LT5wbV9pbXIpOwog fQogCiBzdGF0aWMgdm9pZCBpY3BfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCmluZGV4IDVlZjkxNjRhMjJhMC4uM2FiMzg5ZWRm MWRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwpAQCAtMzM3LDYgKzMzNyw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9mb3JtYXQgZ2VuOF9wbHVzX29hX2Zvcm1hdHNbSTkxNV9P QV9GT1JNQVRfTUFYXSA9IHsKICAqIEBvYV9wZXJpb2RfZXhwb25lbnQ6IFRoZSBPQSB1bml0IHNh bXBsaW5nIHBlcmlvZCBpcyBkZXJpdmVkIGZyb20gdGhpcwogICogQHBvbGxfb2FfcGVyaW9kOiBU aGUgcGVyaW9kIGF0IHdoaWNoIHRoZSBDUFUgd2lsbCBjaGVjayBmb3IgT0EgZGF0YQogICogYXZh aWxhYmlsaXR5CisgKiBAb2FfaW50ZXJydXB0X21vbml0b3I6IFdoZXRoZXIgd2Ugc2hvdWxkIG1v bml0b3IgdGhlIE9BIGludGVycnVwdC4KICAqCiAgKiBBcyByZWFkX3Byb3BlcnRpZXNfdW5sb2Nr ZWQoKSBlbnVtZXJhdGVzIGFuZCB2YWxpZGF0ZXMgdGhlIHByb3BlcnRpZXMgZ2l2ZW4KICAqIHRv IG9wZW4gYSBzdHJlYW0gb2YgbWV0cmljcyB0aGUgY29uZmlndXJhdGlvbiBpcyBidWlsdCB1cCBp biB0aGUgc3RydWN0dXJlCkBAIC0zNTQsNiArMzU1LDcgQEAgc3RydWN0IHBlcmZfb3Blbl9wcm9w ZXJ0aWVzIHsKIAlib29sIG9hX3BlcmlvZGljOwogCWludCBvYV9wZXJpb2RfZXhwb25lbnQ7CiAJ dTY0IHBvbGxfb2FfcGVyaW9kOworCWJvb2wgb2FfaW50ZXJydXB0X21vbml0b3I7CiB9OwogCiBz dGF0aWMgdm9pZCBmcmVlX29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCkBAIC0xODM4LDYgKzE4NDAsMTMgQEAgc3RhdGljIHZvaWQgZ2VuN19vYV9lbmFibGUoc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKi8KIAlnZW43X2luaXRfb2FfYnVmZmVy KGRldl9wcml2KTsKIAorCWlmIChzdHJlYW0tPm9hX2ludGVycnVwdF9tb25pdG9yKSB7CisJCXNw aW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJCWdlbjVfZW5hYmxlX2d0X2lycShk ZXZfcHJpdiwKKwkJCQkgICBHVF9QRVJGTU9OX0JVRkZFUl9IQUxGX0ZVTExfSU5URVJSVVBUKTsK KwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCX0KKwogCUk5MTVfV1JJ VEUoR0VON19PQUNPTlRST0wsCiAJCSAgIChjdHhfaWQgJiBHRU43X09BQ09OVFJPTF9DVFhfTUFT SykgfAogCQkgICAocGVyaW9kX2V4cG9uZW50IDw8CkBAIC0xODY0LDYgKzE4NzMsOSBAQCBzdGF0 aWMgdm9pZCBnZW44X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQog CSAqLwogCWdlbjhfaW5pdF9vYV9idWZmZXIoZGV2X3ByaXYpOwogCisJaWYgKHN0cmVhbS0+b2Ff aW50ZXJydXB0X21vbml0b3IpCisJCUk5MTVfV1JJVEUoR0VOOF9PQV9JTVIsIH5HRU44X09BX0lN Ul9NQVNLX0lOVFIpOworCiAJLyoKIAkgKiBOb3RlOiB3ZSBkb24ndCByZWx5IG9uIHRoZSBoYXJk d2FyZSB0byBwZXJmb3JtIHNpbmdsZSBjb250ZXh0CiAJICogZmlsdGVyaW5nIGFuZCBpbnN0ZWFk IGZpbHRlciBvbiB0aGUgY3B1IGJhc2VkIG9uIHRoZSBjb250ZXh0LWlkCkBAIC0xODkzLDYgKzE5 MDUsMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9zdHJlYW1fZW5hYmxlKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0pCiAJICovCiAJZGV2X3ByaXYtPnBlcmYub2EucG9sbGluID0gZmFs c2U7CiAKKwlkZXZfcHJpdi0+cGVyZi5vYS5oYWxmX2Z1bGxfY291bnRfbGFzdCA9IDA7CisJYXRv bWljNjRfc2V0KCZkZXZfcHJpdi0+cGVyZi5vYS5oYWxmX2Z1bGxfY291bnQsCisJCSAgICAgZGV2 X3ByaXYtPnBlcmYub2EuaGFsZl9mdWxsX2NvdW50X2xhc3QpOworCiAJZGV2X3ByaXYtPnBlcmYu b2Eub3BzLm9hX2VuYWJsZShzdHJlYW0pOwogCiAJaWYgKGRldl9wcml2LT5wZXJmLm9hLnBlcmlv ZGljICYmIHN0cmVhbS0+cG9sbF9vYV9wZXJpb2QpCkBAIC0xOTA1LDYgKzE5MjEsMTMgQEAgc3Rh dGljIHZvaWQgZ2VuN19vYV9kaXNhYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0p CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJp djsKIAorCWlmIChzdHJlYW0tPm9hX2ludGVycnVwdF9tb25pdG9yKSB7CisJCXNwaW5fbG9ja19p cnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJCWdlbjVfZGlzYWJsZV9ndF9pcnEoZGV2X3ByaXYs CisJCQkJICAgIEdUX1BFUkZNT05fQlVGRkVSX0hBTEZfRlVMTF9JTlRFUlJVUFQpOworCQlzcGlu X3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJfQorCiAJSTkxNV9XUklURShHRU43 X09BQ09OVFJPTCwgMCk7CiAJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAog CQkJCSAgICBHRU43X09BQ09OVFJPTCwgR0VON19PQUNPTlRST0xfRU5BQkxFLCAwLApAQCAtMTkx Niw2ICsxOTM5LDggQEAgc3RhdGljIHZvaWQgZ2VuOF9vYV9kaXNhYmxlKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAorCUk5MTVfV1JJVEUoR0VOOF9PQV9JTVIsIDB4ZmZmZmZm ZmYpOworCiAJSTkxNV9XUklURShHRU44X09BQ09OVFJPTCwgMCk7CiAJaWYgKGludGVsX3dhaXRf Zm9yX3JlZ2lzdGVyKGRldl9wcml2LAogCQkJCSAgICBHRU44X09BQ09OVFJPTCwgR0VOOF9PQV9D T1VOVEVSX0VOQUJMRSwgMCwKQEAgLTI1OTEsNiArMjYxNiw3IEBAIGk5MTVfcGVyZl9vcGVuX2lv Y3RsX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJc3RyZWFtLT5k ZXZfcHJpdiA9IGRldl9wcml2OwogCXN0cmVhbS0+Y3R4ID0gc3BlY2lmaWNfY3R4OwogCXN0cmVh bS0+cG9sbF9vYV9wZXJpb2QgPSBwcm9wcy0+cG9sbF9vYV9wZXJpb2Q7CisJc3RyZWFtLT5vYV9p bnRlcnJ1cHRfbW9uaXRvciA9IHByb3BzLT5vYV9pbnRlcnJ1cHRfbW9uaXRvcjsKIAogCXJldCA9 IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RyZWFtLCBwYXJhbSwgcHJvcHMpOwogCWlmIChyZXQpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA3MzBiYjE5MTdmZDEuLjYyZTkzYTQ5MmQyNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0yMjksNiArMjI5LDcgQEAgc3RhdGljIGlubGluZSBi b29sIGk5MTVfbW1pb19yZWdfdmFsaWQoaTkxNV9yZWdfdCByZWcpCiAjZGVmaW5lIE1BWF9FTkdJ TkVfQ0xBU1MJNAogCiAjZGVmaW5lIE9USEVSX0dUUE1fSU5TVEFOQ0UJMQorI2RlZmluZSBPVEhF Ul9XRE9BUEVSRl9JTlNUQU5DRQkyCiAjZGVmaW5lIE1BWF9FTkdJTkVfSU5TVEFOQ0UgICAgMwog CiAvKiBQQ0kgY29uZmlnIHNwYWNlICovCkBAIC02NDEsNiArNjQyLDkgQEAgc3RhdGljIGlubGlu ZSBib29sIGk5MTVfbW1pb19yZWdfdmFsaWQoaTkxNV9yZWdfdCByZWcpCiAjZGVmaW5lIE9BQlVG RkVSX1NJWkVfOE0gICAgKDYgPDwgMykKICNkZWZpbmUgT0FCVUZGRVJfU0laRV8xNk0gICAoNyA8 PCAzKQogCisjZGVmaW5lIEdFTjhfT0FfSU1SIF9NTUlPKDB4MmIyMCkKKyNkZWZpbmUgIEdFTjhf T0FfSU1SX01BU0tfSU5UUiAoMSA8PCAyOCkKKwogLyoKICAqIEZsZXhpYmxlLCBBZ2dyZWdhdGUg RVUgQ291bnRlciBSZWdpc3RlcnMuCiAgKiBOb3RlOiB0aGVzZSBhcmVuJ3QgY29udGlndW91cwpA QCAtMjkyMyw3ICsyOTI3LDkgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewogI2RlZmluZSBH VF9CTFRfVVNFUl9JTlRFUlJVUFQJCQkoMSA8PCAyMikKICNkZWZpbmUgR1RfQlNEX0NTX0VSUk9S X0lOVEVSUlVQVAkJKDEgPDwgMTUpCiAjZGVmaW5lIEdUX0JTRF9VU0VSX0lOVEVSUlVQVAkJCSgx IDw8IDEyKQorI2RlZmluZSBHRU44X0dUX1BFUkZNT05fQlVGRkVSX0hBTEZfRlVMTF9JTlRFUlJV UFQgKDEgPDwgMTIpIC8qIGJkdysgKi8KICNkZWZpbmUgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJP Ul9JTlRFUlJVUFRfUzEJKDEgPDwgMTEpIC8qIGhzdys7IHJzdmQgb24gc25iLCBpdmIsIHZsdiAq LworI2RlZmluZSBHVF9QRVJGTU9OX0JVRkZFUl9IQUxGX0ZVTExfSU5URVJSVVBUICAgKDEgPDwg IDkpIC8qIGl2YisgYnV0IG9ubHkgdXNlZCBvbiBoc3crICovCiAjZGVmaW5lIEdUX0NPTlRFWFRf U1dJVENIX0lOVEVSUlVQVAkJKDEgPDwgIDgpCiAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlf RVJST1JfSU5URVJSVVBUCSgxIDw8ICA1KSAvKiAhc25iICovCiAjZGVmaW5lIEdUX1JFTkRFUl9Q SVBFQ1RMX05PVElGWV9JTlRFUlJVUFQJKDEgPDwgIDQpCkBAIC03MjQ2LDYgKzcyNTIsNyBAQCBl bnVtIHsKICNkZWZpbmUgIEdFTjhfREVfUElQRV9CX0lSUQkJKDEgPDwgMTcpCiAjZGVmaW5lICBH RU44X0RFX1BJUEVfQV9JUlEJCSgxIDw8IDE2KQogI2RlZmluZSAgR0VOOF9ERV9QSVBFX0lSUShw aXBlKQkJKDEgPDwgKDE2ICsgKHBpcGUpKSkKKyNkZWZpbmUgIEdFTjhfR1RfV0RCT1hfT0FDU19J UlEgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSAgR0VOOF9HVF9WRUNTX0lSUQkJKDEgPDwgNikK ICNkZWZpbmUgIEdFTjhfR1RfR1VDX0lSUQkJKDEgPDwgNSkKICNkZWZpbmUgIEdFTjhfR1RfUE1f SVJRCQkJKDEgPDwgNCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRl eCAxYjk2YjA5NjBhZGMuLmM5YzQ2MDYxMmE1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwpAQCAtMjMwNCw2ICsyMzA0LDggQEAgaW50IGludGVsX2luaXRfcmVuZGVy X3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWlmIChIQVNf TDNfRFBGKGRldl9wcml2KSkKIAkJZW5naW5lLT5pcnFfa2VlcF9tYXNrID0gR1RfUkVOREVSX0wz X1BBUklUWV9FUlJPUl9JTlRFUlJVUFQ7CisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQorCQll bmdpbmUtPmlycV9rZWVwX21hc2sgfD0gR1RfUEVSRk1PTl9CVUZGRVJfSEFMRl9GVUxMX0lOVEVS UlVQVDsKIAogCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfUkVOREVSX1VTRVJfSU5URVJS VVBUOwogCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==