From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH v6 4/8] drm/bridge: adv7533: Initial support for ADV7533 Date: Fri, 17 Jun 2016 13:23:31 +0530 Message-ID: <1466150015-882-5-git-send-email-architt@codeaurora.org> References: <1465381673-32471-1-git-send-email-architt@codeaurora.org> <1466150015-882-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1466150015-882-1-git-send-email-architt@codeaurora.org> 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, treding@nvidia.com, laurent.pinchart@ideasonboard.com, xinliang.liu@linaro.org Cc: linux-arm-msm@vger.kernel.org, amit.kucheria@linaro.org, srinivas.kandagatla@linaro.org List-Id: linux-arm-msm@vger.kernel.org QURWNzUzMyBpcyBhIERTSSB0byBIRE1JIGVuY29kZXIgY2hpcC4gSXQgaXMgYSBkZXJpdmF0aXZl IG9mIEFEVjc1MTEsCndpdGggYWRkaXRpb25hbCBibG9ja3MgdG8gdHJhbnNsYXRlIGlucHV0IERT SSBkYXRhIHRvIHBhcmFsbGVsIFJHQgpkYXRhLiBCZXNpZGVzIHRoZSBBRFY3NTExIEkyQyByZWdp c3RlciBtYXAsIGl0IGhhcyBhZGRpdGlvbmFsIHJlZ2lzdGVycwp0aGF0IHJlcXVpcmUgdG8gYmUg Y29uZmlndXJlZCB0byBhY3RpdmF0ZSB0aGUgRFNJIFJ4IGJsb2NrLgoKQ3JlYXRlIGEgbmV3IGNv bmZpZyB0aGF0IGVuYWJsZXMgQURWNzUzMyBzdXBwb3J0LiBVc2UgRFQgY29tcGF0aWJsZQpzdHJp bmdzIHRvIHBvcHVsYXRlIHRoZSBBRFY3NTMzIHR5cGUgZW51bS4gQWRkIG1pbmltYWwgcmVnaXN0 ZXIKY29uZmlndXJhdGlvbnMgYmVsb25naW5nIHRvIHRoZSBEU0kvQ0VDIHJlZ2lzdGVyIG1hcC4g S2VlcCB0aGUgQURWNzUzMwpjb2RlIGluIGEgc2VwYXJhdGUgZmlsZS4KCk9yaWdpbmFsbHkgd29y a2VkIG9uIGJ5IExhcnMtUGV0ZXIgQ2xhdXNlbiA8bGFyc0BtZXRhZm9vLmRlPgoKU2lnbmVkLW9m Zi1ieTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvS2NvbmZpZyAgICAgICB8ICAgNyArKwogZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9hZHY3NTExL01ha2VmaWxlICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTEuaCAgICAgfCAgNzEgKysrKysrKysrKysrKysrKysr KwogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMgfCAxMDAgKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEv YWR2NzUzMy5jICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMg Y2hhbmdlZCwgMjMwIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTMzLmMKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvYWR2NzUxMS9LY29uZmlnCmluZGV4IDIyMmM2Y2MuLmViODQ0MTkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9LY29uZmlnCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9LY29uZmlnCkBAIC01LDMgKzUsMTAgQEAgY29uZmln IERSTV9JMkNfQURWNzUxMQogCXNlbGVjdCBSRUdNQVBfSTJDCiAJaGVscAogCSAgU3VwcG9ydCBm b3IgdGhlIEFuYWxvZyBEZXZpY2UgQURWNzUxMShXKSBhbmQgQURWNzUxMyBIRE1JIGVuY29kZXJz LgorCitjb25maWcgRFJNX0kyQ19BRFY3NTMzCisJYm9vbCAiQURWNzUzMyBlbmNvZGVyIgorCWRl cGVuZHMgb24gRFJNX0kyQ19BRFY3NTExCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBm b3IgdGhlIEFuYWxvZyBEZXZpY2VzIEFEVjc1MzMgRFNJIHRvIEhETUkgZW5jb2Rlci4KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9NYWtlZmlsZSBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvYWR2NzUxMS9NYWtlZmlsZQppbmRleCA2OTJmODNhLi45MDE5MzI3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL01ha2VmaWxlCkBAIC0xLDIgKzEsMyBAQAog YWR2NzUxMS15IDo9IGFkdjc1MTFfZHJ2Lm8KK2Fkdjc1MTEtJChDT05GSUdfRFJNX0kyQ19BRFY3 NTMzKSArPSBhZHY3NTMzLm8KIG9iai0kKENPTkZJR19EUk1fSTJDX0FEVjc1MTEpICs9IGFkdjc1 MTEubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTEu aCBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExLmgKaW5kZXggMzg1MTVi My4uNWRlYTc2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fk djc1MTEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMS5oCkBA IC0xMCw2ICsxMCwxMCBAQAogI2RlZmluZSBfX0RSTV9JMkNfQURWNzUxMV9IX18KIAogI2luY2x1 ZGUgPGxpbnV4L2hkbWkuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51 eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KIAogI2RlZmlu ZSBBRFY3NTExX1JFR19DSElQX1JFVklTSU9OCQkweDAwCiAjZGVmaW5lIEFEVjc1MTFfUkVHX04w CQkJCTB4MDEKQEAgLTI4Niw0ICsyOTAsNzEgQEAgc3RydWN0IGFkdjc1MTFfdmlkZW9fY29uZmln IHsKIAlzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lIGF2aV9pbmZvZnJhbWU7CiB9OwogCitlbnVt IGFkdjc1MTFfdHlwZSB7CisJQURWNzUxMSwKKwlBRFY3NTMzLAorfTsKKworc3RydWN0IGFkdjc1 MTEgeworCXN0cnVjdCBpMmNfY2xpZW50ICppMmNfbWFpbjsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAq aTJjX2VkaWQ7CisJc3RydWN0IGkyY19jbGllbnQgKmkyY19jZWM7CisKKwlzdHJ1Y3QgcmVnbWFw ICpyZWdtYXA7CisJc3RydWN0IHJlZ21hcCAqcmVnbWFwX2NlYzsKKwllbnVtIGRybV9jb25uZWN0 b3Jfc3RhdHVzIHN0YXR1czsKKwlib29sIHBvd2VyZWQ7CisKKwl1bnNpZ25lZCBpbnQgZl90bWRz OworCisJdW5zaWduZWQgaW50IGN1cnJlbnRfZWRpZF9zZWdtZW50OworCXVpbnQ4X3QgZWRpZF9i dWZbMjU2XTsKKwlib29sIGVkaWRfcmVhZDsKKworCXdhaXRfcXVldWVfaGVhZF90IHdxOworCXN0 cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7 CisKKwlib29sIGVtYmVkZGVkX3N5bmM7CisJZW51bSBhZHY3NTExX3N5bmNfcG9sYXJpdHkgdnN5 bmNfcG9sYXJpdHk7CisJZW51bSBhZHY3NTExX3N5bmNfcG9sYXJpdHkgaHN5bmNfcG9sYXJpdHk7 CisJYm9vbCByZ2I7CisKKwlzdHJ1Y3QgZWRpZCAqZWRpZDsKKworCXN0cnVjdCBncGlvX2Rlc2Mg KmdwaW9fcGQ7CisKKwllbnVtIGFkdjc1MTFfdHlwZSB0eXBlOworfTsKKworI2lmZGVmIENPTkZJ R19EUk1fSTJDX0FEVjc1MzMKK3ZvaWQgYWR2NzUzM19kc2lfcG93ZXJfb24oc3RydWN0IGFkdjc1 MTEgKmFkdik7Cit2b2lkIGFkdjc1MzNfZHNpX3Bvd2VyX29mZihzdHJ1Y3QgYWR2NzUxMSAqYWR2 KTsKK2ludCBhZHY3NTMzX3BhdGNoX3JlZ2lzdGVycyhzdHJ1Y3QgYWR2NzUxMSAqYWR2KTsKK3Zv aWQgYWR2NzUzM191bmluaXRfY2VjKHN0cnVjdCBhZHY3NTExICphZHYpOworaW50IGFkdjc1MzNf aW5pdF9jZWMoc3RydWN0IGFkdjc1MTEgKmFkdik7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lk IGFkdjc1MzNfZHNpX3Bvd2VyX29uKHN0cnVjdCBhZHY3NTExICphZHYpCit7Cit9CisKK3N0YXRp YyBpbmxpbmUgdm9pZCBhZHY3NTMzX2RzaV9wb3dlcl9vZmYoc3RydWN0IGFkdjc1MTEgKmFkdikK K3sKK30KKworc3RhdGljIGlubGluZSBpbnQgYWR2NzUzM19wYXRjaF9yZWdpc3RlcnMoc3RydWN0 IGFkdjc1MTEgKmFkdikKK3sKKwlyZXR1cm4gLUVOT0RFVjsKK30KKworc3RhdGljIGlubGluZSB2 b2lkIGFkdjc1MzNfdW5pbml0X2NlYyhzdHJ1Y3QgYWR2NzUxMSAqYWR2KQoreworfQorCitzdGF0 aWMgaW5saW5lIGludCBhZHY3NTMzX2luaXRfY2VjKHN0cnVjdCBhZHY3NTExICphZHYpCit7CisJ cmV0dXJuIC1FTk9ERVY7Cit9CisjZW5kaWYKKwogI2VuZGlmIC8qIF9fRFJNX0kyQ19BRFY3NTEx X0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1 MTFfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwpp bmRleCAxZmZmMGFiLi5lMzM3MDJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2Fkdjc1MTEvYWR2NzUxMV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1 MTEvYWR2NzUxMV9kcnYuYwpAQCAtOCw0OCArOCwxNyBAQAogCiAjaW5jbHVkZSA8bGludXgvZGV2 aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgotI2luY2x1ZGUgPGxpbnV4 L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3JlZ21h cC5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIu aD4KIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4K ICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxkcm0vZHJtX2Ny dGNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAKICNpbmNsdWRlICJhZHY3 NTExLmgiCiAKLXN0cnVjdCBhZHY3NTExIHsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjX21haW47 Ci0Jc3RydWN0IGkyY19jbGllbnQgKmkyY19lZGlkOwotCi0Jc3RydWN0IHJlZ21hcCAqcmVnbWFw OwotCXN0cnVjdCByZWdtYXAgKnBhY2tldF9tZW1vcnlfcmVnbWFwOwotCWVudW0gZHJtX2Nvbm5l Y3Rvcl9zdGF0dXMgc3RhdHVzOwotCWJvb2wgcG93ZXJlZDsKLQotCXVuc2lnbmVkIGludCBmX3Rt ZHM7Ci0KLQl1bnNpZ25lZCBpbnQgY3VycmVudF9lZGlkX3NlZ21lbnQ7Ci0JdWludDhfdCBlZGlk X2J1ZlsyNTZdOwotCWJvb2wgZWRpZF9yZWFkOwotCi0Jd2FpdF9xdWV1ZV9oZWFkX3Qgd3E7Ci0J c3RydWN0IGRybV9icmlkZ2UgYnJpZGdlOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3Rv cjsKLQotCWJvb2wgZW1iZWRkZWRfc3luYzsKLQllbnVtIGFkdjc1MTFfc3luY19wb2xhcml0eSB2 c3luY19wb2xhcml0eTsKLQllbnVtIGFkdjc1MTFfc3luY19wb2xhcml0eSBoc3luY19wb2xhcml0 eTsKLQlib29sIHJnYjsKLQotCXN0cnVjdCBlZGlkICplZGlkOwotCi0Jc3RydWN0IGdwaW9fZGVz YyAqZ3Bpb19wZDsKLX07Ci0KIC8qIEFESSByZWNvbW1lbmRlZCB2YWx1ZXMgZm9yIHByb3BlciBv cGVyYXRpb24uICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ19zZXF1ZW5jZSBhZHY3NTExX2Zp eGVkX3JlZ2lzdGVyc1tdID0gewogCXsgMHg5OCwgMHgwMyB9LApAQCAtMzkxLDYgKzM2MCw5IEBA IHN0YXRpYyB2b2lkIGFkdjc1MTFfcG93ZXJfb24oc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEpCiAJ ICovCiAJcmVnY2FjaGVfc3luYyhhZHY3NTExLT5yZWdtYXApOwogCisJaWYgKGFkdjc1MTEtPnR5 cGUgPT0gQURWNzUzMykKKwkJYWR2NzUzM19kc2lfcG93ZXJfb24oYWR2NzUxMSk7CisKIAlhZHY3 NTExLT5wb3dlcmVkID0gdHJ1ZTsKIH0KIApAQCAtNDAyLDYgKzM3NCw5IEBAIHN0YXRpYyB2b2lk IGFkdjc1MTFfcG93ZXJfb2ZmKHN0cnVjdCBhZHY3NTExICphZHY3NTExKQogCQkJICAgQURWNzUx MV9QT1dFUl9QT1dFUl9ET1dOKTsKIAlyZWdjYWNoZV9tYXJrX2RpcnR5KGFkdjc1MTEtPnJlZ21h cCk7CiAKKwlpZiAoYWR2NzUxMS0+dHlwZSA9PSBBRFY3NTMzKQorCQlhZHY3NTMzX2RzaV9wb3dl cl9vZmYoYWR2NzUxMSk7CisKIAlhZHY3NTExLT5wb3dlcmVkID0gZmFsc2U7CiB9CiAKQEAgLTg2 Miw4ICs4MzcsNiBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcGFyc2VfZHQoc3RydWN0IGRldmljZV9u b2RlICpucCwKIAljb25zdCBjaGFyICpzdHI7CiAJaW50IHJldDsKIAotCW1lbXNldChjb25maWcs IDAsIHNpemVvZigqY29uZmlnKSk7Ci0KIAlvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImFkaSxp bnB1dC1kZXB0aCIsICZjb25maWctPmlucHV0X2NvbG9yX2RlcHRoKTsKIAlpZiAoY29uZmlnLT5p bnB1dF9jb2xvcl9kZXB0aCAhPSA4ICYmIGNvbmZpZy0+aW5wdXRfY29sb3JfZGVwdGggIT0gMTAg JiYKIAkgICAgY29uZmlnLT5pbnB1dF9jb2xvcl9kZXB0aCAhPSAxMikKQEAgLTk2Myw5ICs5MzYs MTggQEAgc3RhdGljIGludCBhZHY3NTExX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMsIGNv bnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIAlhZHY3NTExLT5wb3dlcmVkID0gZmFsc2U7 CiAJYWR2NzUxMS0+c3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7CiAKLQly ZXQgPSBhZHY3NTExX3BhcnNlX2R0KGRldi0+b2Zfbm9kZSwgJmxpbmtfY29uZmlnKTsKLQlpZiAo cmV0KQotCQlyZXR1cm4gcmV0OworCWlmIChkZXYtPm9mX25vZGUpCisJCWFkdjc1MTEtPnR5cGUg PSAoZW51bSBhZHY3NTExX3R5cGUpb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7CisJZWxz ZQorCQlhZHY3NTExLT50eXBlID0gaWQtPmRyaXZlcl9kYXRhOworCisJbWVtc2V0KCZsaW5rX2Nv bmZpZywgMCwgc2l6ZW9mKGxpbmtfY29uZmlnKSk7CisKKwlpZiAoYWR2NzUxMS0+dHlwZSA9PSBB RFY3NTExKSB7CisJCXJldCA9IGFkdjc1MTFfcGFyc2VfZHQoZGV2LT5vZl9ub2RlLCAmbGlua19j b25maWcpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CiAKIAkvKgogCSAqIFRoZSBw b3dlciBkb3duIEdQSU8gaXMgb3B0aW9uYWwuIElmIHByZXNlbnQsIHRvZ2dsZSBpdCBmcm9tIGFj dGl2ZSB0bwpAQCAtOTg5LDggKzk3MSwxMiBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcHJvYmUoc3Ry dWN0IGkyY19jbGllbnQgKmkyYywgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKQogCQly ZXR1cm4gcmV0OwogCWRldl9kYmcoZGV2LCAiUmV2LiAlZFxuIiwgdmFsKTsKIAotCXJldCA9IHJl Z21hcF9yZWdpc3Rlcl9wYXRjaChhZHY3NTExLT5yZWdtYXAsIGFkdjc1MTFfZml4ZWRfcmVnaXN0 ZXJzLAotCQkJCSAgICBBUlJBWV9TSVpFKGFkdjc1MTFfZml4ZWRfcmVnaXN0ZXJzKSk7CisJaWYg KGFkdjc1MTEtPnR5cGUgPT0gQURWNzUxMSkKKwkJcmV0ID0gcmVnbWFwX3JlZ2lzdGVyX3BhdGNo KGFkdjc1MTEtPnJlZ21hcCwKKwkJCQkJICAgIGFkdjc1MTFfZml4ZWRfcmVnaXN0ZXJzLAorCQkJ CQkgICAgQVJSQVlfU0laRShhZHY3NTExX2ZpeGVkX3JlZ2lzdGVycykpOworCWVsc2UKKwkJcmV0 ID0gYWR2NzUzM19wYXRjaF9yZWdpc3RlcnMoYWR2NzUxMSk7CiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKIApAQCAtMTAwNSw2ICs5OTEsMTIgQEAgc3RhdGljIGludCBhZHY3NTExX3Byb2JlKHN0 cnVjdCBpMmNfY2xpZW50ICppMmMsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIAlp ZiAoIWFkdjc1MTEtPmkyY19lZGlkKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWlmIChhZHY3NTEx LT50eXBlID09IEFEVjc1MzMpIHsKKwkJcmV0ID0gYWR2NzUzM19pbml0X2NlYyhhZHY3NTExKTsK KwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX2kyY191bnJlZ2lzdGVyX2VkaWQ7CisJfQorCiAJaWYg KGkyYy0+aXJxKSB7CiAJCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmFkdjc1MTEtPndxKTsKIApAQCAt MTAxMyw3ICsxMDA1LDcgQEAgc3RhdGljIGludCBhZHY3NTExX3Byb2JlKHN0cnVjdCBpMmNfY2xp ZW50ICppMmMsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIAkJCQkJCUlSUUZfT05F U0hPVCwgZGV2X25hbWUoZGV2KSwKIAkJCQkJCWFkdjc1MTEpOwogCQlpZiAocmV0KQotCQkJZ290 byBlcnJfaTJjX3VucmVnaXN0ZXJfZGV2aWNlOworCQkJZ290byBlcnJfdW5yZWdpc3Rlcl9jZWM7 CiAJfQogCiAJLyogQ0VDIGlzIHVudXNlZCBmb3Igbm93ICovCkBAIC0xMDI0LDcgKzEwMTYsOCBA QCBzdGF0aWMgaW50IGFkdjc1MTFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmkyYywgY29uc3Qg c3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKQogCiAJaTJjX3NldF9jbGllbnRkYXRhKGkyYywgYWR2 NzUxMSk7CiAKLQlhZHY3NTExX3NldF9saW5rX2NvbmZpZyhhZHY3NTExLCAmbGlua19jb25maWcp OworCWlmIChhZHY3NTExLT50eXBlID09IEFEVjc1MTEpCisJCWFkdjc1MTFfc2V0X2xpbmtfY29u ZmlnKGFkdjc1MTEsICZsaW5rX2NvbmZpZyk7CiAKIAlhZHY3NTExLT5icmlkZ2UuZnVuY3MgPSAm YWR2NzUxMV9icmlkZ2VfZnVuY3M7CiAJYWR2NzUxMS0+YnJpZGdlLm9mX25vZGUgPSBkZXYtPm9m X25vZGU7CkBAIC0xMDMyLDEyICsxMDI1LDE0IEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9wcm9iZShz dHJ1Y3QgaTJjX2NsaWVudCAqaTJjLCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCiAJ cmV0ID0gZHJtX2JyaWRnZV9hZGQoJmFkdjc1MTEtPmJyaWRnZSk7CiAJaWYgKHJldCkgewogCQlk ZXZfZXJyKGRldiwgImZhaWxlZCB0byBhZGQgYWR2NzUxMSBicmlkZ2VcbiIpOwotCQlnb3RvIGVy cl9pMmNfdW5yZWdpc3Rlcl9kZXZpY2U7CisJCWdvdG8gZXJyX3VucmVnaXN0ZXJfY2VjOwogCX0K IAogCXJldHVybiAwOwogCi1lcnJfaTJjX3VucmVnaXN0ZXJfZGV2aWNlOgorZXJyX3VucmVnaXN0 ZXJfY2VjOgorCWFkdjc1MzNfdW5pbml0X2NlYyhhZHY3NTExKTsKK2Vycl9pMmNfdW5yZWdpc3Rl cl9lZGlkOgogCWkyY191bnJlZ2lzdGVyX2RldmljZShhZHY3NTExLT5pMmNfZWRpZCk7CiAKIAly ZXR1cm4gcmV0OwpAQCAtMTA0OSw2ICsxMDQ0LDcgQEAgc3RhdGljIGludCBhZHY3NTExX3JlbW92 ZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjKQogCiAJZHJtX2JyaWRnZV9yZW1vdmUoJmFkdjc1MTEt PmJyaWRnZSk7CiAKKwlhZHY3NTMzX3VuaW5pdF9jZWMoYWR2NzUxMSk7CiAJaTJjX3VucmVnaXN0 ZXJfZGV2aWNlKGFkdjc1MTEtPmkyY19lZGlkKTsKIAogCWtmcmVlKGFkdjc1MTEtPmVkaWQpOwpA QCAtMTA1NywxNyArMTA1MywyMyBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcmVtb3ZlKHN0cnVjdCBp MmNfY2xpZW50ICppMmMpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCBh ZHY3NTExX2kyY19pZHNbXSA9IHsKLQl7ICJhZHY3NTExIiwgMCB9LAotCXsgImFkdjc1MTF3Iiwg MCB9LAotCXsgImFkdjc1MTMiLCAwIH0sCisJeyAiYWR2NzUxMSIsIEFEVjc1MTEgfSwKKwl7ICJh ZHY3NTExdyIsIEFEVjc1MTEgfSwKKwl7ICJhZHY3NTEzIiwgQURWNzUxMSB9LAorI2lmZGVmIENP TkZJR19EUk1fSTJDX0FEVjc1MzMKKwl7ICJhZHY3NTMzIiwgQURWNzUzMyB9LAorI2VuZGlmCiAJ eyB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIGFkdjc1MTFfaTJjX2lkcyk7CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFkdjc1MTFfb2ZfaWRzW10gPSB7Ci0JeyAu Y29tcGF0aWJsZSA9ICJhZGksYWR2NzUxMSIsIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJhZGksYWR2 NzUxMXciLCB9LAotCXsgLmNvbXBhdGlibGUgPSAiYWRpLGFkdjc1MTMiLCB9LAorCXsgLmNvbXBh dGlibGUgPSAiYWRpLGFkdjc1MTEiLCAuZGF0YSA9ICh2b2lkICopQURWNzUxMSB9LAorCXsgLmNv bXBhdGlibGUgPSAiYWRpLGFkdjc1MTF3IiwgLmRhdGEgPSAodm9pZCAqKUFEVjc1MTEgfSwKKwl7 IC5jb21wYXRpYmxlID0gImFkaSxhZHY3NTEzIiwgLmRhdGEgPSAodm9pZCAqKUFEVjc1MTEgfSwK KyNpZmRlZiBDT05GSUdfRFJNX0kyQ19BRFY3NTMzCisJeyAuY29tcGF0aWJsZSA9ICJhZGksYWR2 NzUzMyIsIC5kYXRhID0gKHZvaWQgKilBRFY3NTMzIH0sCisjZW5kaWYKIAl7IH0KIH07CiBNT0RV TEVfREVWSUNFX1RBQkxFKG9mLCBhZHY3NTExX29mX2lkcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUzMy5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9hZHY3NTExL2Fkdjc1MzMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j YjRjYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTEx L2Fkdjc1MzMuYwpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiwg VGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgdmVyc2lvbiAyIGFuZAorICogb25seSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq LworCisjaW5jbHVkZSAiYWR2NzUxMS5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ19zZXF1 ZW5jZSBhZHY3NTMzX2ZpeGVkX3JlZ2lzdGVyc1tdID0geworCXsgMHgxNiwgMHgyMCB9LAorCXsg MHg5YSwgMHhlMCB9LAorCXsgMHhiYSwgMHg3MCB9LAorCXsgMHhkZSwgMHg4MiB9LAorCXsgMHhl NCwgMHg0MCB9LAorCXsgMHhlNSwgMHg4MCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBy ZWdfc2VxdWVuY2UgYWR2NzUzM19jZWNfZml4ZWRfcmVnaXN0ZXJzW10gPSB7CisJeyAweDE1LCAw eGQwIH0sCisJeyAweDE3LCAweGQwIH0sCisJeyAweDI0LCAweDIwIH0sCisJeyAweDU3LCAweDEx IH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgYWR2NzUzM19jZWNf cmVnbWFwX2NvbmZpZyA9IHsKKwkucmVnX2JpdHMgPSA4LAorCS52YWxfYml0cyA9IDgsCisKKwku bWF4X3JlZ2lzdGVyID0gMHhmZiwKKwkuY2FjaGVfdHlwZSA9IFJFR0NBQ0hFX1JCVFJFRSwKK307 CisKK3ZvaWQgYWR2NzUzM19kc2lfcG93ZXJfb24oc3RydWN0IGFkdjc1MTEgKmFkdikKK3sKKwkv KiBzZXQgbnVtYmVyIG9mIGRzaSBsYW5lcyAoaGFyZGNvZGVkIHRvIDQgZm9yIG5vdykgKi8KKwly ZWdtYXBfd3JpdGUoYWR2LT5yZWdtYXBfY2VjLCAweDFjLCA0IDw8IDQpOworCS8qIGRpc2FibGUg aW50ZXJuYWwgdGltaW5nIGdlbmVyYXRvciAqLworCXJlZ21hcF93cml0ZShhZHYtPnJlZ21hcF9j ZWMsIDB4MjcsIDB4MGIpOworCS8qIGVuYWJsZSBoZG1pICovCisJcmVnbWFwX3dyaXRlKGFkdi0+ cmVnbWFwX2NlYywgMHgwMywgMHg4OSk7CisJLyogZGlzYWJsZSB0ZXN0IG1vZGUgKi8KKwlyZWdt YXBfd3JpdGUoYWR2LT5yZWdtYXBfY2VjLCAweDU1LCAweDAwKTsKKworCXJlZ21hcF9yZWdpc3Rl cl9wYXRjaChhZHYtPnJlZ21hcF9jZWMsIGFkdjc1MzNfY2VjX2ZpeGVkX3JlZ2lzdGVycywKKwkJ CSAgICAgIEFSUkFZX1NJWkUoYWR2NzUzM19jZWNfZml4ZWRfcmVnaXN0ZXJzKSk7Cit9CisKK3Zv aWQgYWR2NzUzM19kc2lfcG93ZXJfb2ZmKHN0cnVjdCBhZHY3NTExICphZHYpCit7CisJLyogZGlz YWJsZSBoZG1pICovCisJcmVnbWFwX3dyaXRlKGFkdi0+cmVnbWFwX2NlYywgMHgwMywgMHgwYik7 Cit9CisKK2ludCBhZHY3NTMzX3BhdGNoX3JlZ2lzdGVycyhzdHJ1Y3QgYWR2NzUxMSAqYWR2KQor eworCXJldHVybiByZWdtYXBfcmVnaXN0ZXJfcGF0Y2goYWR2LT5yZWdtYXAsCisJCQkJICAgICBh ZHY3NTMzX2ZpeGVkX3JlZ2lzdGVycywKKwkJCQkgICAgIEFSUkFZX1NJWkUoYWR2NzUzM19maXhl ZF9yZWdpc3RlcnMpKTsKK30KKwordm9pZCBhZHY3NTMzX3VuaW5pdF9jZWMoc3RydWN0IGFkdjc1 MTEgKmFkdikKK3sKKwlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UoYWR2LT5pMmNfY2VjKTsKK30KKwor c3RhdGljIGNvbnN0IGludCBjZWNfaTJjX2FkZHIgPSAweDc4OworCitpbnQgYWR2NzUzM19pbml0 X2NlYyhzdHJ1Y3QgYWR2NzUxMSAqYWR2KQoreworCWludCByZXQ7CisKKwlhZHYtPmkyY19jZWMg PSBpMmNfbmV3X2R1bW15KGFkdi0+aTJjX21haW4tPmFkYXB0ZXIsIGNlY19pMmNfYWRkciA+PiAx KTsKKwlpZiAoIWFkdi0+aTJjX2NlYykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlhZHYtPnJlZ21h cF9jZWMgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhhZHYtPmkyY19jZWMsCisJCQkJCSZhZHY3NTMz X2NlY19yZWdtYXBfY29uZmlnKTsKKwlpZiAoSVNfRVJSKGFkdi0+cmVnbWFwX2NlYykpIHsKKwkJ cmV0ID0gUFRSX0VSUihhZHYtPnJlZ21hcF9jZWMpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXQg PSByZWdtYXBfcmVnaXN0ZXJfcGF0Y2goYWR2LT5yZWdtYXBfY2VjLAorCQkJCSAgICBhZHY3NTMz X2NlY19maXhlZF9yZWdpc3RlcnMsCisJCQkJICAgIEFSUkFZX1NJWkUoYWR2NzUzM19jZWNfZml4 ZWRfcmVnaXN0ZXJzKSk7CisJaWYgKHJldCkKKwkJZ290byBlcnI7CisKKwlyZXR1cm4gMDsKK2Vy cjoKKwlhZHY3NTMzX3VuaW5pdF9jZWMoYWR2KTsKKwlyZXR1cm4gcmV0OworfQotLSAKVGhlIFF1 YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1 cm9yYSBGb3J1bSwKaG9zdGVkIGJ5IFRoZSBMaW51eCBGb3VuZGF0aW9uCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK