From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 07/27] drm/i915/icl: Interrupt handling Date: Tue, 9 Jan 2018 21:23:16 -0200 Message-ID: <20180109232336.11029-8-paulo.r.zanoni@intel.com> References: <20180109232336.11029-1-paulo.r.zanoni@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 5B1686E170 for ; Tue, 9 Jan 2018 23:24:21 +0000 (UTC) In-Reply-To: <20180109232336.11029-1-paulo.r.zanoni@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: Rodrigo Vivi , Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCnYyOiBSZWJh c2UuCgp2MzoKICAqIFJlbW92ZSBEUEYsIGl0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBTS0wrLgog ICogRml4IC1pbnRlcm5hbCByZWJhc2Ugd3J0LiBleGVjbGlzdHMgaW50ZXJydXB0IGhhbmRsaW5n LgoKdjQ6IFJlYmFzZS4KCnY1OgogICogVXBkYXRlZCBmb3IgUE9SIGNoYW5nZXMuIChEYW5pZWxl IENlcmFvbG8gU3B1cmlvKQogICogTWVyZ2VkIHdpdGggaXJxIGhhbmRsaW5nIGZpeGVzIGJ5IERh bmllbGUgQ2VyYW9sbyBTcHVyaW86CiAgICAgICogU2ltcGxpZnkgdGhlIGNvZGUgYnkgdXNpbmcg Z2VuOF9jc19pcnFfaGFuZGxlci4KICAgICAgKiBGaXggaW50ZXJydXB0IGhhbmRsaW5nIGZvciB0 aGUgdXBzdHJlYW0ga2VybmVsLgoKdjY6CiAgKiBSZW1vdmUgZWFybHkgYnJpbmd1cCBkZWJ1ZyBt ZXNzYWdlcyAoVHZydGtvKQogICogQWRkIE5CIGFib3V0IGFyYml0cmFyeSBzcGluIHdhaXQgdGlt ZW91dCAoVHZydGtvKQoKdjcgKGZyb20gUGF1bG8pOgogICogRG9uJ3QgdHJ5IHRvIHdyaXRlIFJP IGJpdHMgdG8gcmVnaXN0ZXJzLgogICogRG9uJ3QgY2hlY2sgZm9yIFBDSCB0eXBlcyB0aGF0IGRv bid0IGV4aXN0LiBQQ0ggaW50ZXJydXB0cyBhcmUgbm90CiAgICBoZXJlIHlldC4KClNpZ25lZC1v ZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNv bT4KU2lnbmVkLW9mZi1ieTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KU2ln bmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyB8IDIxMCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwg ICA3ICstCiAyIGZpbGVzIGNoYW5nZWQsIDIxNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggMzUxN2M2NTQ4ZTJjLi40OWZiOGQ2MGY3NzAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtNDE1LDYgKzQxNSw5IEBAIHZvaWQgZ2VuNl9l bmFibGVfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CWlmIChSRUFEX09OQ0UocnBzLT5pbnRlcnJ1cHRzX2VuYWJsZWQpKQogCQlyZXR1cm47CiAKKwlp ZiAoV0FSTl9PTl9PTkNFKElTX0dFTjExKGRldl9wcml2KSkpCisJCXJldHVybjsKKwogCXNwaW5f bG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAJV0FSTl9PTl9PTkNFKHJwcy0+cG1faWly KTsKIAlXQVJOX09OX09OQ0UoSTkxNV9SRUFEKGdlbjZfcG1faWlyKGRldl9wcml2KSkgJiBkZXZf cHJpdi0+cG1fcnBzX2V2ZW50cyk7CkBAIC00MzEsNiArNDM0LDkgQEAgdm9pZCBnZW42X2Rpc2Fi bGVfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlm ICghUkVBRF9PTkNFKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKSkKIAkJcmV0dXJuOwogCisJaWYg KFdBUk5fT05fT05DRShJU19HRU4xMShkZXZfcHJpdikpKQorCQlyZXR1cm47CisKIAlzcGluX2xv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCXJwcy0+aW50ZXJydXB0c19lbmFibGVkID0g ZmFsc2U7CiAKQEAgLTI3NTEsNiArMjc1NywxMzEgQEAgc3RhdGljIHZvaWQgX19maW5pX3dlZGdl KHN0cnVjdCB3ZWRnZV9tZSAqdykKIAkgICAgIChXKS0+aTkxNTsJCQkJCQkJXAogCSAgICAgX19m aW5pX3dlZGdlKChXKSkpCiAKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZAorZ2VuMTFfY3Nf aXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaWlyKQorewor CWdlbjhfY3NfaXJxX2hhbmRsZXIoZW5naW5lLCBpaXIsIDApOworfQorCitzdGF0aWMgaXJxcmV0 dXJuX3QKK2dlbjExX2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTMyIG1hc3Rlcl9jdGwpCit7CisJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7CisJ dTE2IGlycVsyXVszMl07CisJdTMyIGR3LCBpZGVudDsKKwl1bnNpZ25lZCBsb25nIHRtcDsKKwl1 bnNpZ25lZCBpbnQgYmFuaywgYml0LCBlbmdpbmU7CisJdW5zaWduZWQgbG9uZyB3YWl0X3N0YXJ0 LCB3YWl0X2VuZDsKKworCW1lbXNldChpcnEsIDAsIHNpemVvZihpcnEpKTsKKworCWZvciAoYmFu ayA9IDA7IGJhbmsgPCAyOyBiYW5rKyspIHsKKwkJaWYgKG1hc3Rlcl9jdGwgJiBHRU4xMV9HVF9E V19JUlEoYmFuaykpIHsKKwkJCWR3ID0gSTkxNV9SRUFEX0ZXKEdFTjExX0dUX0lOVFJfRFcoYmFu aykpOworCQkJaWYgKCFkdykKKwkJCQlEUk1fRVJST1IoIkdUX0lOVFJfRFcldSBibGFuayFcbiIs IGJhbmspOworCQkJdG1wID0gZHc7CisJCQlmb3JfZWFjaF9zZXRfYml0KGJpdCwgJnRtcCwgMzIp IHsKKwkJCQlJOTE1X1dSSVRFX0ZXKEdFTjExX0lJUl9SRUdfU0VMRUNUT1IoYmFuayksIDEgPDwg Yml0KTsKKwkJCQl3YWl0X3N0YXJ0ID0gbG9jYWxfY2xvY2soKSA+PiAxMDsKKwkJCQkvKiBOQjog U3BlY3MgZG8gbm90IHNwZWNpZnkgaG93IGxvbmcgdG8gc3BpbiB3YWl0LgorCQkJCSAqIFRha2lu ZyAxMDB1cyBhcyBhbiBlZHVjYXRlZCBndWVzcyAqLworCQkJCXdhaXRfZW5kID0gd2FpdF9zdGFy dCArIDEwMDsKKwkJCQlkbyB7CisJCQkJCWlkZW50ID0gSTkxNV9SRUFEX0ZXKEdFTjExX0lOVFJf SURFTlRJVFlfUkVHKGJhbmspKTsKKwkJCQl9IHdoaWxlICghKGlkZW50ICYgR0VOMTFfSU5UUl9E QVRBX1ZBTElEKSAmJgorCQkJCQkgIXRpbWVfYWZ0ZXIoKHVuc2lnbmVkIGxvbmcpbG9jYWxfY2xv Y2soKSA+PiAxMCwgd2FpdF9lbmQpKTsKKworCQkJCWlmICghKGlkZW50ICYgR0VOMTFfSU5UUl9E QVRBX1ZBTElEKSkKKwkJCQkJRFJNX0VSUk9SKCJJTlRSX0lERU5USVRZX1JFRyV1OiV1IHRpbWVk IG91dCFcbiIsCisJCQkJCQkgIGJhbmssIGJpdCk7CisKKwkJCQlpcnFbYmFua11bYml0XSA9IGlk ZW50ICYgR0VOMTFfSU5UUl9FTkdJTkVfTUFTSzsKKwkJCQlpZiAoIWlycVtiYW5rXVtiaXRdKQor CQkJCQlEUk1fRVJST1IoIklOVFJfSURFTlRJVFlfUkVHJXU6JXUgYmxhbmshXG4iLAorCQkJCQkJ ICBiYW5rLCBiaXQpOworCQkJCUk5MTVfV1JJVEVfRlcoR0VOMTFfSU5UUl9JREVOVElUWV9SRUco YmFuayksIGlkZW50KTsKKwkJCX0KKwkJCUk5MTVfV1JJVEVfRlcoR0VOMTFfR1RfSU5UUl9EVyhi YW5rKSwgZHcpOworCQl9CisJfQorCisJaWYgKGlycVswXVtHRU4xMV9SQ1MwXSkgeworCQlnZW4x MV9jc19pcnFfaGFuZGxlcihkZXZfcHJpdi0+ZW5naW5lW1JDU10sCisJCQkJICAgICBpcnFbMF1b R0VOMTFfUkNTMF0pOworCQlyZXQgPSBJUlFfSEFORExFRDsKKwl9CisKKwlpZiAoaXJxWzBdW0dF TjExX0JDU10pIHsKKwkJZ2VuMTFfY3NfaXJxX2hhbmRsZXIoZGV2X3ByaXYtPmVuZ2luZVtCQ1Nd LAorCQkJCSAgICAgaXJxWzBdW0dFTjExX0JDU10pOworCQlyZXQgPSBJUlFfSEFORExFRDsKKwl9 CisKKwlmb3IgKGVuZ2luZSA9IDA7IGVuZ2luZSA8IDQ7IGVuZ2luZSsrKSB7CisJCWlmIChpcnFb MV1bR0VOMTFfVkNTKGVuZ2luZSldKSB7CisJCQlnZW4xMV9jc19pcnFfaGFuZGxlcihkZXZfcHJp di0+ZW5naW5lW19WQ1MoZW5naW5lKV0sCisJCQkJCSAgICAgaXJxWzFdW0dFTjExX1ZDUyhlbmdp bmUpXSk7CisJCQlyZXQgPSBJUlFfSEFORExFRDsKKwkJfQorCX0KKworCWZvciAoZW5naW5lID0g MDsgZW5naW5lIDwgMjsgZW5naW5lKyspIHsKKwkJaWYgKGlycVsxXVtHRU4xMV9WRUNTKGVuZ2lu ZSldKSB7CisJCQlnZW4xMV9jc19pcnFfaGFuZGxlcihkZXZfcHJpdi0+ZW5naW5lW19WRUNTKGVu Z2luZSldLAorCQkJCQkgICAgIGlycVsxXVtHRU4xMV9WRUNTKGVuZ2luZSldKTsKKwkJCXJldCA9 IElSUV9IQU5ETEVEOworCQl9CisJfQorCisJaWYgKGlycVswXVtHRU4xMV9HVFBNXSAmIGRldl9w cml2LT5wbV9ycHNfZXZlbnRzKSB7CisJCXJldCA9IElSUV9IQU5ETEVEOworCQlnZW42X3Jwc19p cnFfaGFuZGxlcihkZXZfcHJpdiwgdG1wKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgaXJxcmV0dXJuX3QgZ2VuMTFfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQorewor CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhcmc7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MzIgbWFzdGVyX2N0bDsKKwl1MzIgZGlz cF9jdGw7CisJaXJxcmV0dXJuX3QgcmV0OworCisJaWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2 X3ByaXYpKQorCQlyZXR1cm4gSVJRX05PTkU7CisKKwltYXN0ZXJfY3RsID0gSTkxNV9SRUFEX0ZX KEdFTjExX0dGWF9NU1RSX0lSUSk7CisKKwltYXN0ZXJfY3RsICY9IH5HRU4xMV9NQVNURVJfSVJR OworCWlmICghbWFzdGVyX2N0bCkKKwkJcmV0dXJuIElSUV9OT05FOworCisJLyogRGlzYWJsZSBp bnRlcnJ1cHRzLiAqLworCUk5MTVfV1JJVEVfRlcoR0VOMTFfR0ZYX01TVFJfSVJRLCAwKTsKKwor CS8qIElSUXMgYXJlIHN5bmNlZCBkdXJpbmcgcnVudGltZV9zdXNwZW5kLCB3ZSBkb24ndCByZXF1 aXJlIGEgd2FrZXJlZiAqLworCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7 CisKKwkvKiBGaW5kLCBjbGVhciwgdGhlbiBwcm9jZXNzIGVhY2ggc291cmNlIG9mIGludGVycnVw dC4gKi8KKwlyZXQgPSBnZW4xMV9ndF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgbWFzdGVyX2N0bCk7 CisKKwlpZiAobWFzdGVyX2N0bCAmIEdFTjExX0RJU1BMQVlfSVJRKSB7CisJCWRpc3BfY3RsID0g STkxNV9SRUFEX0ZXKEdFTjExX0RJU1BMQVlfSU5UX0NUTCk7CisJCXJldCB8PSBnZW44X2RlX2ly cV9oYW5kbGVyKGRldl9wcml2LCBkaXNwX2N0bCk7CisJfQorCisJLyogQWNrbm93bGVkZ2UgYW5k IGVuYWJsZSBpbnRlcnJ1cHRzLiAqLworCUk5MTVfV1JJVEVfRlcoR0VOMTFfR0ZYX01TVFJfSVJR LCBHRU4xMV9NQVNURVJfSVJRIHwgbWFzdGVyX2N0bCk7CisJUE9TVElOR19SRUFEX0ZXKEdFTjEx X0dGWF9NU1RSX0lSUSk7CisKKwllbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7 CisKKwlyZXR1cm4gcmV0OworfQorCiAvKioKICAqIGk5MTVfcmVzZXRfZGV2aWNlIC0gZG8gcHJv Y2VzcyBjb250ZXh0IGVycm9yIGhhbmRsaW5nIHdvcmsKICAqIEBkZXZfcHJpdjogaTkxNSBkZXZp Y2UgcHJpdmF0ZQpAQCAtMzE2NCw2ICszMjk1LDQyIEBAIHN0YXRpYyB2b2lkIGdlbjhfaXJxX3Jl c2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWlieF9pcnFfcmVzZXQoZGV2X3ByaXYpOwog fQogCitzdGF0aWMgdm9pZCBnZW4xMV9ndF9pcnFfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQoreworCS8qIERpc2FibGUgUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBjbGFz cyBlbmdpbmVzLiAqLworCUk5MTVfV1JJVEUoR0VOMTFfUkVOREVSX0NPUFlfSU5UUl9FTkFCTEUs IDApOworCUk5MTVfV1JJVEUoR0VOMTFfVkNTX1ZFQ1NfSU5UUl9FTkFCTEUsCSAgMCk7CisKKwkv KiBSZXN0b3JlIG1hc2tzIGlycXMgb24gUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBlbmdpbmVzLiAq LworCUk5MTVfV1JJVEUoR0VOMTFfUkNTMF9SU1ZEX0lOVFJfTUFTSywJfjApOworCUk5MTVfV1JJ VEUoR0VOMTFfQkNTX1JTVkRfSU5UUl9NQVNLLAl+MCk7CisJSTkxNV9XUklURShHRU4xMV9WQ1Mw X1ZDUzFfSU5UUl9NQVNLLAl+MCk7CisJSTkxNV9XUklURShHRU4xMV9WQ1MyX1ZDUzNfSU5UUl9N QVNLLAl+MCk7CisJSTkxNV9XUklURShHRU4xMV9WRUNTMF9WRUNTMV9JTlRSX01BU0ssCX4wKTsK K30KKworc3RhdGljIHZvaWQgZ2VuMTFfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKKwlpbnQgcGlwZTsKKworCUk5MTVfV1JJVEUoR0VOMTFfR0ZYX01TVFJfSVJRLCAwKTsKKwlQ T1NUSU5HX1JFQUQoR0VOMTFfR0ZYX01TVFJfSVJRKTsKKworCWdlbjExX2d0X2lycV9yZXNldChk ZXZfcHJpdik7CisKKwlJOTE1X1dSSVRFKEdFTjExX0RJU1BMQVlfSU5UX0NUTCwgMCk7CisKKwlm b3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQorCQlpZiAoaW50ZWxfZGlzcGxheV9wb3dlcl9p c19lbmFibGVkKGRldl9wcml2LAorCQkJCQkJICAgUE9XRVJfRE9NQUlOX1BJUEUocGlwZSkpKQor CQkJR0VOOF9JUlFfUkVTRVRfTkRYKERFX1BJUEUsIHBpcGUpOworCisJR0VOM19JUlFfUkVTRVQo R0VOOF9ERV9QT1JUXyk7CisJR0VOM19JUlFfUkVTRVQoR0VOOF9ERV9NSVNDXyk7CisJR0VOM19J UlFfUkVTRVQoR0VOOF9QQ1VfKTsKK30KKwogdm9pZCBnZW44X2lycV9wb3dlcl93ZWxsX3Bvc3Rf ZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgIHU4IHBp cGVfbWFzaykKIHsKQEAgLTM2NTgsNiArMzgyNSw0MSBAQCBzdGF0aWMgaW50IGdlbjhfaXJxX3Bv c3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyB2b2lkIGdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCit7CisJY29uc3QgdTMyIGlycXMgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQg fCBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQ7CisKKwlCVUlMRF9CVUdfT04oaXJxcyAmIDB4 ZmZmZjAwMDApOworCisJLyogRW5hYmxlIFJDUywgQkNTLCBWQ1MgYW5kIFZFQ1MgY2xhc3MgaW50 ZXJydXB0cy4gKi8KKwlJOTE1X1dSSVRFKEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5BQkxFLCBp cnFzIDw8IDE2IHwgaXJxcyk7CisJSTkxNV9XUklURShHRU4xMV9WQ1NfVkVDU19JTlRSX0VOQUJM RSwJICBpcnFzIDw8IDE2IHwgaXJxcyk7CisKKwkvKiBVbm1hc2sgaXJxcyBvbiBSQ1MsIEJDUywg VkNTIGFuZCBWRUNTIGVuZ2luZXMuICovCisJSTkxNV9XUklURShHRU4xMV9SQ1MwX1JTVkRfSU5U Ul9NQVNLLAl+KGlycXMgPDwgMTYpKTsKKwlJOTE1X1dSSVRFKEdFTjExX0JDU19SU1ZEX0lOVFJf TUFTSywJfihpcnFzIDw8IDE2KSk7CisJSTkxNV9XUklURShHRU4xMV9WQ1MwX1ZDUzFfSU5UUl9N QVNLLAl+KGlycXMgfCBpcnFzIDw8IDE2KSk7CisJSTkxNV9XUklURShHRU4xMV9WQ1MyX1ZDUzNf SU5UUl9NQVNLLAl+KGlycXMgfCBpcnFzIDw8IDE2KSk7CisJSTkxNV9XUklURShHRU4xMV9WRUNT MF9WRUNTMV9JTlRSX01BU0ssCX4oaXJxcyB8IGlycXMgPDwgMTYpKTsKKworCWRldl9wcml2LT5w bV9pbXIgPSAweGZmZmZmZmZmOyAvKiBUT0RPICovCit9CisKK3N0YXRpYyBpbnQgZ2VuMTFfaXJx X3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWdlbjExX2d0X2lycV9w b3N0aW5zdGFsbChkZXZfcHJpdik7CisJZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYp OworCisJSTkxNV9XUklURShHRU4xMV9ESVNQTEFZX0lOVF9DVEwsIEdFTjExX0RJU1BMQVlfSVJR X0VOQUJMRSk7CisKKwlJOTE1X1dSSVRFKEdFTjExX0dGWF9NU1RSX0lSUSwgR0VOMTFfTUFTVEVS X0lSUSk7CisJUE9TVElOR19SRUFEKEdFTjExX0dGWF9NU1RSX0lSUSk7CisKKwlyZXR1cm4gMDsK K30KKwogc3RhdGljIGludCBjaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKQEAgLTQxMDYsNiArNDMwOCwxNCBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZGV2LT5kcml2ZXItPmVuYWJsZV92Ymxh bmsgPSBpOTY1X2VuYWJsZV92Ymxhbms7CiAJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9 IGk5NjVfZGlzYWJsZV92Ymxhbms7CiAJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAg PSBpOTE1X2hwZF9pcnFfc2V0dXA7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDExKSB7CisJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjExX2lycV9oYW5kbGVyOwor CQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBnZW4xMV9pcnFfcmVzZXQ7CisJCWRldi0+ ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBnZW4xMV9pcnFfcG9zdGluc3RhbGw7CisJCWRldi0+ ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gZ2VuMTFfaXJxX3Jlc2V0OworCQlkZXYtPmRyaXZlci0+ ZW5hYmxlX3ZibGFuayA9IGdlbjhfZW5hYmxlX3ZibGFuazsKKwkJZGV2LT5kcml2ZXItPmRpc2Fi bGVfdmJsYW5rID0gZ2VuOF9kaXNhYmxlX3ZibGFuazsKKwkJZGV2X3ByaXYtPmRpc3BsYXkuaHBk X2lycV9zZXR1cCA9IHNwdF9ocGRfaXJxX3NldHVwOwogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA4KSB7CiAJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjhfaXJxX2hh bmRsZXI7CiAJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IGdlbjhfaXJxX3Jlc2V0Owpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggNjZmNzAzMTZjYTViLi44ZDAyZDhhYmVlYTMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNzk1Nyw3ICs3OTU3LDEwIEBAIHZvaWQgaW50ZWxf c2FuaXRpemVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAlkZXZfcHJpdi0+Z3RfcG0ucmM2LmVuYWJsZWQgPSB0cnVlOyAvKiBmb3JjZSBSQzYgZGlzYWJs aW5nICovCiAJaW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwogCi0JZ2VuNl9y ZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PCAxMSkKKwkJZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7CisJZWxzZQorCQlX QVJOX09OX09OQ0UoMSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9kaXNhYmxlX2xs Y19wc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCkBAIC04MDcwLDYgKzgwNzMs OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfcnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAkJY2hlcnJ5dmlld19lbmFibGVfcnBzKGRldl9wcml2KTsKIAl9IGVsc2Ug aWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7CiAJCXZhbGxleXZpZXdfZW5hYmxlX3Jwcyhk ZXZfcHJpdik7CisJfSBlbHNlIGlmIChXQVJOX09OX09OQ0UoSU5URUxfR0VOKGRldl9wcml2KSA+ PSAxMSkpIHsKKwkJLyogVE9ETyAqLwogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA5KSB7CiAJCWdlbjlfZW5hYmxlX3JwcyhkZXZfcHJpdik7CiAJfSBlbHNlIGlmIChJU19CUk9B RFdFTEwoZGV2X3ByaXYpKSB7Ci0tIAoyLjE0LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=