From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [RFC v2 3/5] drm/mediatek: add *driver_data for different hardware settings Date: Fri, 20 May 2016 23:05:34 +0800 Message-ID: <1463756736-46573-4-git-send-email-yt.shen@mediatek.com> References: <1463756736-46573-1-git-send-email-yt.shen@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1463756736-46573-1-git-send-email-yt.shen@mediatek.com> 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, Philipp Zabel Cc: Mark Rutland , devicetree@vger.kernel.org, Russell King , srv_heupstream@mediatek.com, Pawel Moll , Ian Campbell , emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Mao Huang , YT Shen , Rob Herring , linux-mediatek@lists.infradead.org, Kumar Gala , Matthias Brugger , yingjoe.chen@mediatek.com, Sascha Hauer , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org RnJvbTogWVQgU2hlbiA8eXQuc2hlbkBtZWRpYXRlay5jb20+CgpUaGVyZSBhcmUgc29tZSBoYXJk d2FyZSBzZXR0aW5ncyBjaGFuZ2VkLCBiZXR3ZWVuIE1UODE3MyAmIE1UMjcwMToKRElTUF9PVkwg YWRkcmVzcyBvZmZzZXQgY2hhbmdlZCwgY29sb3IgZm9ybWF0IGRlZmluaXRpb24gY2hhbmdlZC4K RElTUF9SRE1BIGZpZm8gc2l6ZSBjaGFuZ2VkLgpESVNQX0NPTE9SIG9mZnNldCBjaGFuZ2VkLgoK U2lnbmVkLW9mZi1ieTogWVQgU2hlbiA8eXQuc2hlbkBtZWRpYXRlay5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jICAgICB8ICAgNDkgKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5j ICAgIHwgICAzNiArKysrKysrKysrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZGRwX2NvbXAuYyB8ICAgNDAgKysrKysrKysrKysrKysrKysrLS0tLQogZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaCB8ICAgMTMgKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jCmluZGV4IDhmNjI2NzFmLi44ZDI4MTFkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jCkBAIC00MCw4ICs0MCw2IEBA CiAjZGVmaW5lCU9WTF9SRE1BX01FTV9HTUMJMHg0MDQwMjAyMAogCiAjZGVmaW5lIE9WTF9DT05f QllURV9TV0FQCUJJVCgyNCkKLSNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUkdCNTY1CSgwIDw8IDEy KQotI2RlZmluZSBPVkxfQ09OX0NMUkZNVF9SR0I4ODgJKDEgPDwgMTIpCiAjZGVmaW5lIE9WTF9D T05fQ0xSRk1UX1JHQkE4ODg4CSgyIDw8IDEyKQogI2RlZmluZSBPVkxfQ09OX0NMUkZNVF9BUkdC ODg4OAkoMyA8PCAxMikKICNkZWZpbmUJT1ZMX0NPTl9BRU4JCUJJVCg4KQpAQCAtMTM2LDE4ICsx MzQsMTggQEAgc3RhdGljIHZvaWQgbXRrX292bF9sYXllcl9vZmYoc3RydWN0IG10a19kZHBfY29t cCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCkKIAl3cml0ZWwoMHgwLCBjb21wLT5yZWdzICsgRElT UF9SRUdfT1ZMX1JETUFfQ1RSTChpZHgpKTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBvdmxf Zm10X2NvbnZlcnQodW5zaWduZWQgaW50IGZtdCkKK3N0YXRpYyB1bnNpZ25lZCBpbnQgb3ZsX2Zt dF9jb252ZXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBmbXQpCiB7 CiAJc3dpdGNoIChmbXQpIHsKIAlkZWZhdWx0OgogCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Ci0J CXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I1NjU7CisJCXJldHVybiBjb21wLT5kYXRhLT5vdmwu Zm10X3JnYjU2NTsKIAljYXNlIERSTV9GT1JNQVRfQkdSNTY1OgotCQlyZXR1cm4gT1ZMX0NPTl9D TFJGTVRfUkdCNTY1IHwgT1ZMX0NPTl9CWVRFX1NXQVA7CisJCXJldHVybiBjb21wLT5kYXRhLT5v dmwuZm10X3JnYjU2NSB8IE9WTF9DT05fQllURV9TV0FQOwogCWNhc2UgRFJNX0ZPUk1BVF9SR0I4 ODg6Ci0JCXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I4ODg7CisJCXJldHVybiBjb21wLT5kYXRh LT5vdmwuZm10X3JnYjg4ODsKIAljYXNlIERSTV9GT1JNQVRfQkdSODg4OgotCQlyZXR1cm4gT1ZM X0NPTl9DTFJGTVRfUkdCODg4IHwgT1ZMX0NPTl9CWVRFX1NXQVA7CisJCXJldHVybiBjb21wLT5k YXRhLT5vdmwuZm10X3JnYjg4OCB8IE9WTF9DT05fQllURV9TV0FQOwogCWNhc2UgRFJNX0ZPUk1B VF9SR0JYODg4ODoKIAljYXNlIERSTV9GT1JNQVRfUkdCQTg4ODg6CiAJCXJldHVybiBPVkxfQ09O X0NMUkZNVF9BUkdCODg4ODsKQEAgLTE3Nyw3ICsxNzUsNyBAQCBzdGF0aWMgdm9pZCBtdGtfb3Zs X2xheWVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4 LAogCWlmICghcGVuZGluZy0+ZW5hYmxlKQogCQltdGtfb3ZsX2xheWVyX29mZihjb21wLCBpZHgp OwogCi0JY29uID0gb3ZsX2ZtdF9jb252ZXJ0KGZtdCk7CisJY29uID0gb3ZsX2ZtdF9jb252ZXJ0 KGNvbXAsIGZtdCk7CiAJaWYgKGlkeCAhPSAwKQogCQljb24gfD0gT1ZMX0NPTl9BRU4gfCBPVkxf Q09OX0FMUEhBOwogCkBAIC0xODUsNyArMTgzLDcgQEAgc3RhdGljIHZvaWQgbXRrX292bF9sYXll cl9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCwKIAl3 cml0ZWxfcmVsYXhlZChwaXRjaCwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9QSVRDSChpZHgp KTsKIAl3cml0ZWxfcmVsYXhlZChzcmNfc2l6ZSwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9T UkNfU0laRShpZHgpKTsKIAl3cml0ZWxfcmVsYXhlZChvZmZzZXQsIGNvbXAtPnJlZ3MgKyBESVNQ X1JFR19PVkxfT0ZGU0VUKGlkeCkpOwotCXdyaXRlbF9yZWxheGVkKGFkZHIsIGNvbXAtPnJlZ3Mg KyBESVNQX1JFR19PVkxfQUREUihpZHgpKTsKKwl3cml0ZWxfcmVsYXhlZChhZGRyLCBjb21wLT5y ZWdzICsgKGNvbXAtPmRhdGEtPm92bC5hZGRyX29mZnNldCArIGlkeCAqIDB4MjApKTsKIAogCWlm IChwZW5kaW5nLT5lbmFibGUpCiAJCW10a19vdmxfbGF5ZXJfb24oY29tcCwgaWR4KTsKQEAgLTIz Myw2ICsyMzEsMzIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIG10a19kaXNw X292bF9jb21wb25lbnRfb3BzID0gewogCS51bmJpbmQgPSBtdGtfZGlzcF9vdmxfdW5iaW5kLAog fTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZHJpdmVyX2RhdGEgbXQyNzAx X292bF9kcml2ZXJfZGF0YSA9IHsKKwkub3ZsID0gezB4MDA0MCwgMSA8PCAxMiwgMH0KK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZlcl9kYXRhIG10ODE3M19vdmxf ZHJpdmVyX2RhdGEgPSB7CisJLm92bCA9IHsweDBmNDAsIDAsIDEgPDwgMTJ9Cit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZGlzcF9vdmxfZHJpdmVyX2R0X21hdGNo W10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MDEtZGlzcC1vdmwiLAorCSAg LmRhdGEgPSAmbXQyNzAxX292bF9kcml2ZXJfZGF0YX0sCisJeyAuY29tcGF0aWJsZSA9ICJtZWRp YXRlayxtdDgxNzMtZGlzcC1vdmwiLAorCSAgLmRhdGEgPSAmbXQ4MTczX292bF9kcml2ZXJfZGF0 YX0sCisJe30sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXRrX2Rpc3Bfb3ZsX2RyaXZl cl9kdF9tYXRjaCk7CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IG10a19kZHBfY29tcF9kcml2ZXJf ZGF0YSAqbXRrX292bF9nZXRfZHJpdmVyX2RhdGEoCisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKK3sKKwljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZCA9CisJCW9mX21hdGNo X2RldmljZShtdGtfZGlzcF9vdmxfZHJpdmVyX2R0X21hdGNoLCAmcGRldi0+ZGV2KTsKKworCXJl dHVybiAoc3RydWN0IG10a19kZHBfY29tcF9kcml2ZXJfZGF0YSAqKW9mX2lkLT5kYXRhOworfQor CiBzdGF0aWMgaW50IG10a19kaXNwX292bF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CkBAIC0yNjksNiArMjkz LDggQEAgc3RhdGljIGludCBtdGtfZGlzcF9vdmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwlwcml2LT5kZHBfY29tcC5kYXRhID0gbXRr X292bF9nZXRfZHJpdmVyX2RhdGEocGRldik7CisKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2 LCBwcml2KTsKIAogCXJldCA9IGNvbXBvbmVudF9hZGQoZGV2LCAmbXRrX2Rpc3Bfb3ZsX2NvbXBv bmVudF9vcHMpOwpAQCAtMjg1LDExICszMTEsNiBAQCBzdGF0aWMgaW50IG10a19kaXNwX292bF9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX2Rpc3Bfb3ZsX2RyaXZlcl9kdF9tYXRj aFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRpc3Atb3ZsIiwgfSwK LQl7fSwKLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdGtfZGlzcF9vdmxfZHJpdmVyX2R0 X21hdGNoKTsKIAogc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9vdmxfZHJpdmVyID0g ewogCS5wcm9iZQkJPSBtdGtfZGlzcF9vdmxfcHJvYmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX3JkbWEuYwppbmRleCA1ZmI4MGNiLi5hMjBhNmNkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgdm9p ZCBtdGtfcmRtYV9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50 IHdpZHRoLAogCSAqLwogCXRocmVzaG9sZCA9IHdpZHRoICogaGVpZ2h0ICogdnJlZnJlc2ggKiA0 ICogNyAvIDEwMDAwMDA7CiAJcmVnID0gUkRNQV9GSUZPX1VOREVSRkxPV19FTiB8Ci0JICAgICAg UkRNQV9GSUZPX1BTRVVET19TSVpFKFNaXzhLKSB8CisJICAgICAgUkRNQV9GSUZPX1BTRVVET19T SVpFKGNvbXAtPmRhdGEtPnJkbWFfZmlmb19wc2V1ZG9fc2l6ZSkgfAogCSAgICAgIFJETUFfT1VU UFVUX1ZBTElEX0ZJRk9fVEhSRVNIT0xEKHRocmVzaG9sZCk7CiAJd3JpdGVsKHJlZywgY29tcC0+ cmVncyArIERJU1BfUkVHX1JETUFfRklGT19DT04pOwogfQpAQCAtMTY3LDYgKzE2NywzMiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgbXRrX2Rpc3BfcmRtYV9jb21wb25lbnRf b3BzID0gewogCS51bmJpbmQgPSBtdGtfZGlzcF9yZG1hX3VuYmluZCwKIH07CiAKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZlcl9kYXRhIG10MjcwMV9yZG1hX2RyaXZlcl9k YXRhID0geworCS5yZG1hX2ZpZm9fcHNldWRvX3NpemUgPSBTWl80SywKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZlcl9kYXRhIG10ODE3M19yZG1hX2RyaXZlcl9k YXRhID0geworCS5yZG1hX2ZpZm9fcHNldWRvX3NpemUgPSBTWl84SywKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10a19kaXNwX3JkbWFfZHJpdmVyX2R0X21hdGNoW10g PSB7CisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MDEtZGlzcC1yZG1hIiwKKwkgIC5k YXRhID0gJm10MjcwMV9yZG1hX2RyaXZlcl9kYXRhfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlh dGVrLG10ODE3My1kaXNwLXJkbWEiLAorCSAgLmRhdGEgPSAmbXQ4MTczX3JkbWFfZHJpdmVyX2Rh dGF9LAorCXt9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19kaXNwX3JkbWFfZHJp dmVyX2R0X21hdGNoKTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZl cl9kYXRhICptdGtfcmRtYV9nZXRfZHJpdmVyX2RhdGEoCisJc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKK3sKKwljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZCA9CisJCW9mX21h dGNoX2RldmljZShtdGtfZGlzcF9yZG1hX2RyaXZlcl9kdF9tYXRjaCwgJnBkZXYtPmRldik7CisK KwlyZXR1cm4gKHN0cnVjdCBtdGtfZGRwX2NvbXBfZHJpdmVyX2RhdGEgKilvZl9pZC0+ZGF0YTsK K30KKwogc3RhdGljIGludCBtdGtfZGlzcF9yZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKQEAgLTE5Niw2 ICsyMjIsOCBAQCBzdGF0aWMgaW50IG10a19kaXNwX3JkbWFfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwlwcml2LT5kZHBfY29tcC5kYXRh ID0gbXRrX3JkbWFfZ2V0X2RyaXZlcl9kYXRhKHBkZXYpOworCiAJLyogRGlzYWJsZSBhbmQgY2xl YXIgcGVuZGluZyBpbnRlcnJ1cHRzICovCiAJd3JpdGVsKDB4MCwgcHJpdi0+ZGRwX2NvbXAucmVn cyArIERJU1BfUkVHX1JETUFfSU5UX0VOQUJMRSk7CiAJd3JpdGVsKDB4MCwgcHJpdi0+ZGRwX2Nv bXAucmVncyArIERJU1BfUkVHX1JETUFfSU5UX1NUQVRVUyk7CkBAIC0yMjMsMTIgKzI1MSw2IEBA IHN0YXRpYyBpbnQgbXRrX2Rpc3BfcmRtYV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg bXRrX2Rpc3BfcmRtYV9kcml2ZXJfZHRfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gIm1l ZGlhdGVrLG10ODE3My1kaXNwLXJkbWEiLCB9LAotCXt9LAotfTsKLU1PRFVMRV9ERVZJQ0VfVEFC TEUob2YsIG10a19kaXNwX3JkbWFfZHJpdmVyX2R0X21hdGNoKTsKLQogc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBtdGtfZGlzcF9yZG1hX2RyaXZlciA9IHsKIAkucHJvYmUJCT0gbXRrX2Rpc3BfcmRt YV9wcm9iZSwKIAkucmVtb3ZlCQk9IG10a19kaXNwX3JkbWFfcmVtb3ZlLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMKaW5kZXggMDM2MGZkNi4uNTNmOTM2ZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCkBAIC0zNCw5 ICszNCw4IEBACiAjZGVmaW5lIERJU1BfUkVHX1VGT19TVEFSVAkJCTB4MDAwMAogCiAjZGVmaW5l IERJU1BfQ09MT1JfQ0ZHX01BSU4JCQkweDA0MDAKLSNkZWZpbmUgRElTUF9DT0xPUl9TVEFSVAkJ CTB4MGMwMAotI2RlZmluZSBESVNQX0NPTE9SX1dJRFRICQkJMHgwYzUwCi0jZGVmaW5lIERJU1Bf Q09MT1JfSEVJR0hUCQkJMHgwYzU0CisjZGVmaW5lIERJU1BfQ09MT1JfV0lEVEgJCQkweDUwCisj ZGVmaW5lIERJU1BfQ09MT1JfSEVJR0hUCQkJMHg1NAogCiAjZGVmaW5lCU9EX1JFTEFZX01PREUJ CUJJVCgwKQogCkBAIC00OCwxNSArNDcsMTUgQEAKIHN0YXRpYyB2b2lkIG10a19jb2xvcl9jb25m aWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsCiAJCQkgICAgIHVu c2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gpCiB7Ci0Jd3JpdGVsKHcsIGNvbXAt PnJlZ3MgKyBESVNQX0NPTE9SX1dJRFRIKTsKLQl3cml0ZWwoaCwgY29tcC0+cmVncyArIERJU1Bf Q09MT1JfSEVJR0hUKTsKKwl3cml0ZWwodywgY29tcC0+cmVncyArIGNvbXAtPmRhdGEtPmNvbG9y X29mZnNldCArIERJU1BfQ09MT1JfV0lEVEgpOworCXdyaXRlbChoLCBjb21wLT5yZWdzICsgY29t cC0+ZGF0YS0+Y29sb3Jfb2Zmc2V0ICsgRElTUF9DT0xPUl9IRUlHSFQpOwogfQogCiBzdGF0aWMg dm9pZCBtdGtfY29sb3Jfc3RhcnQoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKIHsKIAl3cml0 ZWwoQ09MT1JfQllQQVNTX0FMTCB8IENPTE9SX1NFUV9TRUwsCiAJICAgICAgIGNvbXAtPnJlZ3Mg KyBESVNQX0NPTE9SX0NGR19NQUlOKTsKLQl3cml0ZWwoMHgxLCBjb21wLT5yZWdzICsgRElTUF9D T0xPUl9TVEFSVCk7CisJd3JpdGVsKDB4MSwgY29tcC0+cmVncyArIGNvbXAtPmRhdGEtPmNvbG9y X29mZnNldCk7CiB9CiAKIHN0YXRpYyB2b2lkIG10a19vZF9jb25maWcoc3RydWN0IG10a19kZHBf Y29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsCkBAIC0xMzMsNiArMTMyLDMyIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX21hdGNoIG10a19kZHBfbWF0Y2hlc1tERFBfQ09NUE9O RU5UX0lEX01BWF0gPSB7CiAJW0REUF9DT01QT05FTlRfV0RNQTFdCT0geyBNVEtfRElTUF9XRE1B LAkxLCBOVUxMIH0sCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9kcml2 ZXJfZGF0YSBtdDI3MDFfY29sb3JfZHJpdmVyX2RhdGEgPSB7CisJLmNvbG9yX29mZnNldCA9IDB4 MGYwMCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZlcl9kYXRh IG10ODE3M19jb2xvcl9kcml2ZXJfZGF0YSA9IHsKKwkuY29sb3Jfb2Zmc2V0ID0gMHgwYzAwLAor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX2Rpc3BfY29sb3JfZHJp dmVyX2R0X21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MDEtZGlz cC1jb2xvciIsCisJICAuZGF0YSA9ICZtdDI3MDFfY29sb3JfZHJpdmVyX2RhdGF9LAorCXsgLmNv bXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRpc3AtY29sb3IiLAorCSAgLmRhdGEgPSAmbXQ4 MTczX2NvbG9yX2RyaXZlcl9kYXRhfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9m LCBtdGtfZGlzcF9jb2xvcl9kcml2ZXJfZHRfbWF0Y2gpOworCitzdGF0aWMgaW5saW5lIHN0cnVj dCBtdGtfZGRwX2NvbXBfZHJpdmVyX2RhdGEgKm10a19jb2xvcl9nZXRfZHJpdmVyX2RhdGEoCisJ c3RydWN0IGRldmljZV9ub2RlICpub2RlKQoreworCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg Km9mX2lkID0KKwkJb2ZfbWF0Y2hfbm9kZShtdGtfZGlzcF9jb2xvcl9kcml2ZXJfZHRfbWF0Y2gs IG5vZGUpOworCisJcmV0dXJuIChzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZlcl9kYXRhICopb2Zf aWQtPmRhdGE7Cit9CisKIGludCBtdGtfZGRwX2NvbXBfZ2V0X2lkKHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbm9kZSwKIAkJCWVudW0gbXRrX2RkcF9jb21wX3R5cGUgY29tcF90eXBlKQogewpAQCAtMTc5 LDYgKzIwNCw5IEBAIGludCBtdGtfZGRwX2NvbXBfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAogCXR5cGUgPSBtdGtfZGRwX21hdGNoZXNbY29tcF9p ZF0udHlwZTsKIAorCWlmICh0eXBlID09IE1US19ESVNQX0NPTE9SKQorCQljb21wLT5kYXRhID0g bXRrX2NvbG9yX2dldF9kcml2ZXJfZGF0YShub2RlKTsKKwogCS8qIE9ubHkgRE1BIGNhcGFibGUg Y29tcG9uZW50cyBuZWVkIHRoZSBMQVJCIHByb3BlcnR5ICovCiAJY29tcC0+bGFyYl9kZXYgPSBO VUxMOwogCWlmICh0eXBlICE9IE1US19ESVNQX09WTCAmJgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2RkcF9jb21wLmgKaW5kZXggMWMzNDRlNC4uNmUyZDkxOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oCkBAIC03Nyw2ICs3NywxOCBA QCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIHsKIAkJCSAgICAgc3RydWN0IG10a19wbGFuZV9z dGF0ZSAqc3RhdGUpOwogfTsKIAorc3RydWN0IG10a19kZHBfY29tcF9kcml2ZXJfZGF0YSB7CisJ dW5pb24geworCQlzdHJ1Y3Qgb3ZsIHsKKwkJCXVuc2lnbmVkIGludCBhZGRyX29mZnNldDsKKwkJ CXVuc2lnbmVkIGludCBmbXRfcmdiNTY1OworCQkJdW5zaWduZWQgaW50IGZtdF9yZ2I4ODg7CisJ CX0gb3ZsOworCQl1bnNpZ25lZCBpbnQgcmRtYV9maWZvX3BzZXVkb19zaXplOworCQl1bnNpZ25l ZCBpbnQgY29sb3Jfb2Zmc2V0OworCX07Cit9OworCiBzdHJ1Y3QgbXRrX2RkcF9jb21wIHsKIAlz dHJ1Y3QgY2xrICpjbGs7CiAJdm9pZCBfX2lvbWVtICpyZWdzOwpAQCAtODQsNiArOTYsNyBAQCBz dHJ1Y3QgbXRrX2RkcF9jb21wIHsKIAlzdHJ1Y3QgZGV2aWNlICpsYXJiX2RldjsKIAllbnVtIG10 a19kZHBfY29tcF9pZCBpZDsKIAljb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzICpmdW5j czsKKwljb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZlcl9kYXRhICpkYXRhOwogfTsKIAog c3RhdGljIGlubGluZSB2b2lkIG10a19kZHBfY29tcF9jb25maWcoc3RydWN0IG10a19kZHBfY29t cCAqY29tcCwKLS0gCjEuNy45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=