From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 05/19] drm/i915/icl: Interrupt handling Date: Thu, 15 Feb 2018 18:27:29 +0200 Message-ID: <20180215162729.16034-1-mika.kuoppala@linux.intel.com> References: <20180214141213.24140-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6CFDC6E545 for ; Thu, 15 Feb 2018 16:27:52 +0000 (UTC) In-Reply-To: <20180214141213.24140-1-mika.kuoppala@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: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCnYyOiBSZWJh c2UuCgp2MzoKICAqIFJlbW92ZSBEUEYsIGl0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBTS0wrLgog ICogRml4IC1pbnRlcm5hbCByZWJhc2Ugd3J0LiBleGVjbGlzdHMgaW50ZXJydXB0IGhhbmRsaW5n LgoKdjQ6IFJlYmFzZS4KCnY1OgogICogVXBkYXRlZCBmb3IgUE9SIGNoYW5nZXMuIChEYW5pZWxl IENlcmFvbG8gU3B1cmlvKQogICogTWVyZ2VkIHdpdGggaXJxIGhhbmRsaW5nIGZpeGVzIGJ5IERh bmllbGUgQ2VyYW9sbyBTcHVyaW86CiAgICAgICogU2ltcGxpZnkgdGhlIGNvZGUgYnkgdXNpbmcg Z2VuOF9jc19pcnFfaGFuZGxlci4KICAgICAgKiBGaXggaW50ZXJydXB0IGhhbmRsaW5nIGZvciB0 aGUgdXBzdHJlYW0ga2VybmVsLgoKdjY6CiAgKiBSZW1vdmUgZWFybHkgYnJpbmd1cCBkZWJ1ZyBt ZXNzYWdlcyAoVHZydGtvKQogICogQWRkIE5CIGFib3V0IGFyYml0cmFyeSBzcGluIHdhaXQgdGlt ZW91dCAoVHZydGtvKQoKdjcgKGZyb20gUGF1bG8pOgogICogRG9uJ3QgdHJ5IHRvIHdyaXRlIFJP IGJpdHMgdG8gcmVnaXN0ZXJzLgogICogRG9uJ3QgY2hlY2sgZm9yIFBDSCB0eXBlcyB0aGF0IGRv bid0IGV4aXN0LiBQQ0ggaW50ZXJydXB0cyBhcmUgbm90CiAgICBoZXJlIHlldC4KCnY5OgogICog c3F1YXNoZWQgaW4gc2VsZWN0b3IgYW5kIHNoYXJlZCByZWdpc3RlciBoYW5kbGluZyAoRGFuaWVs ZSkKICAqIHNraXAgd3JpdGluZyBvZiBpcnEgaWYgZGF0YSBpcyBub3QgdmFsaWQgKERhbmllbGUp CiAgKiB1c2UgdGltZV9hZnRlcjMyIChDaHJpcykKICAqIHVzZSBJOTE1X01BWF9WQ1MgYW5kIEk5 MTVfTUFYX1ZFQ1MgKERhbmllbGUpCiAgKiByZW1vdmUgZmFrZSBwbSBpbnRlcnJ1cHQgaGFuZGxp bmcgZm9yIGxhdGVyIHBhdGNoIChNaWthKQoKdjEwOgogICogRGlyZWN0IHByb2Nlc3Npbmcgb2Yg YmFua3MuIGNsZWFyIGJhbmtzIGVhcmx5IChDaHJpcykKICAqIHJlbW92ZSBwb2xsIG9uIHZhbGlk IGJpdCwgb25seSBjbGVhciB2YWxpZCBiaXQgKE1pa2EpCiAgKiB1c2UgcmF3IGFjY2Vzc29ycywg YmV0dGVyIG5hbWluZyAoQ2hyaXMpCgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3Nw dXJpb0BpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KQ2M6IE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFu aWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KU2ln bmVkLW9mZi1ieTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgfCAyMjIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8ICAg NyArLQogMiBmaWxlcyBjaGFuZ2VkLCAyMjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IGI4ODZiZDQ1OWFjYy4uZTM5MTRkMWUyMDRlIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTQxNSw2ICs0MTUsOSBAQCB2b2lkIGdlbjZfZW5h YmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlp ZiAoUkVBRF9PTkNFKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKSkKIAkJcmV0dXJuOwogCisJaWYg KFdBUk5fT05fT05DRShJU19HRU4xMShkZXZfcHJpdikpKQorCQlyZXR1cm47CisKIAlzcGluX2xv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCVdBUk5fT05fT05DRShycHMtPnBtX2lpcik7 CiAJV0FSTl9PTl9PTkNFKEk5MTVfUkVBRChnZW42X3BtX2lpcihkZXZfcHJpdikpICYgZGV2X3By aXYtPnBtX3Jwc19ldmVudHMpOwpAQCAtNDMxLDYgKzQzNCw5IEBAIHZvaWQgZ2VuNl9kaXNhYmxl X3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAo IVJFQURfT05DRShycHMtPmludGVycnVwdHNfZW5hYmxlZCkpCiAJCXJldHVybjsKIAorCWlmIChX QVJOX09OX09OQ0UoSVNfR0VOMTEoZGV2X3ByaXYpKSkKKwkJcmV0dXJuOworCiAJc3Bpbl9sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIAlycHMtPmludGVycnVwdHNfZW5hYmxlZCA9IGZh bHNlOwogCkBAIC0yNzQ2LDYgKzI3NTIsMTQzIEBAIHN0YXRpYyB2b2lkIF9fZmluaV93ZWRnZShz dHJ1Y3Qgd2VkZ2VfbWUgKncpCiAJICAgICAoVyktPmk5MTU7CQkJCQkJCVwKIAkgICAgIF9fZmlu aV93ZWRnZSgoVykpKQogCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQKK2dlbjExX2NzX2ly cV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdpbmUsIGNvbnN0IHUz MiBpaXIpCit7CisJZ2VuOF9jc19pcnFfaGFuZGxlcihlbmdpbmUsIGlpciwgMCk7Cit9CisKK3N0 YXRpYyB2b2lkCitnZW4xMV9ndF9lbmdpbmVfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKiBjb25zdCBpOTE1LAorCQkJICAgIGNvbnN0IHVuc2lnbmVkIGludCBiYW5rLAorCQkJ ICAgIGNvbnN0IHVuc2lnbmVkIGludCBlbmdpbmVfbiwKKwkJCSAgICBjb25zdCB1MTYgaWlyKQor eworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiogY29uc3QgZW5naW5lID0gaTkxNS0+ZW5naW5l OworCisJc3dpdGNoIChiYW5rKSB7CisJY2FzZSAwOgorCQlzd2l0Y2ggKGVuZ2luZV9uKSB7CisK KwkJY2FzZSBHRU4xMV9SQ1MwOgorCQkJcmV0dXJuIGdlbjExX2NzX2lycV9oYW5kbGVyKGVuZ2lu ZVtSQ1NdLCBpaXIpOworCisJCWNhc2UgR0VOMTFfQkNTOgorCQkJcmV0dXJuIGdlbjExX2NzX2ly cV9oYW5kbGVyKGVuZ2luZVtCQ1NdLCBpaXIpOworCQl9CisJY2FzZSAxOgorCQlzd2l0Y2ggKGVu Z2luZV9uKSB7CisKKwkJY2FzZSBHRU4xMV9WQ1MoMCk6CisJCQlyZXR1cm4gZ2VuMTFfY3NfaXJx X2hhbmRsZXIoZW5naW5lW19WQ1MoMCldLCBpaXIpOworCQljYXNlIEdFTjExX1ZDUygxKToKKwkJ CXJldHVybiBnZW4xMV9jc19pcnFfaGFuZGxlcihlbmdpbmVbX1ZDUygxKV0sIGlpcik7CisJCWNh c2UgR0VOMTFfVkNTKDIpOgorCQkJcmV0dXJuIGdlbjExX2NzX2lycV9oYW5kbGVyKGVuZ2luZVtf VkNTKDIpXSwgaWlyKTsKKwkJY2FzZSBHRU4xMV9WQ1MoMyk6CisJCQlyZXR1cm4gZ2VuMTFfY3Nf aXJxX2hhbmRsZXIoZW5naW5lW19WQ1MoMyldLCBpaXIpOworCisJCWNhc2UgR0VOMTFfVkVDUygw KToKKwkJCXJldHVybiBnZW4xMV9jc19pcnFfaGFuZGxlcihlbmdpbmVbX1ZFQ1MoMCldLCBpaXIp OworCQljYXNlIEdFTjExX1ZFQ1MoMSk6CisJCQlyZXR1cm4gZ2VuMTFfY3NfaXJxX2hhbmRsZXIo ZW5naW5lW19WRUNTKDEpXSwgaWlyKTsKKwkJfQorCX0KK30KKworc3RhdGljIHUzMgorZ2VuMTFf Z3RfZW5naW5lX2ludHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAorCQkg ICAgIGNvbnN0IHVuc2lnbmVkIGludCBiYW5rLCBjb25zdCB1bnNpZ25lZCBpbnQgYml0KQorewor CXZvaWQgX19pb21lbSAqIGNvbnN0IHJlZ3MgPSBpOTE1LT5yZWdzOworCXUzMiBpZGVudDsKKwor CXdyaXRlbChCSVQoYml0KSwKKwkgICAgICAgcmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0KEdF TjExX0lJUl9SRUdfU0VMRUNUT1IoYmFuaykpKTsKKworCWlkZW50ID0gcmVhZGwocmVncyArCisJ CSAgICAgIGk5MTVfbW1pb19yZWdfb2Zmc2V0KEdFTjExX0lOVFJfSURFTlRJVFlfUkVHKGJhbmsp KSk7CisKKwlpZiAodW5saWtlbHkoIShpZGVudCAmIEdFTjExX0lOVFJfREFUQV9WQUxJRCkpKSB7 CisJCURSTV9FUlJPUigiSU5UUl9JREVOVElUWV9SRUcldToldSAweCUwOHggbm90IHZhbGlkIVxu IiwKKwkJCSAgYmFuaywgYml0LCBpZGVudCk7CisJCXJldHVybiAwOworCX0KKworCXdyaXRlbChH RU4xMV9JTlRSX0RBVEFfVkFMSUQsCisJICAgICAgIHJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNl dChHRU4xMV9JTlRSX0lERU5USVRZX1JFRyhiYW5rKSkpOworCisJcmV0dXJuIGlkZW50ICYgR0VO MTFfSU5UUl9FTkdJTkVfTUFTSzsKK30KKworc3RhdGljIHZvaWQKK2dlbjExX2d0X2lycV9oYW5k bGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICogY29uc3QgaTkxNSwKKwkJICAgICBjb25zdCB1 MzIgbWFzdGVyX2N0bCkKK3sKKwl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gaTkxNS0+cmVn czsKKwl1bnNpZ25lZCBpbnQgYmFuazsKKworCWZvciAoYmFuayA9IDA7IGJhbmsgPCAyOyBiYW5r KyspIHsKKwkJdW5zaWduZWQgbG9uZyBpbnRyX2R3OworCQl1bnNpZ25lZCBpbnQgYml0OworCisJ CWlmICghKG1hc3Rlcl9jdGwgJiBHRU4xMV9HVF9EV19JUlEoYmFuaykpKQorCQkJY29udGludWU7 CisKKwkJaW50cl9kdyA9IHJlYWRsKHJlZ3MgKworCQkJCWk5MTVfbW1pb19yZWdfb2Zmc2V0KEdF TjExX0dUX0lOVFJfRFcoYmFuaykpKTsKKworCQlpZiAodW5saWtlbHkoIWludHJfZHcpKQorCQkJ RFJNX0VSUk9SKCJHVF9JTlRSX0RXJXUgYmxhbmshXG4iLCBiYW5rKTsKKworCQlmb3JfZWFjaF9z ZXRfYml0KGJpdCwgJmludHJfZHcsIDMyKSB7CisJCQljb25zdCB1MTYgaWlyID0gZ2VuMTFfZ3Rf ZW5naW5lX2ludHIoaTkxNSwgYmFuaywgYml0KTsKKworCQkJaWYgKHVubGlrZWx5KCFpaXIpKQor CQkJCWNvbnRpbnVlOworCisJCQlnZW4xMV9ndF9lbmdpbmVfaXJxX2hhbmRsZXIoaTkxNSwgYmFu aywgYml0LCBpaXIpOworCQl9CisKKwkJLyogQ2xlYXIgbXVzdCBiZSBhZnRlciBzaGFyZWQgaGFz IGJlZW4gc2VydmVkIGZvciBlbmdpbmUgKi8KKwkJd3JpdGVsKGludHJfZHcsCisJCSAgICAgICBy ZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VOMTFfR1RfSU5UUl9EVyhiYW5rKSkpOworCX0K K30KKworc3RhdGljIGlycXJldHVybl90IGdlbjExX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQg KmFyZykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGRldl9wcml2ID0KKwkJ dG9faTkxNSgoc3RydWN0IGRybV9kZXZpY2UgKilhcmcpOworCXUzMiBtYXN0ZXJfY3RsOworCisJ aWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKQorCQlyZXR1cm4gSVJRX05PTkU7CisK KwltYXN0ZXJfY3RsID0gSTkxNV9SRUFEX0ZXKEdFTjExX0dGWF9NU1RSX0lSUSk7CisJbWFzdGVy X2N0bCAmPSB+R0VOMTFfTUFTVEVSX0lSUTsKKwlpZiAoIW1hc3Rlcl9jdGwpCisJCXJldHVybiBJ UlFfTk9ORTsKKworCS8qIERpc2FibGUgaW50ZXJydXB0cy4gKi8KKwlJOTE1X1dSSVRFX0ZXKEdF TjExX0dGWF9NU1RSX0lSUSwgMCk7CisKKwkvKiBGaW5kLCBjbGVhciwgdGhlbiBwcm9jZXNzIGVh Y2ggc291cmNlIG9mIGludGVycnVwdC4gKi8KKwlnZW4xMV9ndF9pcnFfaGFuZGxlcihkZXZfcHJp diwgbWFzdGVyX2N0bCk7CisKKwlpZiAobWFzdGVyX2N0bCAmIEdFTjExX0RJU1BMQVlfSVJRKSB7 CisJCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisJCWdlbjhfZGVfaXJx X2hhbmRsZXIoZGV2X3ByaXYsCisJCQkJICAgIEk5MTVfUkVBRF9GVyhHRU4xMV9ESVNQTEFZX0lO VF9DVEwpKTsKKwkJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCX0KKwor CS8qIEFja25vd2xlZGdlIGFuZCBlbmFibGUgaW50ZXJydXB0cy4gKi8KKwlJOTE1X1dSSVRFX0ZX KEdFTjExX0dGWF9NU1RSX0lSUSwgR0VOMTFfTUFTVEVSX0lSUSB8IG1hc3Rlcl9jdGwpOworCisJ cmV0dXJuIElSUV9IQU5ETEVEOworfQorCiAvKioKICAqIGk5MTVfcmVzZXRfZGV2aWNlIC0gZG8g cHJvY2VzcyBjb250ZXh0IGVycm9yIGhhbmRsaW5nIHdvcmsKICAqIEBkZXZfcHJpdjogaTkxNSBk ZXZpY2UgcHJpdmF0ZQpAQCAtMzE1OSw2ICszMzAyLDQyIEBAIHN0YXRpYyB2b2lkIGdlbjhfaXJx X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWlieF9pcnFfcmVzZXQoZGV2X3ByaXYp OwogfQogCitzdGF0aWMgdm9pZCBnZW4xMV9ndF9pcnFfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQoreworCS8qIERpc2FibGUgUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBj bGFzcyBlbmdpbmVzLiAqLworCUk5MTVfV1JJVEUoR0VOMTFfUkVOREVSX0NPUFlfSU5UUl9FTkFC TEUsIDApOworCUk5MTVfV1JJVEUoR0VOMTFfVkNTX1ZFQ1NfSU5UUl9FTkFCTEUsCSAgMCk7CisK KwkvKiBSZXN0b3JlIG1hc2tzIGlycXMgb24gUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBlbmdpbmVz LiAqLworCUk5MTVfV1JJVEUoR0VOMTFfUkNTMF9SU1ZEX0lOVFJfTUFTSywJfjApOworCUk5MTVf V1JJVEUoR0VOMTFfQkNTX1JTVkRfSU5UUl9NQVNLLAl+MCk7CisJSTkxNV9XUklURShHRU4xMV9W Q1MwX1ZDUzFfSU5UUl9NQVNLLAl+MCk7CisJSTkxNV9XUklURShHRU4xMV9WQ1MyX1ZDUzNfSU5U Ul9NQVNLLAl+MCk7CisJSTkxNV9XUklURShHRU4xMV9WRUNTMF9WRUNTMV9JTlRSX01BU0ssCX4w KTsKK30KKworc3RhdGljIHZvaWQgZ2VuMTFfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKKwlpbnQgcGlwZTsKKworCUk5MTVfV1JJVEUoR0VOMTFfR0ZYX01TVFJfSVJRLCAwKTsK KwlQT1NUSU5HX1JFQUQoR0VOMTFfR0ZYX01TVFJfSVJRKTsKKworCWdlbjExX2d0X2lycV9yZXNl dChkZXZfcHJpdik7CisKKwlJOTE1X1dSSVRFKEdFTjExX0RJU1BMQVlfSU5UX0NUTCwgMCk7CisK Kwlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQorCQlpZiAoaW50ZWxfZGlzcGxheV9wb3dl cl9pc19lbmFibGVkKGRldl9wcml2LAorCQkJCQkJICAgUE9XRVJfRE9NQUlOX1BJUEUocGlwZSkp KQorCQkJR0VOOF9JUlFfUkVTRVRfTkRYKERFX1BJUEUsIHBpcGUpOworCisJR0VOM19JUlFfUkVT RVQoR0VOOF9ERV9QT1JUXyk7CisJR0VOM19JUlFfUkVTRVQoR0VOOF9ERV9NSVNDXyk7CisJR0VO M19JUlFfUkVTRVQoR0VOOF9QQ1VfKTsKK30KKwogdm9pZCBnZW44X2lycV9wb3dlcl93ZWxsX3Bv c3RfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgIHU4 IHBpcGVfbWFzaykKIHsKQEAgLTM2NTYsNiArMzgzNSw0MSBAQCBzdGF0aWMgaW50IGdlbjhfaXJx X3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKK3N0 YXRpYyB2b2lkIGdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCit7CisJY29uc3QgdTMyIGlycXMgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJV UFQgfCBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQ7CisKKwlCVUlMRF9CVUdfT04oaXJxcyAm IDB4ZmZmZjAwMDApOworCisJLyogRW5hYmxlIFJDUywgQkNTLCBWQ1MgYW5kIFZFQ1MgY2xhc3Mg aW50ZXJydXB0cy4gKi8KKwlJOTE1X1dSSVRFKEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5BQkxF LCBpcnFzIDw8IDE2IHwgaXJxcyk7CisJSTkxNV9XUklURShHRU4xMV9WQ1NfVkVDU19JTlRSX0VO QUJMRSwJICBpcnFzIDw8IDE2IHwgaXJxcyk7CisKKwkvKiBVbm1hc2sgaXJxcyBvbiBSQ1MsIEJD UywgVkNTIGFuZCBWRUNTIGVuZ2luZXMuICovCisJSTkxNV9XUklURShHRU4xMV9SQ1MwX1JTVkRf SU5UUl9NQVNLLAl+KGlycXMgPDwgMTYpKTsKKwlJOTE1X1dSSVRFKEdFTjExX0JDU19SU1ZEX0lO VFJfTUFTSywJfihpcnFzIDw8IDE2KSk7CisJSTkxNV9XUklURShHRU4xMV9WQ1MwX1ZDUzFfSU5U Ul9NQVNLLAl+KGlycXMgfCBpcnFzIDw8IDE2KSk7CisJSTkxNV9XUklURShHRU4xMV9WQ1MyX1ZD UzNfSU5UUl9NQVNLLAl+KGlycXMgfCBpcnFzIDw8IDE2KSk7CisJSTkxNV9XUklURShHRU4xMV9W RUNTMF9WRUNTMV9JTlRSX01BU0ssCX4oaXJxcyB8IGlycXMgPDwgMTYpKTsKKworCWRldl9wcml2 LT5wbV9pbXIgPSAweGZmZmZmZmZmOyAvKiBUT0RPICovCit9CisKK3N0YXRpYyBpbnQgZ2VuMTFf aXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWdlbjExX2d0X2ly cV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisJZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoZGV2X3By aXYpOworCisJSTkxNV9XUklURShHRU4xMV9ESVNQTEFZX0lOVF9DVEwsIEdFTjExX0RJU1BMQVlf SVJRX0VOQUJMRSk7CisKKwlJOTE1X1dSSVRFKEdFTjExX0dGWF9NU1RSX0lSUSwgR0VOMTFfTUFT VEVSX0lSUSk7CisJUE9TVElOR19SRUFEKEdFTjExX0dGWF9NU1RSX0lSUSk7CisKKwlyZXR1cm4g MDsKK30KKwogc3RhdGljIGludCBjaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKQEAgLTQxMDQsNiArNDMxOCwxNCBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZGV2LT5kcml2ZXItPmVuYWJsZV92 YmxhbmsgPSBpOTY1X2VuYWJsZV92Ymxhbms7CiAJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFu ayA9IGk5NjVfZGlzYWJsZV92Ymxhbms7CiAJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0 dXAgPSBpOTE1X2hwZF9pcnFfc2V0dXA7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDExKSB7CisJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjExX2lycV9oYW5kbGVy OworCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBnZW4xMV9pcnFfcmVzZXQ7CisJCWRl di0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBnZW4xMV9pcnFfcG9zdGluc3RhbGw7CisJCWRl di0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gZ2VuMTFfaXJxX3Jlc2V0OworCQlkZXYtPmRyaXZl ci0+ZW5hYmxlX3ZibGFuayA9IGdlbjhfZW5hYmxlX3ZibGFuazsKKwkJZGV2LT5kcml2ZXItPmRp c2FibGVfdmJsYW5rID0gZ2VuOF9kaXNhYmxlX3ZibGFuazsKKwkJZGV2X3ByaXYtPmRpc3BsYXku aHBkX2lycV9zZXR1cCA9IHNwdF9ocGRfaXJxX3NldHVwOwogCX0gZWxzZSBpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA4KSB7CiAJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjhfaXJx X2hhbmRsZXI7CiAJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IGdlbjhfaXJxX3Jlc2V0 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggOTM5YjhhNDE1ODBjLi45OTZhYjg2MTAwZWUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtODAyOSw3ICs4MDI5LDEwIEBAIHZvaWQgaW50 ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAlkZXZfcHJpdi0+Z3RfcG0ucmM2LmVuYWJsZWQgPSB0cnVlOyAvKiBmb3JjZSBSQzYgZGlz YWJsaW5nICovCiAJaW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwogCi0JZ2Vu Nl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7CisJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPCAxMSkKKwkJZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7CisJZWxzZQor CQlXQVJOX09OX09OQ0UoMSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9kaXNhYmxl X2xsY19wc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCkBAIC04MTQyLDYgKzgx NDUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfcnBzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAkJY2hlcnJ5dmlld19lbmFibGVfcnBzKGRldl9wcml2KTsKIAl9IGVs c2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7CiAJCXZhbGxleXZpZXdfZW5hYmxlX3Jw cyhkZXZfcHJpdik7CisJfSBlbHNlIGlmIChXQVJOX09OX09OQ0UoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMSkpIHsKKwkJLyogVE9ETyAqLwogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA5KSB7CiAJCWdlbjlfZW5hYmxlX3JwcyhkZXZfcHJpdik7CiAJfSBlbHNlIGlmIChJU19C Uk9BRFdFTEwoZGV2X3ByaXYpKSB7Ci0tIAoyLjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=