From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 4/4] drm/i915/icl: Interrupt handling Date: Tue, 20 Feb 2018 17:37:55 +0200 Message-ID: <20180220153755.13509-4-mika.kuoppala@linux.intel.com> References: <20180220153755.13509-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id B80B76E49B for ; Tue, 20 Feb 2018 15:38:24 +0000 (UTC) In-Reply-To: <20180220153755.13509-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 djI6IFJlYmFzZS4KCnYzOgogICogUmVtb3ZlIERQRiwgaXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9t IFNLTCsuCiAgKiBGaXggLWludGVybmFsIHJlYmFzZSB3cnQuIGV4ZWNsaXN0cyBpbnRlcnJ1cHQg aGFuZGxpbmcuCgp2NDogUmViYXNlLgoKdjU6CiAgKiBVcGRhdGVkIGZvciBQT1IgY2hhbmdlcy4g KERhbmllbGUgQ2VyYW9sbyBTcHVyaW8pCiAgKiBNZXJnZWQgd2l0aCBpcnEgaGFuZGxpbmcgZml4 ZXMgYnkgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbzoKICAgICAgKiBTaW1wbGlmeSB0aGUgY29kZSBi eSB1c2luZyBnZW44X2NzX2lycV9oYW5kbGVyLgogICAgICAqIEZpeCBpbnRlcnJ1cHQgaGFuZGxp bmcgZm9yIHRoZSB1cHN0cmVhbSBrZXJuZWwuCgp2NjoKICAqIFJlbW92ZSBlYXJseSBicmluZ3Vw IGRlYnVnIG1lc3NhZ2VzIChUdnJ0a28pCiAgKiBBZGQgTkIgYWJvdXQgYXJiaXRyYXJ5IHNwaW4g d2FpdCB0aW1lb3V0IChUdnJ0a28pCgp2NyAoZnJvbSBQYXVsbyk6CiAgKiBEb24ndCB0cnkgdG8g d3JpdGUgUk8gYml0cyB0byByZWdpc3RlcnMuCiAgKiBEb24ndCBjaGVjayBmb3IgUENIIHR5cGVz IHRoYXQgZG9uJ3QgZXhpc3QuIFBDSCBpbnRlcnJ1cHRzIGFyZSBub3QKICAgIGhlcmUgeWV0LgoK djk6CiAgKiBzcXVhc2hlZCBpbiBzZWxlY3RvciBhbmQgc2hhcmVkIHJlZ2lzdGVyIGhhbmRsaW5n IChEYW5pZWxlKQogICogc2tpcCB3cml0aW5nIG9mIGlycSBpZiBkYXRhIGlzIG5vdCB2YWxpZCAo RGFuaWVsZSkKICAqIHVzZSB0aW1lX2FmdGVyMzIgKENocmlzKQogICogdXNlIEk5MTVfTUFYX1ZD UyBhbmQgSTkxNV9NQVhfVkVDUyAoRGFuaWVsZSkKICAqIHJlbW92ZSBmYWtlIHBtIGludGVycnVw dCBoYW5kbGluZyBmb3IgbGF0ZXIgcGF0Y2ggKE1pa2EpCgp2MTA6CiAgKiBEaXJlY3QgcHJvY2Vz c2luZyBvZiBiYW5rcy4gY2xlYXIgYmFua3MgZWFybHkgKENocmlzKQogICogcmVtb3ZlIHBvbGwg b24gdmFsaWQgYml0LCBvbmx5IGNsZWFyIHZhbGlkIGJpdCAoTWlrYSkKICAqIHVzZSByYXcgYWNj ZXNzb3JzLCBiZXR0ZXIgbmFtaW5nIChDaHJpcykKCnYxMToKICAqIGFkYXB0IHRvIHJhd19yZWdf W3JlYWR8d3JpdGVdCiAgKiBicmluZyBiYWNrIHBvbGxpbmcgdGhlIHZhbGlkIGJpdCAoRGFuaWVs ZSkKCkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogRGFu aWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KQ2M6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogT3NjYXIgTWF0ZW8g PG9zY2FyLm1hdGVvQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2 cnRrby51cnN1bGluQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2Ry aWdvLnZpdmlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlv IDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBPc2NhciBN YXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkg PHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9wcGFsYSA8 bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyB8IDIyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwgICA3ICstCiAyIGZpbGVzIGNoYW5n ZWQsIDIzNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKaW5kZXggMTdkZTZjZWYyYTMwLi5hNzlmNDdhYzc0MmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYwpAQCAtNDE1LDYgKzQxNSw5IEBAIHZvaWQgZ2VuNl9lbmFibGVfcnBzX2ludGVycnVwdHMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmIChSRUFEX09OQ0UocnBzLT5p bnRlcnJ1cHRzX2VuYWJsZWQpKQogCQlyZXR1cm47CiAKKwlpZiAoV0FSTl9PTl9PTkNFKElTX0dF TjExKGRldl9wcml2KSkpCisJCXJldHVybjsKKwogCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5p cnFfbG9jayk7CiAJV0FSTl9PTl9PTkNFKHJwcy0+cG1faWlyKTsKIAlXQVJOX09OX09OQ0UoSTkx NV9SRUFEKGdlbjZfcG1faWlyKGRldl9wcml2KSkgJiBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyk7 CkBAIC00MzEsNiArNDM0LDkgQEAgdm9pZCBnZW42X2Rpc2FibGVfcnBzX2ludGVycnVwdHMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmICghUkVBRF9PTkNFKHJwcy0+aW50 ZXJydXB0c19lbmFibGVkKSkKIAkJcmV0dXJuOwogCisJaWYgKFdBUk5fT05fT05DRShJU19HRU4x MShkZXZfcHJpdikpKQorCQlyZXR1cm47CisKIAlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJx X2xvY2spOwogCXJwcy0+aW50ZXJydXB0c19lbmFibGVkID0gZmFsc2U7CiAKQEAgLTI3NTUsNiAr Mjc2MSwxNTAgQEAgc3RhdGljIHZvaWQgX19maW5pX3dlZGdlKHN0cnVjdCB3ZWRnZV9tZSAqdykK IAkgICAgIChXKS0+aTkxNTsJCQkJCQkJXAogCSAgICAgX19maW5pX3dlZGdlKChXKSkpCiAKK3N0 YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZAorZ2VuMTFfY3NfaXJxX2hhbmRsZXIoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSwgY29uc3QgdTMyIGlpcikKK3sKKwlnZW44X2Nz X2lycV9oYW5kbGVyKGVuZ2luZSwgaWlyLCAwKTsKK30KKworc3RhdGljIHZvaWQKK2dlbjExX2d0 X2VuZ2luZV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUs CisJCQkgICAgY29uc3QgdW5zaWduZWQgaW50IGJhbmssCisJCQkgICAgY29uc3QgdW5zaWduZWQg aW50IGVuZ2luZV9uLAorCQkJICAgIGNvbnN0IHUxNiBpaXIpCit7CisJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqKiBjb25zdCBlbmdpbmUgPSBpOTE1LT5lbmdpbmU7CisKKwlzd2l0Y2ggKGJhbmsp IHsKKwljYXNlIDA6CisJCXN3aXRjaCAoZW5naW5lX24pIHsKKworCQljYXNlIEdFTjExX1JDUzA6 CisJCQlyZXR1cm4gZ2VuMTFfY3NfaXJxX2hhbmRsZXIoZW5naW5lW1JDU10sIGlpcik7CisKKwkJ Y2FzZSBHRU4xMV9CQ1M6CisJCQlyZXR1cm4gZ2VuMTFfY3NfaXJxX2hhbmRsZXIoZW5naW5lW0JD U10sIGlpcik7CisJCX0KKwljYXNlIDE6CisJCXN3aXRjaCAoZW5naW5lX24pIHsKKworCQljYXNl IEdFTjExX1ZDUygwKToKKwkJCXJldHVybiBnZW4xMV9jc19pcnFfaGFuZGxlcihlbmdpbmVbX1ZD UygwKV0sIGlpcik7CisJCWNhc2UgR0VOMTFfVkNTKDEpOgorCQkJcmV0dXJuIGdlbjExX2NzX2ly cV9oYW5kbGVyKGVuZ2luZVtfVkNTKDEpXSwgaWlyKTsKKwkJY2FzZSBHRU4xMV9WQ1MoMik6CisJ CQlyZXR1cm4gZ2VuMTFfY3NfaXJxX2hhbmRsZXIoZW5naW5lW19WQ1MoMildLCBpaXIpOworCQlj YXNlIEdFTjExX1ZDUygzKToKKwkJCXJldHVybiBnZW4xMV9jc19pcnFfaGFuZGxlcihlbmdpbmVb X1ZDUygzKV0sIGlpcik7CisKKwkJY2FzZSBHRU4xMV9WRUNTKDApOgorCQkJcmV0dXJuIGdlbjEx X2NzX2lycV9oYW5kbGVyKGVuZ2luZVtfVkVDUygwKV0sIGlpcik7CisJCWNhc2UgR0VOMTFfVkVD UygxKToKKwkJCXJldHVybiBnZW4xMV9jc19pcnFfaGFuZGxlcihlbmdpbmVbX1ZFQ1MoMSldLCBp aXIpOworCQl9CisJfQorfQorCitzdGF0aWMgdTMyCitnZW4xMV9ndF9lbmdpbmVfaW50cihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCisJCSAgICAgY29uc3QgdW5zaWduZWQg aW50IGJhbmssIGNvbnN0IHVuc2lnbmVkIGludCBiaXQpCit7CisJdm9pZCBfX2lvbWVtICogY29u c3QgcmVncyA9IGk5MTUtPnJlZ3M7CisJdTMyIHRpbWVvdXRfdHM7CisJdTMyIGlkZW50OworCisJ cmF3X3JlZ193cml0ZShyZWdzLCBHRU4xMV9JSVJfUkVHX1NFTEVDVE9SKGJhbmspLCBCSVQoYml0 KSk7CisKKwkvKgorCSAqIE5COiBTcGVjcyBkbyBub3Qgc3BlY2lmeSBob3cgbG9uZyB0byBzcGlu IHdhaXQsCisJICogc28gd2UgZG8gfjEwMHVzIGFzIGFuIGVkdWNhdGVkIGd1ZXNzLgorCSAqLwor CXRpbWVvdXRfdHMgPSAobG9jYWxfY2xvY2soKSA+PiAxMCkgKyAxMDA7CisJZG8geworCQlpZGVu dCA9IHJhd19yZWdfcmVhZChyZWdzLCBHRU4xMV9JTlRSX0lERU5USVRZX1JFRyhiYW5rKSk7CisJ fSB3aGlsZSAoIShpZGVudCAmIEdFTjExX0lOVFJfREFUQV9WQUxJRCkgJiYKKwkJICF0aW1lX2Fm dGVyMzIobG9jYWxfY2xvY2soKSA+PiAxMCwgdGltZW91dF90cykpOworCisJaWYgKHVubGlrZWx5 KCEoaWRlbnQgJiBHRU4xMV9JTlRSX0RBVEFfVkFMSUQpKSkgeworCQlEUk1fRVJST1IoIklOVFJf SURFTlRJVFlfUkVHJXU6JXUgMHglMDh4IG5vdCB2YWxpZCFcbiIsCisJCQkgIGJhbmssIGJpdCwg aWRlbnQpOworCQlyZXR1cm4gMDsKKwl9CisKKwlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjExX0lO VFJfSURFTlRJVFlfUkVHKGJhbmspLAorCQkgICAgICBHRU4xMV9JTlRSX0RBVEFfVkFMSUQpOwor CisJcmV0dXJuIGlkZW50ICYgR0VOMTFfSU5UUl9FTkdJTkVfTUFTSzsKK30KKworc3RhdGljIHZv aWQKK2dlbjExX2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICogY29uc3Qg aTkxNSwKKwkJICAgICBjb25zdCB1MzIgbWFzdGVyX2N0bCkKK3sKKwl2b2lkIF9faW9tZW0gKiBj b25zdCByZWdzID0gaTkxNS0+cmVnczsKKwl1bnNpZ25lZCBpbnQgYmFuazsKKworCWZvciAoYmFu ayA9IDA7IGJhbmsgPCAyOyBiYW5rKyspIHsKKwkJdW5zaWduZWQgbG9uZyBpbnRyX2R3OworCQl1 bnNpZ25lZCBpbnQgYml0OworCisJCWlmICghKG1hc3Rlcl9jdGwgJiBHRU4xMV9HVF9EV19JUlEo YmFuaykpKQorCQkJY29udGludWU7CisKKwkJaW50cl9kdyA9IHJhd19yZWdfcmVhZChyZWdzLCBH RU4xMV9HVF9JTlRSX0RXKGJhbmspKTsKKworCQlpZiAodW5saWtlbHkoIWludHJfZHcpKQorCQkJ RFJNX0VSUk9SKCJHVF9JTlRSX0RXJXUgYmxhbmshXG4iLCBiYW5rKTsKKworCQlmb3JfZWFjaF9z ZXRfYml0KGJpdCwgJmludHJfZHcsIDMyKSB7CisJCQljb25zdCB1MTYgaWlyID0gZ2VuMTFfZ3Rf ZW5naW5lX2ludHIoaTkxNSwgYmFuaywgYml0KTsKKworCQkJaWYgKHVubGlrZWx5KCFpaXIpKQor CQkJCWNvbnRpbnVlOworCisJCQlnZW4xMV9ndF9lbmdpbmVfaXJxX2hhbmRsZXIoaTkxNSwgYmFu aywgYml0LCBpaXIpOworCQl9CisKKwkJLyogQ2xlYXIgbXVzdCBiZSBhZnRlciBzaGFyZWQgaGFz IGJlZW4gc2VydmVkIGZvciBlbmdpbmUgKi8KKwkJcmF3X3JlZ193cml0ZShyZWdzLCBHRU4xMV9H VF9JTlRSX0RXKGJhbmspLCBpbnRyX2R3KTsKKwl9Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBn ZW4xMV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKiBjb25zdCBpOTE1ID0gdG9faTkxNShhcmcpOworCXZvaWQgX19pb21lbSAqIGNv bnN0IHJlZ3MgPSBpOTE1LT5yZWdzOworCXUzMiBtYXN0ZXJfY3RsOworCisJaWYgKCFpbnRlbF9p cnFzX2VuYWJsZWQoaTkxNSkpCisJCXJldHVybiBJUlFfTk9ORTsKKworCW1hc3Rlcl9jdGwgPSBy YXdfcmVnX3JlYWQocmVncywgR0VOMTFfR0ZYX01TVFJfSVJRKTsKKwltYXN0ZXJfY3RsICY9IH5H RU4xMV9NQVNURVJfSVJROworCWlmICghbWFzdGVyX2N0bCkKKwkJcmV0dXJuIElSUV9OT05FOwor CisJLyogRGlzYWJsZSBpbnRlcnJ1cHRzLiAqLworCXJhd19yZWdfd3JpdGUocmVncywgR0VOMTFf R0ZYX01TVFJfSVJRLCAwKTsKKworCS8qIEZpbmQsIGNsZWFyLCB0aGVuIHByb2Nlc3MgZWFjaCBz b3VyY2Ugb2YgaW50ZXJydXB0LiAqLworCWdlbjExX2d0X2lycV9oYW5kbGVyKGk5MTUsIG1hc3Rl cl9jdGwpOworCisJLyogSVJRcyBhcmUgc3luY2VkIGR1cmluZyBydW50aW1lX3N1c3BlbmQsIHdl IGRvbid0IHJlcXVpcmUgYSB3YWtlcmVmICovCisJaWYgKG1hc3Rlcl9jdGwgJiBHRU4xMV9ESVNQ TEFZX0lSUSkgeworCQljb25zdCB1MzIgZGlzcF9jdGwgPSByYXdfcmVnX3JlYWQocmVncywgR0VO MTFfRElTUExBWV9JTlRfQ1RMKTsKKworCQlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoaTkx NSk7CisJCWdlbjhfZGVfaXJxX2hhbmRsZXIoaTkxNSwgZGlzcF9jdGwpOworCQllbmFibGVfcnBt X3dha2VyZWZfYXNzZXJ0cyhpOTE1KTsKKwl9CisKKwkvKiBBY2tub3dsZWRnZSBhbmQgZW5hYmxl IGludGVycnVwdHMuICovCisJcmF3X3JlZ193cml0ZShyZWdzLCBHRU4xMV9HRlhfTVNUUl9JUlEs IEdFTjExX01BU1RFUl9JUlEgfCBtYXN0ZXJfY3RsKTsKKworCXJldHVybiBJUlFfSEFORExFRDsK K30KKwogLyoqCiAgKiBpOTE1X3Jlc2V0X2RldmljZSAtIGRvIHByb2Nlc3MgY29udGV4dCBlcnJv ciBoYW5kbGluZyB3b3JrCiAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKQEAgLTMx ODAsNiArMzMzMCw0MiBAQCBzdGF0aWMgdm9pZCBnZW44X2lycV9yZXNldChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQlpYnhfaXJxX3Jlc2V0KGRldl9wcml2KTsKIH0KIAorc3RhdGljIHZvaWQg Z2VuMTFfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sK KwkvKiBEaXNhYmxlIFJDUywgQkNTLCBWQ1MgYW5kIFZFQ1MgY2xhc3MgZW5naW5lcy4gKi8KKwlJ OTE1X1dSSVRFKEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5BQkxFLCAwKTsKKwlJOTE1X1dSSVRF KEdFTjExX1ZDU19WRUNTX0lOVFJfRU5BQkxFLAkgIDApOworCisJLyogUmVzdG9yZSBtYXNrcyBp cnFzIG9uIFJDUywgQkNTLCBWQ1MgYW5kIFZFQ1MgZW5naW5lcy4gKi8KKwlJOTE1X1dSSVRFKEdF TjExX1JDUzBfUlNWRF9JTlRSX01BU0ssCX4wKTsKKwlJOTE1X1dSSVRFKEdFTjExX0JDU19SU1ZE X0lOVFJfTUFTSywJfjApOworCUk5MTVfV1JJVEUoR0VOMTFfVkNTMF9WQ1MxX0lOVFJfTUFTSywJ fjApOworCUk5MTVfV1JJVEUoR0VOMTFfVkNTMl9WQ1MzX0lOVFJfTUFTSywJfjApOworCUk5MTVf V1JJVEUoR0VOMTFfVkVDUzBfVkVDUzFfSU5UUl9NQVNLLAl+MCk7Cit9CisKK3N0YXRpYyB2b2lk IGdlbjExX2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IHBpcGU7CisK KwlJOTE1X1dSSVRFKEdFTjExX0dGWF9NU1RSX0lSUSwgMCk7CisJUE9TVElOR19SRUFEKEdFTjEx X0dGWF9NU1RSX0lSUSk7CisKKwlnZW4xMV9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOworCisJSTkx NV9XUklURShHRU4xMV9ESVNQTEFZX0lOVF9DVEwsIDApOworCisJZm9yX2VhY2hfcGlwZShkZXZf cHJpdiwgcGlwZSkKKwkJaWYgKGludGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5hYmxlZChkZXZfcHJp diwKKwkJCQkJCSAgIFBPV0VSX0RPTUFJTl9QSVBFKHBpcGUpKSkKKwkJCUdFTjhfSVJRX1JFU0VU X05EWChERV9QSVBFLCBwaXBlKTsKKworCUdFTjNfSVJRX1JFU0VUKEdFTjhfREVfUE9SVF8pOwor CUdFTjNfSVJRX1JFU0VUKEdFTjhfREVfTUlTQ18pOworCUdFTjNfSVJRX1JFU0VUKEdFTjhfUENV Xyk7Cit9CisKIHZvaWQgZ2VuOF9pcnFfcG93ZXJfd2VsbF9wb3N0X2VuYWJsZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICB1OCBwaXBlX21hc2spCiB7CkBAIC0z Njc3LDYgKzM4NjMsNDEgQEAgc3RhdGljIGludCBnZW44X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBnZW4xMV9ndF9p cnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCWNv bnN0IHUzMiBpcnFzID0gR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIHwgR1RfQ09OVEVYVF9TV0lU Q0hfSU5URVJSVVBUOworCisJQlVJTERfQlVHX09OKGlycXMgJiAweGZmZmYwMDAwKTsKKworCS8q IEVuYWJsZSBSQ1MsIEJDUywgVkNTIGFuZCBWRUNTIGNsYXNzIGludGVycnVwdHMuICovCisJSTkx NV9XUklURShHRU4xMV9SRU5ERVJfQ09QWV9JTlRSX0VOQUJMRSwgaXJxcyA8PCAxNiB8IGlycXMp OworCUk5MTVfV1JJVEUoR0VOMTFfVkNTX1ZFQ1NfSU5UUl9FTkFCTEUsCSAgaXJxcyA8PCAxNiB8 IGlycXMpOworCisJLyogVW5tYXNrIGlycXMgb24gUkNTLCBCQ1MsIFZDUyBhbmQgVkVDUyBlbmdp bmVzLiAqLworCUk5MTVfV1JJVEUoR0VOMTFfUkNTMF9SU1ZEX0lOVFJfTUFTSywJfihpcnFzIDw8 IDE2KSk7CisJSTkxNV9XUklURShHRU4xMV9CQ1NfUlNWRF9JTlRSX01BU0ssCX4oaXJxcyA8PCAx NikpOworCUk5MTVfV1JJVEUoR0VOMTFfVkNTMF9WQ1MxX0lOVFJfTUFTSywJfihpcnFzIHwgaXJx cyA8PCAxNikpOworCUk5MTVfV1JJVEUoR0VOMTFfVkNTMl9WQ1MzX0lOVFJfTUFTSywJfihpcnFz IHwgaXJxcyA8PCAxNikpOworCUk5MTVfV1JJVEUoR0VOMTFfVkVDUzBfVkVDUzFfSU5UUl9NQVNL LAl+KGlycXMgfCBpcnFzIDw8IDE2KSk7CisKKwlkZXZfcHJpdi0+cG1faW1yID0gMHhmZmZmZmZm ZjsgLyogVE9ETyAqLworfQorCitzdGF0aWMgaW50IGdlbjExX2lycV9wb3N0aW5zdGFsbChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlnZW4xMV9ndF9pcnFfcG9zdGluc3RhbGwoZGV2X3By aXYpOworCWdlbjhfZGVfaXJxX3Bvc3RpbnN0YWxsKGRldl9wcml2KTsKKworCUk5MTVfV1JJVEUo R0VOMTFfRElTUExBWV9JTlRfQ1RMLCBHRU4xMV9ESVNQTEFZX0lSUV9FTkFCTEUpOworCisJSTkx NV9XUklURShHRU4xMV9HRlhfTVNUUl9JUlEsIEdFTjExX01BU1RFUl9JUlEpOworCVBPU1RJTkdf UkVBRChHRU4xMV9HRlhfTVNUUl9JUlEpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQg Y2hlcnJ5dmlld19pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CkBAIC00MTI1 LDYgKzQzNDYsMTQgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJsYW5rID0gaTk2NV9lbmFibGVf dmJsYW5rOwogCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBpOTY1X2Rpc2FibGVfdmJs YW5rOwogCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaTkxNV9ocGRfaXJxX3Nl dHVwOworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgeworCQlkZXYtPmRy aXZlci0+aXJxX2hhbmRsZXIgPSBnZW4xMV9pcnFfaGFuZGxlcjsKKwkJZGV2LT5kcml2ZXItPmly cV9wcmVpbnN0YWxsID0gZ2VuMTFfaXJxX3Jlc2V0OworCQlkZXYtPmRyaXZlci0+aXJxX3Bvc3Rp bnN0YWxsID0gZ2VuMTFfaXJxX3Bvc3RpbnN0YWxsOworCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5z dGFsbCA9IGdlbjExX2lycV9yZXNldDsKKwkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBn ZW44X2VuYWJsZV92Ymxhbms7CisJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGdlbjhf ZGlzYWJsZV92Ymxhbms7CisJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBzcHRf aHBkX2lycV9zZXR1cDsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkgewog CQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBnZW44X2lycV9oYW5kbGVyOwogCQlkZXYtPmRy aXZlci0+aXJxX3ByZWluc3RhbGwgPSBnZW44X2lycV9yZXNldDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCmluZGV4IGE4OGYwZjIxMzYwNC4uN2EzMTZmODY3YjQyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKQEAgLTgwMzAsNyArODAzMCwxMCBAQCB2b2lkIGludGVsX3Nhbml0aXplX2d0X3Bvd2Vy c2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZGV2X3ByaXYtPmd0X3Bt LnJjNi5lbmFibGVkID0gdHJ1ZTsgLyogZm9yY2UgUkM2IGRpc2FibGluZyAqLwogCWludGVsX2Rp c2FibGVfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKIAotCWdlbjZfcmVzZXRfcnBzX2ludGVycnVw dHMoZGV2X3ByaXYpOworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCisJCWdlbjZfcmVz ZXRfcnBzX2ludGVycnVwdHMoZGV2X3ByaXYpOworCWVsc2UKKwkJV0FSTl9PTl9PTkNFKDEpOwog fQogCiBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZGlzYWJsZV9sbGNfcHN0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQpAQCAtODE0Myw2ICs4MTQ2LDggQEAgc3RhdGljIHZvaWQg aW50ZWxfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWNo ZXJyeXZpZXdfZW5hYmxlX3JwcyhkZXZfcHJpdik7CiAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVX KGRldl9wcml2KSkgewogCQl2YWxsZXl2aWV3X2VuYWJsZV9ycHMoZGV2X3ByaXYpOworCX0gZWxz ZSBpZiAoV0FSTl9PTl9PTkNFKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpKSB7CisJCS8qIFRP RE8gKi8KIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewogCQlnZW45X2Vu YWJsZV9ycHMoZGV2X3ByaXYpOwogCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkg ewotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK