From mboxrd@z Thu Jan 1 00:00:00 1970
From: Philipp Zabel
Subject: [PATCH] drm/mediatek: use HDMI state notifier support
Date: Tue, 15 Nov 2016 19:39:51 +0100
Message-ID: <20161115183951.840-1-p.zabel@pengutronix.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de
[IPv6:2001:67c:670:201:290:27ff:fe1d:cc33])
by gabe.freedesktop.org (Postfix) with ESMTPS id AADE46E23E
for ; Tue, 15 Nov 2016 18:39:58 +0000 (UTC)
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: dri-devel@lists.freedesktop.org
Cc: Russell King , Hans Verkuil , PC Liao , linux-mediatek@lists.infradead.org
List-Id: dri-devel@lists.freedesktop.org
SXNzdWUgaG90LXBsdWcgZGV0ZWN0aW9uLCBFRElEIHVwZGF0ZSwgYW5kIEVMRCB1cGRhdGUgbm90
aWZpY2F0aW9ucwpmcm9tIHRoZSBDRUMgYW5kIEhETUkgZHJpdmVycyB1c2luZyB0aGUgSERNSSBz
dGF0ZSBub3RpZmllciBzdXBwb3J0LgoKU2lnbmVkLW9mZi1ieTogUGhpbGlwcCBaYWJlbCA8cC56
YWJlbEBwZW5ndXRyb25peC5kZT4KLS0tClRoaXMgcGF0Y2ggZGVwZW5kcyBvbiB0aGUgInZpZGVv
OiBhZGQgSERNSSBzdGF0ZSBub3RpZmllciBzdXBwb3J0IiBwYXRjaCBbMV0gYnkKSGFucyBWZXJr
dWlsLCBiYXNlZCBvbiBSdXNzZWxsIEtpbmcncyBlYXJsaWVyIHZlcnNpb24uIFdpdGggdGhpcyB3
ZSBjYW4gcmVwbGFjZQp0aGUgY3VzdG9tIGNhbGxiYWNrIGludGVyZmFjZSBiZXR3ZWVuIEhETUkg
YW5kIENFQyBkcml2ZXJzIHdpdGggYSBjb21tb24KbWVjaGFuaXNtLiBJdCB3aWxsIGFsc28gYWxs
b3cgb3RoZXIgZHJpdmVycyBzdWNoIGFzIGhkbWktY29kZWMgdG8gcmVhY3QgdG8gdGhlCmVtaXR0
ZWQgZXZlbnRzLgoKWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmxpbnV4dHYub3JnL3BhdGNoLzM4MTA5
LwotLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY2VjLmMgIHwgNTYgKysrKysrKysr
KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210
a19jZWMuaCAgfCAyNiAtLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr
L210a19oZG1pLmMgfCA0NiArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDMgZmlsZXMg
Y2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAx
MDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jZWMuaAoKZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY2VjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0
ZWsvbXRrX2NlYy5jCmluZGV4IDdhM2ViOGMuLjlhMTgwN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv
Z3B1L2RybS9tZWRpYXRlay9tdGtfY2VjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr
L210a19jZWMuYwpAQCAtMTMsMTIgKzEzLDExIEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9jbGsu
aD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2hkbWktbm90aWZp
ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5o
PgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCi0jaW5jbHVkZSAibXRrX2Nl
Yy5oIgotCiAjZGVmaW5lIFRSX0NPTkZJRwkJMHgwMAogI2RlZmluZSBDTEVBUl9DRUNfSVJRCQkJ
QklUKDE1KQogCkBAIC01NSwxMiArNTQsOSBAQAogCiBzdHJ1Y3QgbXRrX2NlYyB7CiAJdm9pZCBf
X2lvbWVtICpyZWdzOworCXN0cnVjdCBoZG1pX25vdGlmaWVyICpub3RpZmllcjsKIAlzdHJ1Y3Qg
Y2xrICpjbGs7CiAJaW50IGlycTsKLQlib29sIGhwZDsKLQl2b2lkICgqaHBkX2V2ZW50KShib29s
IGhwZCwgc3RydWN0IGRldmljZSAqZGV2KTsKLQlzdHJ1Y3QgZGV2aWNlICpoZG1pX2RldjsKLQlz
cGlubG9ja190IGxvY2s7CiB9OwogCiBzdGF0aWMgdm9pZCBtdGtfY2VjX2NsZWFyX2JpdHMoc3Ry
dWN0IG10a19jZWMgKmNlYywgdW5zaWduZWQgaW50IG9mZnNldCwKQEAgLTk0LDIwICs5MCw3IEBA
IHN0YXRpYyB2b2lkIG10a19jZWNfbWFzayhzdHJ1Y3QgbXRrX2NlYyAqY2VjLCB1bnNpZ25lZCBp
bnQgb2Zmc2V0LAogCXdyaXRlbCh2YWwsIGNlYy0+cmVncyArIG9mZnNldCk7CiB9CiAKLXZvaWQg
bXRrX2NlY19zZXRfaHBkX2V2ZW50KHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCSAgIHZvaWQgKCpo
cGRfZXZlbnQpKGJvb2wgaHBkLCBzdHJ1Y3QgZGV2aWNlICpkZXYpLAotCQkJICAgc3RydWN0IGRl
dmljZSAqaGRtaV9kZXYpCi17Ci0Jc3RydWN0IG10a19jZWMgKmNlYyA9IGRldl9nZXRfZHJ2ZGF0
YShkZXYpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2Vj
LT5sb2NrLCBmbGFncyk7Ci0JY2VjLT5oZG1pX2RldiA9IGhkbWlfZGV2OwotCWNlYy0+aHBkX2V2
ZW50ID0gaHBkX2V2ZW50OwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNlYy0+bG9jaywgZmxh
Z3MpOwotfQotCi1ib29sIG10a19jZWNfaHBkX2hpZ2goc3RydWN0IGRldmljZSAqZGV2KQorc3Rh
dGljIGJvb2wgbXRrX2NlY19ocGRfaGlnaChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0
IG10a19jZWMgKmNlYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXVuc2lnbmVkIGludCBzdGF0
dXM7CkBAIC0xNTIsMjEgKzEzNSw2IEBAIHN0YXRpYyB2b2lkIG10a19jZWNfY2xlYXJfaHRwbGdf
aXJxKHN0cnVjdCBtdGtfY2VjICpjZWMpCiAJCQkgICBSWF9JTlRfMzJLX0NMUiB8IEhETUlfSFRQ
TEdfSU5UXzMyS19DTFIpOwogfQogCi1zdGF0aWMgdm9pZCBtdGtfY2VjX2hwZF9ldmVudChzdHJ1
Y3QgbXRrX2NlYyAqY2VjLCBib29sIGhwZCkKLXsKLQl2b2lkICgqaHBkX2V2ZW50KShib29sIGhw
ZCwgc3RydWN0IGRldmljZSAqZGV2KTsKLQlzdHJ1Y3QgZGV2aWNlICpoZG1pX2RldjsKLQl1bnNp
Z25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNlYy0+bG9jaywgZmxhZ3Mp
OwotCWhwZF9ldmVudCA9IGNlYy0+aHBkX2V2ZW50OwotCWhkbWlfZGV2ID0gY2VjLT5oZG1pX2Rl
djsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjZWMtPmxvY2ssIGZsYWdzKTsKLQotCWlmICho
cGRfZXZlbnQpCi0JCWhwZF9ldmVudChocGQsIGhkbWlfZGV2KTsKLX0KLQogc3RhdGljIGlycXJl
dHVybl90IG10a19jZWNfaHRwbGdfaXNyX3RocmVhZChpbnQgaXJxLCB2b2lkICphcmcpCiB7CiAJ
c3RydWN0IGRldmljZSAqZGV2ID0gYXJnOwpAQCAtMTc2LDExICsxNDQsMTMgQEAgc3RhdGljIGly
cXJldHVybl90IG10a19jZWNfaHRwbGdfaXNyX3RocmVhZChpbnQgaXJxLCB2b2lkICphcmcpCiAJ
bXRrX2NlY19jbGVhcl9odHBsZ19pcnEoY2VjKTsKIAlocGQgPSBtdGtfY2VjX2hwZF9oaWdoKGRl
dik7CiAKLQlpZiAoY2VjLT5ocGQgIT0gaHBkKSB7CisJaWYgKGNlYy0+bm90aWZpZXItPmNvbm5l
Y3RlZCAhPSBocGQpIHsKIAkJZGV2X2RiZyhkZXYsICJob3RwbHVnIGV2ZW50ISBjdXIgaHBkID0g
JWQsIGhwZCA9ICVkXG4iLAotCQkJY2VjLT5ocGQsIGhwZCk7Ci0JCWNlYy0+aHBkID0gaHBkOwot
CQltdGtfY2VjX2hwZF9ldmVudChjZWMsIGhwZCk7CisJCQljZWMtPm5vdGlmaWVyLT5jb25uZWN0
ZWQsIGhwZCk7CisJCWlmIChocGQpCisJCQloZG1pX2V2ZW50X2Nvbm5lY3QoY2VjLT5ub3RpZmll
cik7CisJCWVsc2UKKwkJCWhkbWlfZXZlbnRfZGlzY29ubmVjdChjZWMtPm5vdGlmaWVyKTsKIAl9
CiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQpAQCAtMTk3LDcgKzE2Nyw2IEBAIHN0YXRpYyBpbnQg
bXRrX2NlY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gLUVO
T01FTTsKIAogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGNlYyk7Ci0Jc3Bpbl9sb2NrX2lu
aXQoJmNlYy0+bG9jayk7CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9S
RVNPVVJDRV9NRU0sIDApOwogCWNlYy0+cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYs
IHJlcyk7CkBAIC0yMjAsNiArMTg5LDEyIEBAIHN0YXRpYyBpbnQgbXRrX2NlY19wcm9iZShzdHJ1
Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gY2VjLT5pcnE7CiAJfQogCisJY2Vj
LT5ub3RpZmllciA9IGhkbWlfbm90aWZpZXJfZ2V0KGRldik7CisJaWYgKCFjZWMtPm5vdGlmaWVy
KSB7CisJCWNsa19kaXNhYmxlX3VucHJlcGFyZShjZWMtPmNsayk7CisJCXJldHVybiAtRU5PTUVN
OworCX0KKwogCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBjZWMtPmlycSwg
TlVMTCwKIAkJCQkJbXRrX2NlY19odHBsZ19pc3JfdGhyZWFkLAogCQkJCQlJUlFGX1NIQVJFRCB8
IElSUUZfVFJJR0dFUl9MT1cgfApAQCAtMjQ1LDYgKzIyMCw3IEBAIHN0YXRpYyBpbnQgbXRrX2Nl
Y19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgbXRrX2Nl
YyAqY2VjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAKKwloZG1pX25vdGlmaWVyX3B1
dChjZWMtPm5vdGlmaWVyKTsKIAltdGtfY2VjX2h0cGxnX2lycV9kaXNhYmxlKGNlYyk7CiAJY2xr
X2Rpc2FibGVfdW5wcmVwYXJlKGNlYy0+Y2xrKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY2VjLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0
ZWsvbXRrX2NlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDA1N2I3Li4wMDAw
MDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY2VjLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE0IE1lZGlhVGVrIElu
Yy4KLSAqIEF1dGhvcjogSmllIFFpdSA8amllLnFpdUBtZWRpYXRlay5jb20+Ci0gKgotICogVGhp
cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
ciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICovCi0jaWZuZGVmIF9NVEtf
Q0VDX0gKLSNkZWZpbmUgX01US19DRUNfSAotCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLQot
c3RydWN0IGRldmljZTsKLQotdm9pZCBtdGtfY2VjX3NldF9ocGRfZXZlbnQoc3RydWN0IGRldmlj
ZSAqZGV2LAotCQkJICAgdm9pZCAoKmhvdHBsdWdfZXZlbnQpKGJvb2wgaHBkLCBzdHJ1Y3QgZGV2
aWNlICpkZXYpLAotCQkJICAgc3RydWN0IGRldmljZSAqaGRtaV9kZXYpOwotYm9vbCBtdGtfY2Vj
X2hwZF9oaWdoKHN0cnVjdCBkZXZpY2UgKmRldik7Ci0KLSNlbmRpZiAvKiBfTVRLX0NFQ19IICov
CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZl
cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCmluZGV4IDcxMjI3ZGUuLmMwNGE3MWEgMTAw
NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCisrKyBiL2RyaXZl
cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVk
ZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51
eC9oZG1pLmg+CisjaW5jbHVkZSA8bGludXgvaGRtaS1ub3RpZmllci5oPgogI2luY2x1ZGUgPGxp
bnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVs
Lmg+CkBAIC0zMiw3ICszMyw2IEBACiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+
CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAjaW5jbHVkZSA8c291bmQvaGRtaS1jb2RlYy5o
PgotI2luY2x1ZGUgIm10a19jZWMuaCIKICNpbmNsdWRlICJtdGtfaGRtaS5oIgogI2luY2x1ZGUg
Im10a19oZG1pX3JlZ3MuaCIKIApAQCAtMTUzLDYgKzE1Myw4IEBAIHN0cnVjdCBtdGtfaGRtaSB7
CiAJc3RydWN0IGRldmljZSAqZGV2OwogCXN0cnVjdCBwaHkgKnBoeTsKIAlzdHJ1Y3QgZGV2aWNl
ICpjZWNfZGV2OworCXN0cnVjdCBoZG1pX25vdGlmaWVyICpub3RpZmllcjsKKwlzdHJ1Y3Qgbm90
aWZpZXJfYmxvY2sgbmI7CiAJc3RydWN0IGkyY19hZGFwdGVyICpkZGNfYWRwdDsKIAlzdHJ1Y3Qg
Y2xrICpjbGtbTVRLX0hETUlfQ0xLX0NPVU5UXTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBt
b2RlOwpAQCAtMTE5NiwxOSArMTE5OCwxMCBAQCBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0
YXR1cyBoZG1pX2Nvbm5fZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uLAogewogCXN0
cnVjdCBtdGtfaGRtaSAqaGRtaSA9IGhkbWlfY3R4X2Zyb21fY29ubihjb25uKTsKIAotCXJldHVy
biBtdGtfY2VjX2hwZF9oaWdoKGhkbWktPmNlY19kZXYpID8KKwlyZXR1cm4gaGRtaS0+bm90aWZp
ZXItPmNvbm5lY3RlZCA/CiAJICAgICAgIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkIDogY29u
bmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7CiB9CiAKLXN0YXRpYyB2b2lkIGhkbWlfY29ubl9k
ZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uKQotewotCXN0cnVjdCBtdGtfaGRtaSAq
aGRtaSA9IGhkbWlfY3R4X2Zyb21fY29ubihjb25uKTsKLQotCW10a19jZWNfc2V0X2hwZF9ldmVu
dChoZG1pLT5jZWNfZGV2LCBOVUxMLCBOVUxMKTsKLQotCWRybV9jb25uZWN0b3JfY2xlYW51cChj
b25uKTsKLX0KLQogc3RhdGljIGludCBtdGtfaGRtaV9jb25uX2dldF9tb2RlcyhzdHJ1Y3QgZHJt
X2Nvbm5lY3RvciAqY29ubikKIHsKIAlzdHJ1Y3QgbXRrX2hkbWkgKmhkbWkgPSBoZG1pX2N0eF9m
cm9tX2Nvbm4oY29ubik7CkBAIC0xMjI1LDkgKzEyMTgsMTEgQEAgc3RhdGljIGludCBtdGtfaGRt
aV9jb25uX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubikKIAloZG1pLT5kdmlf
bW9kZSA9ICFkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7CiAKIAlkcm1fbW9kZV9jb25u
ZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubiwgZWRpZCk7CisJaGRtaV9ldmVudF9uZXdf
ZWRpZChoZG1pLT5ub3RpZmllciwgZWRpZCwgc2l6ZW9mKCplZGlkKSk7CiAKIAlyZXQgPSBkcm1f
YWRkX2VkaWRfbW9kZXMoY29ubiwgZWRpZCk7CiAJZHJtX2VkaWRfdG9fZWxkKGNvbm4sIGVkaWQp
OworCWhkbWlfZXZlbnRfbmV3X2VsZChoZG1pLT5ub3RpZmllciwgY29ubi0+ZWxkKTsKIAlrZnJl
ZShlZGlkKTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTI2OSw3ICsxMjY0LDcgQEAgc3RhdGljIGNv
bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIG10a19oZG1pX2Nvbm5lY3Rvcl9mdW5jcyA9
IHsKIAkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAogCS5kZXRlY3Qg
PSBoZG1pX2Nvbm5fZGV0ZWN0LAogCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5n
bGVfY29ubmVjdG9yX21vZGVzLAotCS5kZXN0cm95ID0gaGRtaV9jb25uX2Rlc3Ryb3ksCisJLmRl
c3Ryb3kgPSBkcm1fY29ubmVjdG9yX2NsZWFudXAsCiAJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxw
ZXJfY29ubmVjdG9yX3Jlc2V0LAogCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21p
Y19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKIAkuYXRvbWljX2Rlc3Ryb3lfc3Rh
dGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKQEAgLTEyODIs
MTIgKzEyNzcsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9m
dW5jcwogCS5iZXN0X2VuY29kZXIgPSBtdGtfaGRtaV9jb25uX2Jlc3RfZW5jLAogfTsKIAotc3Rh
dGljIHZvaWQgbXRrX2hkbWlfaHBkX2V2ZW50KGJvb2wgaHBkLCBzdHJ1Y3QgZGV2aWNlICpkZXYp
CitzdGF0aWMgaW50IG10a19oZG1pX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1
bnNpZ25lZCBsb25nIGV2ZW50LAorCQkJICAgIHZvaWQgKmRhdGEpCiB7Ci0Jc3RydWN0IG10a19o
ZG1pICpoZG1pID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IG10a19oZG1pICpoZG1p
ID0gY29udGFpbmVyX29mKG5iLCBzdHJ1Y3QgbXRrX2hkbWksIG5iKTsKIAotCWlmIChoZG1pICYm
IGhkbWktPmJyaWRnZS5lbmNvZGVyICYmIGhkbWktPmJyaWRnZS5lbmNvZGVyLT5kZXYpCisJaWYg
KChldmVudCA9PSBIRE1JX0NPTk5FQ1RFRCB8fCBldmVudCA9PSBIRE1JX0RJU0NPTk5FQ1RFRCkg
JiYKKwkgICAgKGhkbWktPmJyaWRnZS5lbmNvZGVyICYmIGhkbWktPmJyaWRnZS5lbmNvZGVyLT5k
ZXYpKQogCQlkcm1faGVscGVyX2hwZF9pcnFfZXZlbnQoaGRtaS0+YnJpZGdlLmVuY29kZXItPmRl
dik7CisKKwlyZXR1cm4gTk9USUZZX09LOwogfQogCiAvKgpAQCAtMTMzMCw4ICsxMzI5LDYgQEAg
c3RhdGljIGludCBtdGtfaGRtaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk
Z2UpCiAJCX0KIAl9CiAKLQltdGtfY2VjX3NldF9ocGRfZXZlbnQoaGRtaS0+Y2VjX2RldiwgbXRr
X2hkbWlfaHBkX2V2ZW50LCBoZG1pLT5kZXYpOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE3MDcs
NiArMTcwNCwxNSBAQCBzdGF0aWMgaW50IG10a19kcm1faGRtaV9wcm9iZShzdHJ1Y3QgcGxhdGZv
cm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gcmV0OwogCX0KIAorCWhkbWktPm5vdGlmaWVyID0g
aGRtaV9ub3RpZmllcl9nZXQoaGRtaS0+Y2VjX2Rldik7CisJaWYgKCFoZG1pLT5ub3RpZmllcikK
KwkJcmV0dXJuIC1FTk9NRU07CisKKwloZG1pLT5uYi5ub3RpZmllcl9jYWxsID0gbXRrX2hkbWlf
bm90aWZ5OworCXJldCA9IGhkbWlfbm90aWZpZXJfcmVnaXN0ZXIoaGRtaS0+bm90aWZpZXIsICZo
ZG1pLT5uYik7CisJaWYgKHJldCkKKwkJZ290byBlcnJfbm90aWZpZXJfcHV0OworCiAJbXRrX2hk
bWlfcmVnaXN0ZXJfYXVkaW9fZHJpdmVyKGRldik7CiAKIAloZG1pLT5icmlkZ2UuZnVuY3MgPSAm
bXRrX2hkbWlfYnJpZGdlX2Z1bmNzOwpAQCAtMTcxNCw3ICsxNzIwLDcgQEAgc3RhdGljIGludCBt
dGtfZHJtX2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlyZXQgPSBk
cm1fYnJpZGdlX2FkZCgmaGRtaS0+YnJpZGdlKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2
LCAiZmFpbGVkIHRvIGFkZCBicmlkZ2UsIHJldCA9ICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0
OworCQlnb3RvIGVycl9ub3RpZmllcl91bnJlZ2lzdGVyOwogCX0KIAogCXJldCA9IG10a19oZG1p
X2Nsa19lbmFibGVfYXVkaW8oaGRtaSk7CkBAIC0xNzI4LDYgKzE3MzQsMTAgQEAgc3RhdGljIGlu
dCBtdGtfZHJtX2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogZXJy
X2JyaWRnZV9yZW1vdmU6CiAJZHJtX2JyaWRnZV9yZW1vdmUoJmhkbWktPmJyaWRnZSk7CitlcnJf
bm90aWZpZXJfdW5yZWdpc3RlcjoKKwloZG1pX25vdGlmaWVyX3VucmVnaXN0ZXIoaGRtaS0+bm90
aWZpZXIsICZoZG1pLT5uYik7CitlcnJfbm90aWZpZXJfcHV0OgorCWhkbWlfbm90aWZpZXJfcHV0
KGhkbWktPm5vdGlmaWVyKTsKIAlyZXR1cm4gcmV0OwogfQogCi0tIAoyLjEwLjIKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n
IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk
ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=