From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anson Huang Subject: [PATCH V4 2/2] thermal: imx: add i.MX7 thermal sensor support Date: Sat, 24 Feb 2018 16:02:49 +0800 Message-ID: <1519459369-29083-2-git-send-email-Anson.Huang@nxp.com> References: <1519459369-29083-1-git-send-email-Anson.Huang@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1519459369-29083-1-git-send-email-Anson.Huang@nxp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: rui.zhang@intel.com, edubezval@gmail.com, robh+dt@kernel.org, mark.rutland@arm.com, shawnguo@kernel.org, kernel@pengutronix.de, fabio.estevam@nxp.com, linux@armlinux.org.uk Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org List-Id: devicetree@vger.kernel.org VGhpcyBwYXRjaCBhZGRzIGkuTVg3IHRoZXJtYWwgc2Vuc29yIHN1cHBvcnQsIG1vc3QKb2YgdGhl IGkuTVg3IHRoZXJtYWwgc2Vuc29yIGZ1bmN0aW9ucyBhcmUgc2FtZSB3aXRoCmkuTVg2IGV4Y2Vw dCB0aGUgcmVnaXN0ZXJzIG9mZnNldC9sYXlvdXQsIHNvIHdlIG1vdmUKdGhvc2UgcmVnaXN0ZXJz IG9mZnNldC9sYXlvdXQgZGVmaW5pdGlvbnMgdG8gc29jIGRhdGEKc3RydWN0dXJlLgoKaS5NWDcg dXNlcyBzaW5nbGUgY2FsaWJyYXRpb24gZGF0YSBAMjVDLCB0aGUgY2FsaWJyYXRpb24KZGF0YSBp cyBsb2NhdGVkIGF0IE9DT1RQIG9mZnNldCAweDRGMCwgYml0WzE3OjldLCB0aGUKZm9ybXVsYSBp cyBhcyBiZWxvdzoKClRtZWFzID0gKE5tZWFzIC0gbjEpICsgMjU7IG4xIGlzIHRoZSBmdXNlIHZh bHVlIGZvciAyNUMuCgpTaWduZWQtb2ZmLWJ5OiBBbnNvbiBIdWFuZyA8QW5zb24uSHVhbmdAbnhw LmNvbT4KU2lnbmVkLW9mZi1ieTogQmFpIFBpbmcgPHBpbmcuYmFpQG54cC5jb20+Ci0tLQpjaGFu Z2VzIHNpbmNlIFYzOgoJdXNlICJmc2wsaW14N2QtdGVtcG1vbiIgaW5zdGVhZCBvZiAiZnNsLGlt eDctdGVtcG1vbiIgYXMgY29tcGF0aWJsZSBzdHJpbmc7CglyZWJhc2UgdG8gbGF0ZXN0IDQuMTYt cmMyOwoJaW1wcm92ZSBsb2NhbCB2YXJpYWJsZSBkZWZpbml0aW9uIHNlcXVlbmNlLgogLi4uL2Rl dmljZXRyZWUvYmluZGluZ3MvdGhlcm1hbC9pbXgtdGhlcm1hbC50eHQgICAgfCAgIDkgKy0KIGRy aXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jICAgICAgICAgICAgICAgICAgICAgIHwgMzE0ICsr KysrKysrKysrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyNTQgaW5zZXJ0aW9ucygrKSwg NjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL3RoZXJtYWwvaW14LXRoZXJtYWwudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL3RoZXJtYWwvaW14LXRoZXJtYWwudHh0CmluZGV4IDI4YmU1MWEuLjM4YmZmY2Mg MTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aGVybWFsL2lt eC10aGVybWFsLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdGhl cm1hbC9pbXgtdGhlcm1hbC50eHQKQEAgLTEsOCArMSwxMyBAQAogKiBUZW1wZXJhdHVyZSBNb25p dG9yIChURU1QTU9OKSBvbiBGcmVlc2NhbGUgaS5NWCBTb0NzCiAKIFJlcXVpcmVkIHByb3BlcnRp ZXM6Ci0tIGNvbXBhdGlibGUgOiAiZnNsLGlteDZxLXRlbXBtb24iIGZvciBpLk1YNlEsICJmc2ws aW14NnN4LXRlbXBtb24iIGZvciBpLk1YNlNYLgotICBpLk1YNlNYIGhhcyB0d28gbW9yZSBJUlFz IHRoYW4gaS5NWDZRLCBvbmUgaXMgSVJRX0xPVyBhbmQgdGhlIG90aGVyIGlzIElSUV9QQU5JQywK Ky0gY29tcGF0aWJsZSA6IG11c3QgYmUgb25lIG9mIGZvbGxvd2luZzoKKyAgLSAiZnNsLGlteDZx LXRlbXBtb24iIGZvciBpLk1YNlEsCisgIC0gImZzbCxpbXg2c3gtdGVtcG1vbiIgZm9yIGkuTVg2 U1gsCisgIC0gImZzbCxpbXg3ZC10ZW1wbW9uIiBmb3IgaS5NWDdTL0QuCistIGludGVycnVwdHMg OiB0aGUgaW50ZXJydXB0IG91dHB1dCBvZiB0aGUgY29udHJvbGxlcjoKKyAgaS5NWDZRIGhhcyBv bmUgSVJRIHdoaWNoIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGVtcGVyYXR1cmUgaXMgaGlnaGVy IHRoYW4gaGlnaCB0aHJlc2hvbGQsCisgIGkuTVg2U1ggYW5kIGkuTVg3Uy9EIGhhdmUgdHdvIG1v cmUgSVJRcyB0aGFuIGkuTVg2USwgb25lIGlzIElSUV9MT1cgYW5kIHRoZSBvdGhlciBpcyBJUlFf UEFOSUMsCiAgIHdoZW4gdGVtcGVyYXR1cmUgaXMgYmVsb3cgdGhhbiBsb3cgdGhyZXNob2xkLCBJ UlFfTE9XIHdpbGwgYmUgdHJpZ2dlcmVkLCB3aGVuIHRlbXBlcmF0dXJlCiAgIGlzIGhpZ2hlciB0 aGFuIHBhbmljIHRocmVzaG9sZCwgc3lzdGVtIHdpbGwgYXV0byByZWJvb3QgYnkgU1JDIG1vZHVs ZS4KIC0gZnNsLHRlbXBtb24gOiBwaGFuZGxlIHBvaW50ZXIgdG8gc3lzdGVtIGNvbnRyb2xsZXIg dGhhdCBjb250YWlucyBURU1QTU9OCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvaW14X3Ro ZXJtYWwuYyBiL2RyaXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jCmluZGV4IGE2Nzc4MWIuLjM5 MjhlMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jCisrKyBiL2Ry aXZlcnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jCkBAIC0zMSwzNCArMzEsNTggQEAKICNkZWZpbmUg UkVHX0NMUgkJMHg4CiAjZGVmaW5lIFJFR19UT0cJCTB4YwogCi0jZGVmaW5lIE1JU0MwCQkJCTB4 MDE1MAotI2RlZmluZSBNSVNDMF9SRUZUT1BfU0VMQklBU09GRgkJKDEgPDwgMykKLSNkZWZpbmUg TUlTQzEJCQkJMHgwMTYwCi0jZGVmaW5lIE1JU0MxX0lSUV9URU1QSElHSAkJKDEgPDwgMjkpCisv KiBpLk1YNiBzcGVjaWZpYyAqLworI2RlZmluZSBJTVg2X01JU0MwCQkJCTB4MDE1MAorI2RlZmlu ZSBJTVg2X01JU0MwX1JFRlRPUF9TRUxCSUFTT0ZGCQkoMSA8PCAzKQorI2RlZmluZSBJTVg2X01J U0MxCQkJCTB4MDE2MAorI2RlZmluZSBJTVg2X01JU0MxX0lSUV9URU1QSElHSAkJCSgxIDw8IDI5 KQogLyogQmVsb3cgTE9XIGFuZCBQQU5JQyBiaXRzIGFyZSBvbmx5IGZvciBURU1QTU9OX0lNWDZT WCAqLwotI2RlZmluZSBNSVNDMV9JUlFfVEVNUExPVwkJKDEgPDwgMjgpCi0jZGVmaW5lIE1JU0Mx X0lSUV9URU1QUEFOSUMJCSgxIDw8IDI3KQotCi0jZGVmaW5lIFRFTVBTRU5TRTAJCQkweDAxODAK LSNkZWZpbmUgVEVNUFNFTlNFMF9BTEFSTV9WQUxVRV9TSElGVAkyMAotI2RlZmluZSBURU1QU0VO U0UwX0FMQVJNX1ZBTFVFX01BU0sJKDB4ZmZmIDw8IFRFTVBTRU5TRTBfQUxBUk1fVkFMVUVfU0hJ RlQpCi0jZGVmaW5lIFRFTVBTRU5TRTBfVEVNUF9DTlRfU0hJRlQJOAotI2RlZmluZSBURU1QU0VO U0UwX1RFTVBfQ05UX01BU0sJKDB4ZmZmIDw8IFRFTVBTRU5TRTBfVEVNUF9DTlRfU0hJRlQpCi0j ZGVmaW5lIFRFTVBTRU5TRTBfRklOSVNIRUQJCSgxIDw8IDIpCi0jZGVmaW5lIFRFTVBTRU5TRTBf TUVBU1VSRV9URU1QCQkoMSA8PCAxKQotI2RlZmluZSBURU1QU0VOU0UwX1BPV0VSX0RPV04JCSgx IDw8IDApCi0KLSNkZWZpbmUgVEVNUFNFTlNFMQkJCTB4MDE5MAotI2RlZmluZSBURU1QU0VOU0Ux X01FQVNVUkVfRlJFUQkJMHhmZmZmCi0vKiBCZWxvdyBURU1QU0VOU0UyIGlzIG9ubHkgZm9yIFRF TVBNT05fSU1YNlNYICovCi0jZGVmaW5lIFRFTVBTRU5TRTIJCQkweDAyOTAKLSNkZWZpbmUgVEVN UFNFTlNFMl9MT1dfVkFMVUVfU0hJRlQJMAotI2RlZmluZSBURU1QU0VOU0UyX0xPV19WQUxVRV9N QVNLCTB4ZmZmCi0jZGVmaW5lIFRFTVBTRU5TRTJfUEFOSUNfVkFMVUVfU0hJRlQJMTYKLSNkZWZp bmUgVEVNUFNFTlNFMl9QQU5JQ19WQUxVRV9NQVNLCTB4ZmZmMDAwMAorI2RlZmluZSBJTVg2X01J U0MxX0lSUV9URU1QTE9XCQkJKDEgPDwgMjgpCisjZGVmaW5lIElNWDZfTUlTQzFfSVJRX1RFTVBQ QU5JQwkJKDEgPDwgMjcpCisKKyNkZWZpbmUgSU1YNl9URU1QU0VOU0UwCQkJCTB4MDE4MAorI2Rl ZmluZSBJTVg2X1RFTVBTRU5TRTBfQUxBUk1fVkFMVUVfU0hJRlQJMjAKKyNkZWZpbmUgSU1YNl9U RU1QU0VOU0UwX0FMQVJNX1ZBTFVFX01BU0sJKDB4ZmZmIDw8IDIwKQorI2RlZmluZSBJTVg2X1RF TVBTRU5TRTBfVEVNUF9DTlRfU0hJRlQJCTgKKyNkZWZpbmUgSU1YNl9URU1QU0VOU0UwX1RFTVBf Q05UX01BU0sJCSgweGZmZiA8PCA4KQorI2RlZmluZSBJTVg2X1RFTVBTRU5TRTBfRklOSVNIRUQJ CSgxIDw8IDIpCisjZGVmaW5lIElNWDZfVEVNUFNFTlNFMF9NRUFTVVJFX1RFTVAJCSgxIDw8IDEp CisjZGVmaW5lIElNWDZfVEVNUFNFTlNFMF9QT1dFUl9ET1dOCQkoMSA8PCAwKQorCisjZGVmaW5l IElNWDZfVEVNUFNFTlNFMQkJCQkweDAxOTAKKyNkZWZpbmUgSU1YNl9URU1QU0VOU0UxX01FQVNV UkVfRlJFUQkJMHhmZmZmCisjZGVmaW5lIElNWDZfVEVNUFNFTlNFMV9NRUFTVVJFX0ZSRVFfU0hJ RlQJMAogCi0jZGVmaW5lIE9DT1RQX01FTTAJCQkweDA0ODAKLSNkZWZpbmUgT0NPVFBfQU5BMQkJ CTB4MDRlMAorLyogQmVsb3cgVEVNUFNFTlNFMiBpcyBvbmx5IGZvciBURU1QTU9OX0lNWDZTWCAq LworI2RlZmluZSBJTVg2X1RFTVBTRU5TRTIJCQkJMHgwMjkwCisjZGVmaW5lIElNWDZfVEVNUFNF TlNFMl9MT1dfVkFMVUVfU0hJRlQJCTAKKyNkZWZpbmUgSU1YNl9URU1QU0VOU0UyX0xPV19WQUxV RV9NQVNLCQkweGZmZgorI2RlZmluZSBJTVg2X1RFTVBTRU5TRTJfUEFOSUNfVkFMVUVfU0hJRlQJ MTYKKyNkZWZpbmUgSU1YNl9URU1QU0VOU0UyX1BBTklDX1ZBTFVFX01BU0sJMHhmZmYwMDAwCisK Ky8qIGkuTVg3IHNwZWNpZmljICovCisjZGVmaW5lIElNWDdfQU5BRElHX0RJR1BST0cJCQkweDgw MAorI2RlZmluZSBJTVg3X1RFTVBTRU5TRTAJCQkJMHgzMDAKKyNkZWZpbmUgSU1YN19URU1QU0VO U0UwX1BBTklDX0FMQVJNX1NISUZUCTE4CisjZGVmaW5lIElNWDdfVEVNUFNFTlNFMF9QQU5JQ19B TEFSTV9NQVNLCSgweDFmZiA8PCAxOCkKKyNkZWZpbmUgSU1YN19URU1QU0VOU0UwX0hJR0hfQUxB Uk1fU0hJRlQJOQorI2RlZmluZSBJTVg3X1RFTVBTRU5TRTBfSElHSF9BTEFSTV9NQVNLCQkoMHgx ZmYgPDwgOSkKKyNkZWZpbmUgSU1YN19URU1QU0VOU0UwX0xPV19BTEFSTV9TSElGVAkJMAorI2Rl ZmluZSBJTVg3X1RFTVBTRU5TRTBfTE9XX0FMQVJNX01BU0sJCTB4MWZmCisKKyNkZWZpbmUgSU1Y N19URU1QU0VOU0UxCQkJCTB4MzEwCisjZGVmaW5lIElNWDdfVEVNUFNFTlNFMV9NRUFTVVJFX0ZS RVFfU0hJRlQJMTYKKyNkZWZpbmUgSU1YN19URU1QU0VOU0UxX01FQVNVUkVfRlJFUV9NQVNLCSgw eGZmZmYgPDwgMTYpCisjZGVmaW5lIElNWDdfVEVNUFNFTlNFMV9GSU5JU0hFRAkJKDEgPDwgMTEp CisjZGVmaW5lIElNWDdfVEVNUFNFTlNFMV9NRUFTVVJFX1RFTVAJCSgxIDw8IDEwKQorI2RlZmlu ZSBJTVg3X1RFTVBTRU5TRTFfUE9XRVJfRE9XTgkJKDEgPDwgOSkKKyNkZWZpbmUgSU1YN19URU1Q U0VOU0UxX1RFTVBfVkFMVUVfU0hJRlQJMAorI2RlZmluZSBJTVg3X1RFTVBTRU5TRTFfVEVNUF9W QUxVRV9NQVNLCQkweDFmZgorCisjZGVmaW5lIElNWDZfT0NPVFBfTUVNMAkJCQkweDA0ODAKKyNk ZWZpbmUgSU1YNl9PQ09UUF9BTkExCQkJCTB4MDRlMAorI2RlZmluZSBJTVg3X09DT1RQX1RFU1RF UjMJCQkweDA0NDAKKyNkZWZpbmUgSU1YN19PQ09UUF9BTkExCQkJCTB4MDRmMAogCiAvKiBUaGUg ZHJpdmVyIHN1cHBvcnRzIDEgcGFzc2l2ZSB0cmlwIHBvaW50IGFuZCAxIGNyaXRpY2FsIHRyaXAg cG9pbnQgKi8KIGVudW0gaW14X3RoZXJtYWxfdHJpcCB7CkBAIC03MiwxNyArOTYsMTE0IEBAIGVu dW0gaW14X3RoZXJtYWxfdHJpcCB7CiAKICNkZWZpbmUgVEVNUE1PTl9JTVg2UQkJCTEKICNkZWZp bmUgVEVNUE1PTl9JTVg2U1gJCQkyCisjZGVmaW5lIFRFTVBNT05fSU1YN0QJCQkzCiAKIHN0cnVj dCB0aGVybWFsX3NvY19kYXRhIHsKIAl1MzIgdmVyc2lvbjsKKworCXUzMiBzZW5zb3JfY3RybDsK Kwl1MzIgcG93ZXJfZG93bl9tYXNrOworCXUzMiBtZWFzdXJlX3RlbXBfbWFzazsKKworCXUzMiBt ZWFzdXJlX2ZyZXFfY3RybDsKKwl1MzIgbWVhc3VyZV9mcmVxX21hc2s7CisJdTMyIG1lYXN1cmVf ZnJlcV9zaGlmdDsKKworCXUzMiB0ZW1wX2RhdGE7CisJdTMyIHRlbXBfdmFsdWVfbWFzazsKKwl1 MzIgdGVtcF92YWx1ZV9zaGlmdDsKKwl1MzIgdGVtcF92YWxpZF9tYXNrOworCisJdTMyIHBhbmlj X2FsYXJtX2N0cmw7CisJdTMyIHBhbmljX2FsYXJtX21hc2s7CisJdTMyIHBhbmljX2FsYXJtX3No aWZ0OworCisJdTMyIGhpZ2hfYWxhcm1fY3RybDsKKwl1MzIgaGlnaF9hbGFybV9tYXNrOworCXUz MiBoaWdoX2FsYXJtX3NoaWZ0OworCisJdTMyIGxvd19hbGFybV9jdHJsOworCXUzMiBsb3dfYWxh cm1fbWFzazsKKwl1MzIgbG93X2FsYXJtX3NoaWZ0OwogfTsKIAogc3RhdGljIHN0cnVjdCB0aGVy bWFsX3NvY19kYXRhIHRoZXJtYWxfaW14NnFfZGF0YSA9IHsKIAkudmVyc2lvbiA9IFRFTVBNT05f SU1YNlEsCisKKwkuc2Vuc29yX2N0cmwgPSBJTVg2X1RFTVBTRU5TRTAsCisJLnBvd2VyX2Rvd25f bWFzayA9IElNWDZfVEVNUFNFTlNFMF9QT1dFUl9ET1dOLAorCS5tZWFzdXJlX3RlbXBfbWFzayA9 IElNWDZfVEVNUFNFTlNFMF9NRUFTVVJFX1RFTVAsCisKKwkubWVhc3VyZV9mcmVxX2N0cmwgPSBJ TVg2X1RFTVBTRU5TRTEsCisJLm1lYXN1cmVfZnJlcV9zaGlmdCA9IElNWDZfVEVNUFNFTlNFMV9N RUFTVVJFX0ZSRVFfU0hJRlQsCisJLm1lYXN1cmVfZnJlcV9tYXNrID0gSU1YNl9URU1QU0VOU0Ux X01FQVNVUkVfRlJFUSwKKworCS50ZW1wX2RhdGEgPSBJTVg2X1RFTVBTRU5TRTAsCisJLnRlbXBf dmFsdWVfbWFzayA9IElNWDZfVEVNUFNFTlNFMF9URU1QX0NOVF9NQVNLLAorCS50ZW1wX3ZhbHVl X3NoaWZ0ID0gSU1YNl9URU1QU0VOU0UwX1RFTVBfQ05UX1NISUZULAorCS50ZW1wX3ZhbGlkX21h c2sgPSBJTVg2X1RFTVBTRU5TRTBfRklOSVNIRUQsCisKKwkuaGlnaF9hbGFybV9jdHJsID0gSU1Y Nl9URU1QU0VOU0UwLAorCS5oaWdoX2FsYXJtX21hc2sgPSBJTVg2X1RFTVBTRU5TRTBfQUxBUk1f VkFMVUVfTUFTSywKKwkuaGlnaF9hbGFybV9zaGlmdCA9IElNWDZfVEVNUFNFTlNFMF9BTEFSTV9W QUxVRV9TSElGVCwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgdGhlcm1hbF9zb2NfZGF0YSB0aGVybWFs X2lteDZzeF9kYXRhID0gewogCS52ZXJzaW9uID0gVEVNUE1PTl9JTVg2U1gsCisKKwkuc2Vuc29y X2N0cmwgPSBJTVg2X1RFTVBTRU5TRTAsCisJLnBvd2VyX2Rvd25fbWFzayA9IElNWDZfVEVNUFNF TlNFMF9QT1dFUl9ET1dOLAorCS5tZWFzdXJlX3RlbXBfbWFzayA9IElNWDZfVEVNUFNFTlNFMF9N RUFTVVJFX1RFTVAsCisKKwkubWVhc3VyZV9mcmVxX2N0cmwgPSBJTVg2X1RFTVBTRU5TRTEsCisJ Lm1lYXN1cmVfZnJlcV9zaGlmdCA9IElNWDZfVEVNUFNFTlNFMV9NRUFTVVJFX0ZSRVFfU0hJRlQs CisJLm1lYXN1cmVfZnJlcV9tYXNrID0gSU1YNl9URU1QU0VOU0UxX01FQVNVUkVfRlJFUSwKKwor CS50ZW1wX2RhdGEgPSBJTVg2X1RFTVBTRU5TRTAsCisJLnRlbXBfdmFsdWVfbWFzayA9IElNWDZf VEVNUFNFTlNFMF9URU1QX0NOVF9NQVNLLAorCS50ZW1wX3ZhbHVlX3NoaWZ0ID0gSU1YNl9URU1Q U0VOU0UwX1RFTVBfQ05UX1NISUZULAorCS50ZW1wX3ZhbGlkX21hc2sgPSBJTVg2X1RFTVBTRU5T RTBfRklOSVNIRUQsCisKKwkuaGlnaF9hbGFybV9jdHJsID0gSU1YNl9URU1QU0VOU0UwLAorCS5o aWdoX2FsYXJtX21hc2sgPSBJTVg2X1RFTVBTRU5TRTBfQUxBUk1fVkFMVUVfTUFTSywKKwkuaGln aF9hbGFybV9zaGlmdCA9IElNWDZfVEVNUFNFTlNFMF9BTEFSTV9WQUxVRV9TSElGVCwKKworCS5w YW5pY19hbGFybV9jdHJsID0gSU1YNl9URU1QU0VOU0UyLAorCS5wYW5pY19hbGFybV9tYXNrID0g SU1YNl9URU1QU0VOU0UyX1BBTklDX1ZBTFVFX01BU0ssCisJLnBhbmljX2FsYXJtX3NoaWZ0ID0g SU1YNl9URU1QU0VOU0UyX1BBTklDX1ZBTFVFX1NISUZULAorCisJLmxvd19hbGFybV9jdHJsID0g SU1YNl9URU1QU0VOU0UyLAorCS5sb3dfYWxhcm1fbWFzayA9IElNWDZfVEVNUFNFTlNFMl9MT1df VkFMVUVfTUFTSywKKwkubG93X2FsYXJtX3NoaWZ0ID0gSU1YNl9URU1QU0VOU0UyX0xPV19WQUxV RV9TSElGVCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdGhlcm1hbF9zb2NfZGF0YSB0aGVybWFsX2lt eDdkX2RhdGEgPSB7CisJLnZlcnNpb24gPSBURU1QTU9OX0lNWDdELAorCisJLnNlbnNvcl9jdHJs ID0gSU1YN19URU1QU0VOU0UxLAorCS5wb3dlcl9kb3duX21hc2sgPSBJTVg3X1RFTVBTRU5TRTFf UE9XRVJfRE9XTiwKKwkubWVhc3VyZV90ZW1wX21hc2sgPSBJTVg3X1RFTVBTRU5TRTFfTUVBU1VS RV9URU1QLAorCisJLm1lYXN1cmVfZnJlcV9jdHJsID0gSU1YN19URU1QU0VOU0UxLAorCS5tZWFz dXJlX2ZyZXFfc2hpZnQgPSBJTVg3X1RFTVBTRU5TRTFfTUVBU1VSRV9GUkVRX1NISUZULAorCS5t ZWFzdXJlX2ZyZXFfbWFzayA9IElNWDdfVEVNUFNFTlNFMV9NRUFTVVJFX0ZSRVFfTUFTSywKKwor CS50ZW1wX2RhdGEgPSBJTVg3X1RFTVBTRU5TRTEsCisJLnRlbXBfdmFsdWVfbWFzayA9IElNWDdf VEVNUFNFTlNFMV9URU1QX1ZBTFVFX01BU0ssCisJLnRlbXBfdmFsdWVfc2hpZnQgPSBJTVg3X1RF TVBTRU5TRTFfVEVNUF9WQUxVRV9TSElGVCwKKwkudGVtcF92YWxpZF9tYXNrID0gSU1YN19URU1Q U0VOU0UxX0ZJTklTSEVELAorCisJLnBhbmljX2FsYXJtX2N0cmwgPSBJTVg3X1RFTVBTRU5TRTEs CisJLnBhbmljX2FsYXJtX21hc2sgPSBJTVg3X1RFTVBTRU5TRTBfUEFOSUNfQUxBUk1fTUFTSywK KwkucGFuaWNfYWxhcm1fc2hpZnQgPSBJTVg3X1RFTVBTRU5TRTBfUEFOSUNfQUxBUk1fU0hJRlQs CisKKwkuaGlnaF9hbGFybV9jdHJsID0gSU1YN19URU1QU0VOU0UwLAorCS5oaWdoX2FsYXJtX21h c2sgPSBJTVg3X1RFTVBTRU5TRTBfSElHSF9BTEFSTV9NQVNLLAorCS5oaWdoX2FsYXJtX3NoaWZ0 ID0gSU1YN19URU1QU0VOU0UwX0hJR0hfQUxBUk1fU0hJRlQsCisKKwkubG93X2FsYXJtX2N0cmwg PSBJTVg3X1RFTVBTRU5TRTAsCisJLmxvd19hbGFybV9tYXNrID0gSU1YN19URU1QU0VOU0UwX0xP V19BTEFSTV9NQVNLLAorCS5sb3dfYWxhcm1fc2hpZnQgPSBJTVg3X1RFTVBTRU5TRTBfTE9XX0FM QVJNX1NISUZULAogfTsKIAogc3RydWN0IGlteF90aGVybWFsX2RhdGEgewpAQCAtMTA3LDMxICsy MjgsNDIgQEAgc3RydWN0IGlteF90aGVybWFsX2RhdGEgewogc3RhdGljIHZvaWQgaW14X3NldF9w YW5pY190ZW1wKHN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhLAogCQkJICAgICAgIGludCBw YW5pY190ZW1wKQogeworCWNvbnN0IHN0cnVjdCB0aGVybWFsX3NvY19kYXRhICpzb2NfZGF0YSA9 IGRhdGEtPnNvY2RhdGE7CiAJc3RydWN0IHJlZ21hcCAqbWFwID0gZGF0YS0+dGVtcG1vbjsKIAlp bnQgY3JpdGljYWxfdmFsdWU7CiAKIAljcml0aWNhbF92YWx1ZSA9IChkYXRhLT5jMiAtIHBhbmlj X3RlbXApIC8gZGF0YS0+YzE7Ci0JcmVnbWFwX3dyaXRlKG1hcCwgVEVNUFNFTlNFMiArIFJFR19D TFIsIFRFTVBTRU5TRTJfUEFOSUNfVkFMVUVfTUFTSyk7Ci0JcmVnbWFwX3dyaXRlKG1hcCwgVEVN UFNFTlNFMiArIFJFR19TRVQsIGNyaXRpY2FsX3ZhbHVlIDw8Ci0JCQlURU1QU0VOU0UyX1BBTklD X1ZBTFVFX1NISUZUKTsKKworCXJlZ21hcF93cml0ZShtYXAsIHNvY19kYXRhLT5wYW5pY19hbGFy bV9jdHJsICsgUkVHX0NMUiwKKwkJICAgICBzb2NfZGF0YS0+cGFuaWNfYWxhcm1fbWFzayk7CisJ cmVnbWFwX3dyaXRlKG1hcCwgc29jX2RhdGEtPnBhbmljX2FsYXJtX2N0cmwgKyBSRUdfU0VULAor CQkgICAgIGNyaXRpY2FsX3ZhbHVlIDw8IHNvY19kYXRhLT5wYW5pY19hbGFybV9zaGlmdCk7CiB9 CiAKIHN0YXRpYyB2b2lkIGlteF9zZXRfYWxhcm1fdGVtcChzdHJ1Y3QgaW14X3RoZXJtYWxfZGF0 YSAqZGF0YSwKIAkJCSAgICAgICBpbnQgYWxhcm1fdGVtcCkKIHsKIAlzdHJ1Y3QgcmVnbWFwICpt YXAgPSBkYXRhLT50ZW1wbW9uOworCWNvbnN0IHN0cnVjdCB0aGVybWFsX3NvY19kYXRhICpzb2Nf ZGF0YSA9IGRhdGEtPnNvY2RhdGE7CiAJaW50IGFsYXJtX3ZhbHVlOwogCiAJZGF0YS0+YWxhcm1f dGVtcCA9IGFsYXJtX3RlbXA7Ci0JYWxhcm1fdmFsdWUgPSAoZGF0YS0+YzIgLSBhbGFybV90ZW1w KSAvIGRhdGEtPmMxOwotCXJlZ21hcF93cml0ZShtYXAsIFRFTVBTRU5TRTAgKyBSRUdfQ0xSLCBU RU1QU0VOU0UwX0FMQVJNX1ZBTFVFX01BU0spOwotCXJlZ21hcF93cml0ZShtYXAsIFRFTVBTRU5T RTAgKyBSRUdfU0VULCBhbGFybV92YWx1ZSA8PAotCQkJVEVNUFNFTlNFMF9BTEFSTV9WQUxVRV9T SElGVCk7CisKKwlpZiAoZGF0YS0+c29jZGF0YS0+dmVyc2lvbiA9PSBURU1QTU9OX0lNWDdEKQor CQlhbGFybV92YWx1ZSA9IGFsYXJtX3RlbXAgLyAxMDAwICsgZGF0YS0+YzEgLSAyNTsKKwllbHNl CisJCWFsYXJtX3ZhbHVlID0gKGRhdGEtPmMyIC0gYWxhcm1fdGVtcCkgLyBkYXRhLT5jMTsKKwor CXJlZ21hcF93cml0ZShtYXAsIHNvY19kYXRhLT5oaWdoX2FsYXJtX2N0cmwgKyBSRUdfQ0xSLAor CQkgICAgIHNvY19kYXRhLT5oaWdoX2FsYXJtX21hc2spOworCXJlZ21hcF93cml0ZShtYXAsIHNv Y19kYXRhLT5oaWdoX2FsYXJtX2N0cmwgKyBSRUdfU0VULAorCQkgICAgIGFsYXJtX3ZhbHVlIDw8 IHNvY19kYXRhLT5oaWdoX2FsYXJtX3NoaWZ0KTsKIH0KIAogc3RhdGljIGludCBpbXhfZ2V0X3Rl bXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiB7CiAJc3RydWN0 IGlteF90aGVybWFsX2RhdGEgKmRhdGEgPSB0ei0+ZGV2ZGF0YTsKKwljb25zdCBzdHJ1Y3QgdGhl cm1hbF9zb2NfZGF0YSAqc29jX2RhdGEgPSBkYXRhLT5zb2NkYXRhOwogCXN0cnVjdCByZWdtYXAg Km1hcCA9IGRhdGEtPnRlbXBtb247CiAJdW5zaWduZWQgaW50IG5fbWVhczsKIAlib29sIHdhaXQ7 CkBAIC0xMzksMTYgKzI3MSwxOCBAQCBzdGF0aWMgaW50IGlteF9nZXRfdGVtcChzdHJ1Y3QgdGhl cm1hbF96b25lX2RldmljZSAqdHosIGludCAqdGVtcCkKIAogCWlmIChkYXRhLT5tb2RlID09IFRI RVJNQUxfREVWSUNFX0VOQUJMRUQpIHsKIAkJLyogQ2hlY2sgaWYgYSBtZWFzdXJlbWVudCBpcyBj dXJyZW50bHkgaW4gcHJvZ3Jlc3MgKi8KLQkJcmVnbWFwX3JlYWQobWFwLCBURU1QU0VOU0UwLCAm dmFsKTsKLQkJd2FpdCA9ICEodmFsICYgVEVNUFNFTlNFMF9GSU5JU0hFRCk7CisJCXJlZ21hcF9y ZWFkKG1hcCwgc29jX2RhdGEtPnRlbXBfZGF0YSwgJnZhbCk7CisJCXdhaXQgPSAhKHZhbCAmIHNv Y19kYXRhLT50ZW1wX3ZhbGlkX21hc2spOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEV2ZXJ5IHRp bWUgd2UgbWVhc3VyZSB0aGUgdGVtcGVyYXR1cmUsIHdlIHdpbGwgcG93ZXIgb24gdGhlCiAJCSAq IHRlbXBlcmF0dXJlIHNlbnNvciwgZW5hYmxlIG1lYXN1cmVtZW50cywgdGFrZSBhIHJlYWRpbmcs CiAJCSAqIGRpc2FibGUgbWVhc3VyZW1lbnRzLCBwb3dlciBvZmYgdGhlIHRlbXBlcmF0dXJlIHNl bnNvci4KIAkJICovCi0JCXJlZ21hcF93cml0ZShtYXAsIFRFTVBTRU5TRTAgKyBSRUdfQ0xSLCBU RU1QU0VOU0UwX1BPV0VSX0RPV04pOwotCQlyZWdtYXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsg UkVHX1NFVCwgVEVNUFNFTlNFMF9NRUFTVVJFX1RFTVApOworCQlyZWdtYXBfd3JpdGUobWFwLCBz b2NfZGF0YS0+c2Vuc29yX2N0cmwgKyBSRUdfQ0xSLAorCQkJICAgIHNvY19kYXRhLT5wb3dlcl9k b3duX21hc2spOworCQlyZWdtYXBfd3JpdGUobWFwLCBzb2NfZGF0YS0+c2Vuc29yX2N0cmwgKyBS RUdfU0VULAorCQkJICAgIHNvY19kYXRhLT5tZWFzdXJlX3RlbXBfbWFzayk7CiAKIAkJd2FpdCA9 IHRydWU7CiAJfQpAQCAtMTYwLDIyICsyOTQsMjggQEAgc3RhdGljIGludCBpbXhfZ2V0X3RlbXAo c3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LCBpbnQgKnRlbXApCiAJaWYgKHdhaXQpCiAJ CXVzbGVlcF9yYW5nZSgyMCwgNTApOwogCi0JcmVnbWFwX3JlYWQobWFwLCBURU1QU0VOU0UwLCAm dmFsKTsKKwlyZWdtYXBfcmVhZChtYXAsIHNvY19kYXRhLT50ZW1wX2RhdGEsICZ2YWwpOwogCiAJ aWYgKGRhdGEtPm1vZGUgIT0gVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRCkgewotCQlyZWdtYXBfd3Jp dGUobWFwLCBURU1QU0VOU0UwICsgUkVHX0NMUiwgVEVNUFNFTlNFMF9NRUFTVVJFX1RFTVApOwot CQlyZWdtYXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsgUkVHX1NFVCwgVEVNUFNFTlNFMF9QT1dF Ul9ET1dOKTsKKwkJcmVnbWFwX3dyaXRlKG1hcCwgc29jX2RhdGEtPnNlbnNvcl9jdHJsICsgUkVH X0NMUiwKKwkJCSAgICAgc29jX2RhdGEtPm1lYXN1cmVfdGVtcF9tYXNrKTsKKwkJcmVnbWFwX3dy aXRlKG1hcCwgc29jX2RhdGEtPnNlbnNvcl9jdHJsICsgUkVHX1NFVCwKKwkJCSAgICAgc29jX2Rh dGEtPnBvd2VyX2Rvd25fbWFzayk7CiAJfQogCi0JaWYgKCh2YWwgJiBURU1QU0VOU0UwX0ZJTklT SEVEKSA9PSAwKSB7CisJaWYgKCh2YWwgJiBzb2NfZGF0YS0+dGVtcF92YWxpZF9tYXNrKSA9PSAw KSB7CiAJCWRldl9kYmcoJnR6LT5kZXZpY2UsICJ0ZW1wIG1lYXN1cmVtZW50IG5ldmVyIGZpbmlz aGVkXG4iKTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQogCi0Jbl9tZWFzID0gKHZhbCAmIFRFTVBT RU5TRTBfVEVNUF9DTlRfTUFTSykgPj4gVEVNUFNFTlNFMF9URU1QX0NOVF9TSElGVDsKKwluX21l YXMgPSAodmFsICYgc29jX2RhdGEtPnRlbXBfdmFsdWVfbWFzaykKKwkJPj4gc29jX2RhdGEtPnRl bXBfdmFsdWVfc2hpZnQ7CiAKIAkvKiBTZWUgaW14X2luaXRfY2FsaWIoKSBmb3IgZm9ybXVsYSBk ZXJpdmF0aW9uICovCi0JKnRlbXAgPSBkYXRhLT5jMiAtIG5fbWVhcyAqIGRhdGEtPmMxOworCWlm IChkYXRhLT5zb2NkYXRhLT52ZXJzaW9uID09IFRFTVBNT05fSU1YN0QpCisJCSp0ZW1wID0gKG5f bWVhcyAtIGRhdGEtPmMxICsgMjUpICogMTAwMDsKKwllbHNlCisJCSp0ZW1wID0gZGF0YS0+YzIg LSBuX21lYXMgKiBkYXRhLT5jMTsKIAogCS8qIFVwZGF0ZSBhbGFybSB2YWx1ZSB0byBuZXh0IGhp Z2hlciB0cmlwIHBvaW50IGZvciBURU1QTU9OX0lNWDZRICovCiAJaWYgKGRhdGEtPnNvY2RhdGEt PnZlcnNpb24gPT0gVEVNUE1PTl9JTVg2USkgewpAQCAtMjE5LDIxICszNTksMjYgQEAgc3RhdGlj IGludCBpbXhfc2V0X21vZGUoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6LAogewogCXN0 cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhID0gdHotPmRldmRhdGE7CiAJc3RydWN0IHJlZ21h cCAqbWFwID0gZGF0YS0+dGVtcG1vbjsKKwljb25zdCBzdHJ1Y3QgdGhlcm1hbF9zb2NfZGF0YSAq c29jX2RhdGEgPSBkYXRhLT5zb2NkYXRhOwogCiAJaWYgKG1vZGUgPT0gVEhFUk1BTF9ERVZJQ0Vf RU5BQkxFRCkgewogCQl0ei0+cG9sbGluZ19kZWxheSA9IElNWF9QT0xMSU5HX0RFTEFZOwogCQl0 ei0+cGFzc2l2ZV9kZWxheSA9IElNWF9QQVNTSVZFX0RFTEFZOwogCi0JCXJlZ21hcF93cml0ZSht YXAsIFRFTVBTRU5TRTAgKyBSRUdfQ0xSLCBURU1QU0VOU0UwX1BPV0VSX0RPV04pOwotCQlyZWdt YXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsgUkVHX1NFVCwgVEVNUFNFTlNFMF9NRUFTVVJFX1RF TVApOworCQlyZWdtYXBfd3JpdGUobWFwLCBzb2NfZGF0YS0+c2Vuc29yX2N0cmwgKyBSRUdfQ0xS LAorCQkJICAgICBzb2NfZGF0YS0+cG93ZXJfZG93bl9tYXNrKTsKKwkJcmVnbWFwX3dyaXRlKG1h cCwgc29jX2RhdGEtPnNlbnNvcl9jdHJsICsgUkVHX1NFVCwKKwkJCSAgICAgc29jX2RhdGEtPm1l YXN1cmVfdGVtcF9tYXNrKTsKIAogCQlpZiAoIWRhdGEtPmlycV9lbmFibGVkKSB7CiAJCQlkYXRh LT5pcnFfZW5hYmxlZCA9IHRydWU7CiAJCQllbmFibGVfaXJxKGRhdGEtPmlycSk7CiAJCX0KIAl9 IGVsc2UgewotCQlyZWdtYXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsgUkVHX0NMUiwgVEVNUFNF TlNFMF9NRUFTVVJFX1RFTVApOwotCQlyZWdtYXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsgUkVH X1NFVCwgVEVNUFNFTlNFMF9QT1dFUl9ET1dOKTsKKwkJcmVnbWFwX3dyaXRlKG1hcCwgc29jX2Rh dGEtPnNlbnNvcl9jdHJsICsgUkVHX0NMUiwKKwkJCSAgICAgc29jX2RhdGEtPm1lYXN1cmVfdGVt cF9tYXNrKTsKKwkJcmVnbWFwX3dyaXRlKG1hcCwgc29jX2RhdGEtPnNlbnNvcl9jdHJsICsgUkVH X1NFVCwKKwkJCSAgICAgc29jX2RhdGEtPnBvd2VyX2Rvd25fbWFzayk7CiAKIAkJdHotPnBvbGxp bmdfZGVsYXkgPSAwOwogCQl0ei0+cGFzc2l2ZV9kZWxheSA9IDA7CkBAIC0zNTUsNiArNTAwLDE1 IEBAIHN0YXRpYyBpbnQgaW14X2luaXRfY2FsaWIoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl diwgdTMyIG9jb3RwX2FuYTEpCiAJfQogCiAJLyoKKwkgKiBPbiBpLk1YN0QsIHdlIG9ubHkgdXNl IHRoZSBjYWxpYnJhdGlvbiBkYXRhIGF0IDI1QyB0byBnZXQgdGhlIHRlbXAsCisJICogVG1lYXMg PSAoIE5tZWFzIC0gbjEpICsgMjU7IG4xIGlzIHRoZSBmdXNlIHZhbHVlIGZvciAyNUMuCisJICov CisJaWYgKGRhdGEtPnNvY2RhdGEtPnZlcnNpb24gPT0gVEVNUE1PTl9JTVg3RCkgeworCQlkYXRh LT5jMSA9IChvY290cF9hbmExID4+IDkpICYgMHgxZmY7CisJCXJldHVybiAwOworCX0KKworCS8q CiAJICogVGhlIHNlbnNvciBpcyBjYWxpYnJhdGVkIGF0IDI1IMKwQyAoYWthIFQxKSBhbmQgdGhl IHZhbHVlIG1lYXN1cmVkCiAJICogKGFrYSBOMSkgYXQgdGhpcyB0ZW1wZXJhdHVyZSBpcyBwcm92 aWRlZCBpbiBiaXRzIFszMToyMF0gaW4gdGhlCiAJICogaS5NWCdzIE9DT1RQIHZhbHVlIEFOQTEu CkBAIC00MTgsNiArNTcyLDcgQEAgc3RhdGljIHZvaWQgaW14X2luaXRfdGVtcF9ncmFkZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1MzIgb2NvdHBfbWVtMCkKIAogc3RhdGljIGludCBp bXhfaW5pdF9mcm9tX3RlbXBtb25fZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQog eworCWNvbnN0IHN0cnVjdCBpbXhfdGhlcm1hbF9kYXRhICpkYXRhID0gcGxhdGZvcm1fZ2V0X2Ry dmRhdGEocGRldik7CiAJc3RydWN0IHJlZ21hcCAqbWFwOwogCWludCByZXQ7CiAJdTMyIHZhbDsK QEAgLTQzMCw3ICs1ODUsMTEgQEAgc3RhdGljIGludCBpbXhfaW5pdF9mcm9tX3RlbXBtb25fZGF0 YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gcmV0OwogCX0KIAotCXJl dCA9IHJlZ21hcF9yZWFkKG1hcCwgT0NPVFBfQU5BMSwgJnZhbCk7CisJaWYgKGRhdGEtPnNvY2Rh dGEtPnZlcnNpb24gPT0gVEVNUE1PTl9JTVg3RCkKKwkJcmV0ID0gcmVnbWFwX3JlYWQobWFwLCBJ TVg3X09DT1RQX0FOQTEsICZ2YWwpOworCWVsc2UKKwkJcmV0ID0gcmVnbWFwX3JlYWQobWFwLCBJ TVg2X09DT1RQX0FOQTEsICZ2YWwpOworCiAJaWYgKHJldCkgewogCQlkZXZfZXJyKCZwZGV2LT5k ZXYsICJmYWlsZWQgdG8gcmVhZCBzZW5zb3IgZGF0YTogJWRcbiIsIHJldCk7CiAJCXJldHVybiBy ZXQ7CkBAIC00MzksNyArNTk4LDExIEBAIHN0YXRpYyBpbnQgaW14X2luaXRfZnJvbV90ZW1wbW9u X2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCi0JcmV0ID0gcmVnbWFwX3JlYWQobWFwLCBPQ09UUF9NRU0wLCAmdmFsKTsKKwkvKiB1 c2UgT1RQIGZvciB0aGVybWFsIGdyYWRlICovCisJaWYgKGRhdGEtPnNvY2RhdGEtPnZlcnNpb24g PT0gVEVNUE1PTl9JTVg3RCkKKwkJcmV0ID0gcmVnbWFwX3JlYWQobWFwLCBJTVg3X09DT1RQX1RF U1RFUjMsICZ2YWwpOworCWVsc2UKKwkJcmV0ID0gcmVnbWFwX3JlYWQobWFwLCBJTVg2X09DT1RQ X01FTTAsICZ2YWwpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVk IHRvIHJlYWQgc2Vuc29yIGRhdGE6ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwpAQCAtNDky LDYgKzY1NSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpbXhfdGhlcm1hbF9hbGFybV9pcnFfdGhy ZWFkKGludCBpcnEsIHZvaWQgKmRldikKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk IG9mX2lteF90aGVybWFsX21hdGNoW10gPSB7CiAJeyAuY29tcGF0aWJsZSA9ICJmc2wsaW14NnEt dGVtcG1vbiIsIC5kYXRhID0gJnRoZXJtYWxfaW14NnFfZGF0YSwgfSwKIAl7IC5jb21wYXRpYmxl ID0gImZzbCxpbXg2c3gtdGVtcG1vbiIsIC5kYXRhID0gJnRoZXJtYWxfaW14NnN4X2RhdGEsIH0s CisJeyAuY29tcGF0aWJsZSA9ICJmc2wsaW14N2QtdGVtcG1vbiIsIC5kYXRhID0gJnRoZXJtYWxf aW14N2RfZGF0YSwgfSwKIAl7IC8qIGVuZCAqLyB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShv Ziwgb2ZfaW14X3RoZXJtYWxfbWF0Y2gpOwpAQCAtNTIzLDE0ICs2ODcsMTUgQEAgc3RhdGljIGlu dCBpbXhfdGhlcm1hbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJLyog bWFrZSBzdXJlIHRoZSBJUlEgZmxhZyBpcyBjbGVhciBiZWZvcmUgZW5hYmxpbmcgaXJxIG9uIGku TVg2U1ggKi8KIAlpZiAoZGF0YS0+c29jZGF0YS0+dmVyc2lvbiA9PSBURU1QTU9OX0lNWDZTWCkg ewotCQlyZWdtYXBfd3JpdGUobWFwLCBNSVNDMSArIFJFR19DTFIsIE1JU0MxX0lSUV9URU1QSElH SCB8Ci0JCQlNSVNDMV9JUlFfVEVNUExPVyB8IE1JU0MxX0lSUV9URU1QUEFOSUMpOworCQlyZWdt YXBfd3JpdGUobWFwLCBJTVg2X01JU0MxICsgUkVHX0NMUiwKKwkJCUlNWDZfTUlTQzFfSVJRX1RF TVBISUdIIHwgSU1YNl9NSVNDMV9JUlFfVEVNUExPVworCQkJfCBJTVg2X01JU0MxX0lSUV9URU1Q UEFOSUMpOwogCQkvKgogCQkgKiByZXNldCB2YWx1ZSBvZiBMT1cgQUxBUk0gaXMgaW5jb3JyZWN0 LCBzZXQgaXQgdG8gbG93ZXN0CiAJCSAqIHZhbHVlIHRvIGF2b2lkIGZhbHNlIHRyaWdnZXIgb2Yg bG93IGFsYXJtLgogCQkgKi8KLQkJcmVnbWFwX3dyaXRlKG1hcCwgVEVNUFNFTlNFMiArIFJFR19T RVQsCi0JCQlURU1QU0VOU0UyX0xPV19WQUxVRV9NQVNLKTsKKwkJcmVnbWFwX3dyaXRlKG1hcCwg ZGF0YS0+c29jZGF0YS0+bG93X2FsYXJtX2N0cmwgKyBSRUdfU0VULAorCQkJICAgICBkYXRhLT5z b2NkYXRhLT5sb3dfYWxhcm1fbWFzayk7CiAJfQogCiAJZGF0YS0+aXJxID0gcGxhdGZvcm1fZ2V0 X2lycShwZGV2LCAwKTsKQEAgLTU1NywxMSArNzIyLDE3IEBAIHN0YXRpYyBpbnQgaW14X3RoZXJt YWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAl9CiAKIAkvKiBNYWtlIHN1 cmUgc2Vuc29yIGlzIGluIGtub3duIGdvb2Qgc3RhdGUgZm9yIG1lYXN1cmVtZW50cyAqLwotCXJl Z21hcF93cml0ZShtYXAsIFRFTVBTRU5TRTAgKyBSRUdfQ0xSLCBURU1QU0VOU0UwX1BPV0VSX0RP V04pOwotCXJlZ21hcF93cml0ZShtYXAsIFRFTVBTRU5TRTAgKyBSRUdfQ0xSLCBURU1QU0VOU0Uw X01FQVNVUkVfVEVNUCk7Ci0JcmVnbWFwX3dyaXRlKG1hcCwgVEVNUFNFTlNFMSArIFJFR19DTFIs IFRFTVBTRU5TRTFfTUVBU1VSRV9GUkVRKTsKLQlyZWdtYXBfd3JpdGUobWFwLCBNSVNDMCArIFJF R19TRVQsIE1JU0MwX1JFRlRPUF9TRUxCSUFTT0ZGKTsKLQlyZWdtYXBfd3JpdGUobWFwLCBURU1Q U0VOU0UwICsgUkVHX1NFVCwgVEVNUFNFTlNFMF9QT1dFUl9ET1dOKTsKKwlyZWdtYXBfd3JpdGUo bWFwLCBkYXRhLT5zb2NkYXRhLT5zZW5zb3JfY3RybCArIFJFR19DTFIsCisJCSAgICAgZGF0YS0+ c29jZGF0YS0+cG93ZXJfZG93bl9tYXNrKTsKKwlyZWdtYXBfd3JpdGUobWFwLCBkYXRhLT5zb2Nk YXRhLT5zZW5zb3JfY3RybCArIFJFR19DTFIsCisJCSAgICAgZGF0YS0+c29jZGF0YS0+bWVhc3Vy ZV90ZW1wX21hc2spOworCXJlZ21hcF93cml0ZShtYXAsIGRhdGEtPnNvY2RhdGEtPm1lYXN1cmVf ZnJlcV9jdHJsICsgUkVHX0NMUiwKKwkJICAgICBkYXRhLT5zb2NkYXRhLT5tZWFzdXJlX2ZyZXFf bWFzayk7CisJaWYgKGRhdGEtPnNvY2RhdGEtPnZlcnNpb24gIT0gVEVNUE1PTl9JTVg3RCkKKwkJ cmVnbWFwX3dyaXRlKG1hcCwgSU1YNl9NSVNDMCArIFJFR19TRVQsCisJCQlJTVg2X01JU0MwX1JF RlRPUF9TRUxCSUFTT0ZGKTsKKwlyZWdtYXBfd3JpdGUobWFwLCBkYXRhLT5zb2NkYXRhLT5zZW5z b3JfY3RybCArIFJFR19TRVQsCisJCSAgICAgZGF0YS0+c29jZGF0YS0+cG93ZXJfZG93bl9tYXNr KTsKIAogCWRhdGEtPnBvbGljeSA9IGNwdWZyZXFfY3B1X2dldCgwKTsKIAlpZiAoIWRhdGEtPnBv bGljeSkgewpAQCAtNjI2LDE2ICs3OTcsMjAgQEAgc3RhdGljIGludCBpbXhfdGhlcm1hbF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkgZGF0YS0+dGVtcF9wYXNzaXZlIC8g MTAwMCk7CiAKIAkvKiBFbmFibGUgbWVhc3VyZW1lbnRzIGF0IH4gMTAgSHogKi8KLQlyZWdtYXBf d3JpdGUobWFwLCBURU1QU0VOU0UxICsgUkVHX0NMUiwgVEVNUFNFTlNFMV9NRUFTVVJFX0ZSRVEp OworCXJlZ21hcF93cml0ZShtYXAsIGRhdGEtPnNvY2RhdGEtPm1lYXN1cmVfZnJlcV9jdHJsICsg UkVHX0NMUiwKKwkJICAgICBkYXRhLT5zb2NkYXRhLT5tZWFzdXJlX2ZyZXFfbWFzayk7CiAJbWVh c3VyZV9mcmVxID0gRElWX1JPVU5EX1VQKDMyNzY4LCAxMCk7IC8qIDEwIEh6ICovCi0JcmVnbWFw X3dyaXRlKG1hcCwgVEVNUFNFTlNFMSArIFJFR19TRVQsIG1lYXN1cmVfZnJlcSk7CisJcmVnbWFw X3dyaXRlKG1hcCwgZGF0YS0+c29jZGF0YS0+bWVhc3VyZV9mcmVxX2N0cmwgKyBSRUdfU0VULAor CQkgICAgIG1lYXN1cmVfZnJlcSA8PCBkYXRhLT5zb2NkYXRhLT5tZWFzdXJlX2ZyZXFfc2hpZnQp OwogCWlteF9zZXRfYWxhcm1fdGVtcChkYXRhLCBkYXRhLT50ZW1wX3Bhc3NpdmUpOwogCiAJaWYg KGRhdGEtPnNvY2RhdGEtPnZlcnNpb24gPT0gVEVNUE1PTl9JTVg2U1gpCiAJCWlteF9zZXRfcGFu aWNfdGVtcChkYXRhLCBkYXRhLT50ZW1wX2NyaXRpY2FsKTsKIAotCXJlZ21hcF93cml0ZShtYXAs IFRFTVBTRU5TRTAgKyBSRUdfQ0xSLCBURU1QU0VOU0UwX1BPV0VSX0RPV04pOwotCXJlZ21hcF93 cml0ZShtYXAsIFRFTVBTRU5TRTAgKyBSRUdfU0VULCBURU1QU0VOU0UwX01FQVNVUkVfVEVNUCk7 CisJcmVnbWFwX3dyaXRlKG1hcCwgZGF0YS0+c29jZGF0YS0+c2Vuc29yX2N0cmwgKyBSRUdfQ0xS LAorCQkgICAgIGRhdGEtPnNvY2RhdGEtPnBvd2VyX2Rvd25fbWFzayk7CisJcmVnbWFwX3dyaXRl KG1hcCwgZGF0YS0+c29jZGF0YS0+c2Vuc29yX2N0cmwgKyBSRUdfU0VULAorCQkgICAgIGRhdGEt PnNvY2RhdGEtPm1lYXN1cmVfdGVtcF9tYXNrKTsKIAogCXJldCA9IGRldm1fcmVxdWVzdF90aHJl YWRlZF9pcnEoJnBkZXYtPmRldiwgZGF0YS0+aXJxLAogCQkJaW14X3RoZXJtYWxfYWxhcm1faXJx LCBpbXhfdGhlcm1hbF9hbGFybV9pcnFfdGhyZWFkLApAQCAtNjYxLDcgKzgzNiw4IEBAIHN0YXRp YyBpbnQgaW14X3RoZXJtYWxfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ c3RydWN0IHJlZ21hcCAqbWFwID0gZGF0YS0+dGVtcG1vbjsKIAogCS8qIERpc2FibGUgbWVhc3Vy ZW1lbnRzICovCi0JcmVnbWFwX3dyaXRlKG1hcCwgVEVNUFNFTlNFMCArIFJFR19TRVQsIFRFTVBT RU5TRTBfUE9XRVJfRE9XTik7CisJcmVnbWFwX3dyaXRlKG1hcCwgZGF0YS0+c29jZGF0YS0+c2Vu c29yX2N0cmwgKyBSRUdfU0VULAorCQkgICAgIGRhdGEtPnNvY2RhdGEtPnBvd2VyX2Rvd25fbWFz ayk7CiAJaWYgKCFJU19FUlIoZGF0YS0+dGhlcm1hbF9jbGspKQogCQljbGtfZGlzYWJsZV91bnBy ZXBhcmUoZGF0YS0+dGhlcm1hbF9jbGspOwogCkBAIC02ODQsOCArODYwLDEwIEBAIHN0YXRpYyBp bnQgaW14X3RoZXJtYWxfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJICogdGVtcGVyYXR1 cmUgd2lsbCBiZSByZWFkIGFzIHRoZSB0aGVybWFsIHNlbnNvciBpcyBwb3dlcmVkCiAJICogZG93 bi4KIAkgKi8KLQlyZWdtYXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsgUkVHX0NMUiwgVEVNUFNF TlNFMF9NRUFTVVJFX1RFTVApOwotCXJlZ21hcF93cml0ZShtYXAsIFRFTVBTRU5TRTAgKyBSRUdf U0VULCBURU1QU0VOU0UwX1BPV0VSX0RPV04pOworCXJlZ21hcF93cml0ZShtYXAsIGRhdGEtPnNv Y2RhdGEtPnNlbnNvcl9jdHJsICsgUkVHX0NMUiwKKwkJICAgICBkYXRhLT5zb2NkYXRhLT5tZWFz dXJlX3RlbXBfbWFzayk7CisJcmVnbWFwX3dyaXRlKG1hcCwgZGF0YS0+c29jZGF0YS0+c2Vuc29y X2N0cmwgKyBSRUdfU0VULAorCQkgICAgIGRhdGEtPnNvY2RhdGEtPnBvd2VyX2Rvd25fbWFzayk7 CiAJZGF0YS0+bW9kZSA9IFRIRVJNQUxfREVWSUNFX0RJU0FCTEVEOwogCWNsa19kaXNhYmxlX3Vu cHJlcGFyZShkYXRhLT50aGVybWFsX2Nsayk7CiAKQEAgLTcwMiw4ICs4ODAsMTAgQEAgc3RhdGlj IGludCBpbXhfdGhlcm1hbF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCWlmIChyZXQpCiAJ CXJldHVybiByZXQ7CiAJLyogRW5hYmxlZCB0aGVybWFsIHNlbnNvciBhZnRlciByZXN1bWUgKi8K LQlyZWdtYXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsgUkVHX0NMUiwgVEVNUFNFTlNFMF9QT1dF Ul9ET1dOKTsKLQlyZWdtYXBfd3JpdGUobWFwLCBURU1QU0VOU0UwICsgUkVHX1NFVCwgVEVNUFNF TlNFMF9NRUFTVVJFX1RFTVApOworCXJlZ21hcF93cml0ZShtYXAsIGRhdGEtPnNvY2RhdGEtPnNl bnNvcl9jdHJsICsgUkVHX0NMUiwKKwkJICAgICBkYXRhLT5zb2NkYXRhLT5wb3dlcl9kb3duX21h c2spOworCXJlZ21hcF93cml0ZShtYXAsIGRhdGEtPnNvY2RhdGEtPnNlbnNvcl9jdHJsICsgUkVH X1NFVCwKKwkJICAgICBkYXRhLT5zb2NkYXRhLT5tZWFzdXJlX3RlbXBfbWFzayk7CiAJZGF0YS0+ bW9kZSA9IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQ7CiAKIAlyZXR1cm4gMDsKLS0gCjIuNy40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=