From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v11 03/12] drm/mediatek: add *driver_data for different hardware settings Date: Wed, 11 Jan 2017 14:51:04 +0800 Message-ID: <1484117473-46644-4-git-send-email-yt.shen@mediatek.com> References: <1484117473-46644-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: <1484117473-46644-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 , CK Hu Cc: Mark Rutland , devicetree@vger.kernel.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Rob Herring , linux-mediatek@lists.infradead.org, Matthias Brugger , yingjoe.chen@mediatek.com, linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org VGhlcmUgYXJlIHNvbWUgaGFyZHdhcmUgc2V0dGluZ3MgY2hhbmdlZCwgYmV0d2VlbiBNVDgxNzMg JiBNVDI3MDE6CkRJU1BfT1ZMIGFkZHJlc3Mgb2Zmc2V0IGNoYW5nZWQsIGNvbG9yIGZvcm1hdCBk ZWZpbml0aW9uIGNoYW5nZWQuCkRJU1BfUkRNQSBmaWZvIHNpemUgY2hhbmdlZC4KRElTUF9DT0xP UiBvZmZzZXQgY2hhbmdlZC4KTUlQSV9UWCBwbGwgc2V0dGluZyBjaGFuZ2VkLgpBbmQgYWRkIHBy ZWZpeCBmb3IgbXRrX2RkcF9tYWluICYgbXRrX2RkcF9leHQgJiBtdXRleF9tb2QuCgpTaWduZWQt b2ZmLWJ5OiBZVCBTaGVuIDx5dC5zaGVuQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMgICAgIHwgNDEgKysrKysrKysrKysrLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMgICAgfCAxOCArKysrKysrLQog ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMgICAgICB8IDcxICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k ZHBfY29tcC5jIHwgNTcgKysrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2Rydi5jICAgICAgfCAyNSArKysrKysrLS0tCiBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgICAgIHwgIDggKysrKwogZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19taXBpX3R4LmMgICAgICB8IDI0ICsrKysrKysrKy0KIDcgZmlsZXMgY2hh bmdlZCwgMTgxIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGlzcF9vdmwuYwppbmRleCBjZTI3NTlmLi40NTUyMTc4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jCkBAIC0zNSwxOCArMzUsMjcgQEAKICNkZWZp bmUgRElTUF9SRUdfT1ZMX1BJVENIKG4pCQkJKDB4MDA0NCArIDB4MjAgKiAobikpCiAjZGVmaW5l IERJU1BfUkVHX09WTF9SRE1BX0NUUkwobikJCSgweDAwYzAgKyAweDIwICogKG4pKQogI2RlZmlu ZSBESVNQX1JFR19PVkxfUkRNQV9HTUMobikJCSgweDAwYzggKyAweDIwICogKG4pKQotI2RlZmlu ZSBESVNQX1JFR19PVkxfQUREUihuKQkJCSgweDBmNDAgKyAweDIwICogKG4pKQorI2RlZmluZSBE SVNQX1JFR19PVkxfQUREUl9NVDgxNzMJCTB4MGY0MAorI2RlZmluZSBESVNQX1JFR19PVkxfQURE UihvdmwsIG4pCQkoKG92bCktPmRhdGEtPmFkZHIgKyAweDIwICogKG4pKQogCiAjZGVmaW5lCU9W TF9SRE1BX01FTV9HTUMJMHg0MDQwMjAyMAogCiAjZGVmaW5lIE9WTF9DT05fQllURV9TV0FQCUJJ VCgyNCkKLSNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUkdCNTY1CSgwIDw8IDEyKQotI2RlZmluZSBP VkxfQ09OX0NMUkZNVF9SR0I4ODgJKDEgPDwgMTIpCisjZGVmaW5lIE9WTF9DT05fQ0xSRk1UX1JH QgkoMSA8PCAxMikKICNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUkdCQTg4ODgJKDIgPDwgMTIpCiAj ZGVmaW5lIE9WTF9DT05fQ0xSRk1UX0FSR0I4ODg4CSgzIDw8IDEyKQorI2RlZmluZSBPVkxfQ09O X0NMUkZNVF9SR0I1NjUob3ZsKQkoKG92bCktPmRhdGEtPmZtdF9yZ2I1NjVfaXNfMCA/IFwKKwkJ CQkJMCA6IE9WTF9DT05fQ0xSRk1UX1JHQikKKyNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUkdCODg4 KG92bCkJKChvdmwpLT5kYXRhLT5mbXRfcmdiNTY1X2lzXzAgPyBcCisJCQkJCU9WTF9DT05fQ0xS Rk1UX1JHQiA6IDApCiAjZGVmaW5lCU9WTF9DT05fQUVOCQlCSVQoOCkKICNkZWZpbmUJT1ZMX0NP Tl9BTFBIQQkJMHhmZgogCitzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2RhdGEgeworCXVuc2lnbmVkIGlu dCBhZGRyOworCWJvb2wgZm10X3JnYjU2NV9pc18wOworfTsKKwogLyoqCiAgKiBzdHJ1Y3QgbXRr X2Rpc3Bfb3ZsIC0gRElTUF9PVkwgZHJpdmVyIHN0cnVjdHVyZQogICogQGRkcF9jb21wIC0gc3Ry dWN0dXJlIGNvbnRhaW5pbmcgdHlwZSBlbnVtIGFuZCBoYXJkd2FyZSByZXNvdXJjZXMKQEAgLTU1 LDYgKzY0LDcgQEAKIHN0cnVjdCBtdGtfZGlzcF9vdmwgewogCXN0cnVjdCBtdGtfZGRwX2NvbXAJ CWRkcF9jb21wOwogCXN0cnVjdCBkcm1fY3J0YwkJCSpjcnRjOworCWNvbnN0IHN0cnVjdCBtdGtf ZGlzcF9vdmxfZGF0YQkqZGF0YTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG10a19kaXNw X292bCAqY29tcF90b19vdmwoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKQEAgLTE0MSwxOCAr MTUxLDE4IEBAIHN0YXRpYyB2b2lkIG10a19vdmxfbGF5ZXJfb2ZmKHN0cnVjdCBtdGtfZGRwX2Nv bXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgpCiAJd3JpdGVsKDB4MCwgY29tcC0+cmVncyArIERJ U1BfUkVHX09WTF9SRE1BX0NUUkwoaWR4KSk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgb3Zs X2ZtdF9jb252ZXJ0KHVuc2lnbmVkIGludCBmbXQpCitzdGF0aWMgdW5zaWduZWQgaW50IG92bF9m bXRfY29udmVydChzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsICpvdmwsIHVuc2lnbmVkIGludCBmbXQpCiB7 CiAJc3dpdGNoIChmbXQpIHsKIAlkZWZhdWx0OgogCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Ci0J CXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I1NjU7CisJCXJldHVybiBPVkxfQ09OX0NMUkZNVF9S R0I1NjUob3ZsKTsKIAljYXNlIERSTV9GT1JNQVRfQkdSNTY1OgotCQlyZXR1cm4gT1ZMX0NPTl9D TFJGTVRfUkdCNTY1IHwgT1ZMX0NPTl9CWVRFX1NXQVA7CisJCXJldHVybiBPVkxfQ09OX0NMUkZN VF9SR0I1NjUob3ZsKSB8IE9WTF9DT05fQllURV9TV0FQOwogCWNhc2UgRFJNX0ZPUk1BVF9SR0I4 ODg6Ci0JCXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I4ODg7CisJCXJldHVybiBPVkxfQ09OX0NM UkZNVF9SR0I4ODgob3ZsKTsKIAljYXNlIERSTV9GT1JNQVRfQkdSODg4OgotCQlyZXR1cm4gT1ZM X0NPTl9DTFJGTVRfUkdCODg4IHwgT1ZMX0NPTl9CWVRFX1NXQVA7CisJCXJldHVybiBPVkxfQ09O X0NMUkZNVF9SR0I4ODgob3ZsKSB8IE9WTF9DT05fQllURV9TV0FQOwogCWNhc2UgRFJNX0ZPUk1B VF9SR0JYODg4ODoKIAljYXNlIERSTV9GT1JNQVRfUkdCQTg4ODg6CiAJCXJldHVybiBPVkxfQ09O X0NMUkZNVF9BUkdCODg4ODsKQEAgLTE3MSw2ICsxODEsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IG92bF9mbXRfY29udmVydCh1bnNpZ25lZCBpbnQgZm10KQogc3RhdGljIHZvaWQgbXRrX292bF9s YXllcl9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCwK IAkJCQkgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7CisJc3RydWN0IG10a19kaXNw X292bCAqb3ZsID0gY29tcF90b19vdmwoY29tcCk7CiAJc3RydWN0IG10a19wbGFuZV9wZW5kaW5n X3N0YXRlICpwZW5kaW5nID0gJnN0YXRlLT5wZW5kaW5nOwogCXVuc2lnbmVkIGludCBhZGRyID0g cGVuZGluZy0+YWRkcjsKIAl1bnNpZ25lZCBpbnQgcGl0Y2ggPSBwZW5kaW5nLT5waXRjaCAmIDB4 ZmZmZjsKQEAgLTE4Miw3ICsxOTMsNyBAQCBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZp ZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LAogCWlmICghcGVu ZGluZy0+ZW5hYmxlKQogCQltdGtfb3ZsX2xheWVyX29mZihjb21wLCBpZHgpOwogCi0JY29uID0g b3ZsX2ZtdF9jb252ZXJ0KGZtdCk7CisJY29uID0gb3ZsX2ZtdF9jb252ZXJ0KG92bCwgZm10KTsK IAlpZiAoaWR4ICE9IDApCiAJCWNvbiB8PSBPVkxfQ09OX0FFTiB8IE9WTF9DT05fQUxQSEE7CiAK QEAgLTE5MCw3ICsyMDEsNyBAQCBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZpZyhzdHJ1 Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LAogCXdyaXRlbF9yZWxheGVk KHBpdGNoLCBjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1BJVENIKGlkeCkpOwogCXdyaXRlbF9y ZWxheGVkKHNyY19zaXplLCBjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1NSQ19TSVpFKGlkeCkp OwogCXdyaXRlbF9yZWxheGVkKG9mZnNldCwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9PRkZT RVQoaWR4KSk7Ci0Jd3JpdGVsX3JlbGF4ZWQoYWRkciwgY29tcC0+cmVncyArIERJU1BfUkVHX09W TF9BRERSKGlkeCkpOworCXdyaXRlbF9yZWxheGVkKGFkZHIsIGNvbXAtPnJlZ3MgKyBESVNQX1JF R19PVkxfQUREUihvdmwsIGlkeCkpOwogCiAJaWYgKHBlbmRpbmctPmVuYWJsZSkKIAkJbXRrX292 bF9sYXllcl9vbihjb21wLCBpZHgpOwpAQCAtMjY3LDYgKzI3OCw4IEBAIHN0YXRpYyBpbnQgbXRr X2Rpc3Bfb3ZsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiBy ZXQ7CiAJfQogCisJcHJpdi0+ZGF0YSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwor CiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdik7CiAKIAlyZXQgPSBkZXZtX3JlcXVl c3RfaXJxKGRldiwgaXJxLCBtdGtfZGlzcF9vdmxfaXJxX2hhbmRsZXIsCkBAIC0yOTAsOCArMzAz LDE0IEBAIHN0YXRpYyBpbnQgbXRrX2Rpc3Bfb3ZsX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kaXNw X292bF9kYXRhIG10ODE3M19vdmxfZHJpdmVyX2RhdGEgPSB7CisJLmFkZHIgPSBESVNQX1JFR19P VkxfQUREUl9NVDgxNzMsCisJLmZtdF9yZ2I1NjVfaXNfMCA9IHRydWUsCit9OworCiBzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZGlzcF9vdmxfZHJpdmVyX2R0X21hdGNoW10g PSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1vdmwiLCB9LAorCXsg LmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRpc3Atb3ZsIiwKKwkgIC5kYXRhID0gJm10 ODE3M19vdmxfZHJpdmVyX2RhdGF9LAogCXt9LAogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2Ys IG10a19kaXNwX292bF9kcml2ZXJfZHRfbWF0Y2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX3JkbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZGlzcF9yZG1hLmMKaW5kZXggMjFlZmY2Zi4uZTVlNTMxOCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3JkbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2Rpc3BfcmRtYS5jCkBAIC0zOCw2ICszOCwxMSBAQAogI2RlZmluZSBSRE1B X0ZJRk9fVU5ERVJGTE9XX0VOCQkJCUJJVCgzMSkKICNkZWZpbmUgUkRNQV9GSUZPX1BTRVVET19T SVpFKGJ5dGVzKQkJCSgoKGJ5dGVzKSAvIDE2KSA8PCAxNikKICNkZWZpbmUgUkRNQV9PVVRQVVRf VkFMSURfRklGT19USFJFU0hPTEQoYnl0ZXMpCQkoKGJ5dGVzKSAvIDE2KQorI2RlZmluZSBSRE1B X0ZJRk9fU0laRShyZG1hKQkJCSgocmRtYSktPmRhdGEtPmZpZm9fc2l6ZSkKKworc3RydWN0IG10 a19kaXNwX3JkbWFfZGF0YSB7CisJdW5zaWduZWQgaW50IGZpZm9fc2l6ZTsKK307CiAKIC8qKgog ICogc3RydWN0IG10a19kaXNwX3JkbWEgLSBESVNQX1JETUEgZHJpdmVyIHN0cnVjdHVyZQpAQCAt NDcsNiArNTIsNyBAQAogc3RydWN0IG10a19kaXNwX3JkbWEgewogCXN0cnVjdCBtdGtfZGRwX2Nv bXAJCWRkcF9jb21wOwogCXN0cnVjdCBkcm1fY3J0YwkJCSpjcnRjOworCWNvbnN0IHN0cnVjdCBt dGtfZGlzcF9yZG1hX2RhdGEJKmRhdGE7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBtdGtf ZGlzcF9yZG1hICpjb21wX3RvX3JkbWEoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKQEAgLTEx NCw2ICsxMjAsNyBAQCBzdGF0aWMgdm9pZCBtdGtfcmRtYV9jb25maWcoc3RydWN0IG10a19kZHBf Y29tcCAqY29tcCwgdW5zaWduZWQgaW50IHdpZHRoLAogewogCXVuc2lnbmVkIGludCB0aHJlc2hv bGQ7CiAJdW5zaWduZWQgaW50IHJlZzsKKwlzdHJ1Y3QgbXRrX2Rpc3BfcmRtYSAqcmRtYSA9IGNv bXBfdG9fcmRtYShjb21wKTsKIAogCXJkbWFfdXBkYXRlX2JpdHMoY29tcCwgRElTUF9SRUdfUkRN QV9TSVpFX0NPTl8wLCAweGZmZiwgd2lkdGgpOwogCXJkbWFfdXBkYXRlX2JpdHMoY29tcCwgRElT UF9SRUdfUkRNQV9TSVpFX0NPTl8xLCAweGZmZmZmLCBoZWlnaHQpOwpAQCAtMTI2LDcgKzEzMyw3 IEBAIHN0YXRpYyB2b2lkIG10a19yZG1hX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21w LCB1bnNpZ25lZCBpbnQgd2lkdGgsCiAJICovCiAJdGhyZXNob2xkID0gd2lkdGggKiBoZWlnaHQg KiB2cmVmcmVzaCAqIDQgKiA3IC8gMTAwMDAwMDsKIAlyZWcgPSBSRE1BX0ZJRk9fVU5ERVJGTE9X X0VOIHwKLQkgICAgICBSRE1BX0ZJRk9fUFNFVURPX1NJWkUoU1pfOEspIHwKKwkgICAgICBSRE1B X0ZJRk9fUFNFVURPX1NJWkUoUkRNQV9GSUZPX1NJWkUocmRtYSkpIHwKIAkgICAgICBSRE1BX09V VFBVVF9WQUxJRF9GSUZPX1RIUkVTSE9MRCh0aHJlc2hvbGQpOwogCXdyaXRlbChyZWcsIGNvbXAt PnJlZ3MgKyBESVNQX1JFR19SRE1BX0ZJRk9fQ09OKTsKIH0KQEAgLTIxMSw2ICsyMTgsOCBAQCBz dGF0aWMgaW50IG10a19kaXNwX3JkbWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwlwcml2LT5kYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRj aF9kYXRhKGRldik7CisKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwcml2KTsKIAogCXJl dCA9IGNvbXBvbmVudF9hZGQoZGV2LCAmbXRrX2Rpc3BfcmRtYV9jb21wb25lbnRfb3BzKTsKQEAg LTIyNyw4ICsyMzYsMTMgQEAgc3RhdGljIGludCBtdGtfZGlzcF9yZG1hX3JlbW92ZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3Qgc3Ry dWN0IG10a19kaXNwX3JkbWFfZGF0YSBtdDgxNzNfcmRtYV9kcml2ZXJfZGF0YSA9IHsKKwkuZmlm b19zaXplID0gU1pfOEssCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBt dGtfZGlzcF9yZG1hX2RyaXZlcl9kdF9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAibWVk aWF0ZWssbXQ4MTczLWRpc3AtcmRtYSIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxt dDgxNzMtZGlzcC1yZG1hIiwKKwkgIC5kYXRhID0gJm10ODE3M19yZG1hX2RyaXZlcl9kYXRhfSwK IAl7fSwKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdGtfZGlzcF9yZG1hX2RyaXZlcl9k dF9tYXRjaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jCmluZGV4IDE3YmE5 MzUuLjgwMzA3NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2RkcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jCkBAIC0z NiwyMSArMzYsMjEgQEAKICNkZWZpbmUgRElTUF9SRUdfTVVURVhfTU9EKG4pCSgweDJjICsgMHgy MCAqIChuKSkKICNkZWZpbmUgRElTUF9SRUdfTVVURVhfU09GKG4pCSgweDMwICsgMHgyMCAqIChu KSkKIAotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9PVkwwCQlCSVQoMTEpCi0jZGVmaW5lIE1VVEVY X01PRF9ESVNQX09WTDEJCUJJVCgxMikKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1BfUkRNQTAJCUJJ VCgxMykKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1BfUkRNQTEJCUJJVCgxNCkKLSNkZWZpbmUgTVVU RVhfTU9EX0RJU1BfUkRNQTIJCUJJVCgxNSkKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1BfV0RNQTAJ CUJJVCgxNikKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1BfV0RNQTEJCUJJVCgxNykKLSNkZWZpbmUg TVVURVhfTU9EX0RJU1BfQ09MT1IwCQlCSVQoMTgpCi0jZGVmaW5lIE1VVEVYX01PRF9ESVNQX0NP TE9SMQkJQklUKDE5KQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9BQUwJCUJJVCgyMCkKLSNkZWZp bmUgTVVURVhfTU9EX0RJU1BfR0FNTUEJCUJJVCgyMSkKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1Bf VUZPRQkJQklUKDIyKQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9QV00wCQlCSVQoMjMpCi0jZGVm aW5lIE1VVEVYX01PRF9ESVNQX1BXTTEJCUJJVCgyNCkKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1Bf T0QJCUJJVCgyNSkKKyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQX09WTDAJCUJJVCgxMSkK KyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQX09WTDEJCUJJVCgxMikKKyNkZWZpbmUgTVQ4 MTczX01VVEVYX01PRF9ESVNQX1JETUEwCQlCSVQoMTMpCisjZGVmaW5lIE1UODE3M19NVVRFWF9N T0RfRElTUF9SRE1BMQkJQklUKDE0KQorI2RlZmluZSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfUkRN QTIJCUJJVCgxNSkKKyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQX1dETUEwCQlCSVQoMTYp CisjZGVmaW5lIE1UODE3M19NVVRFWF9NT0RfRElTUF9XRE1BMQkJQklUKDE3KQorI2RlZmluZSBN VDgxNzNfTVVURVhfTU9EX0RJU1BfQ09MT1IwCQlCSVQoMTgpCisjZGVmaW5lIE1UODE3M19NVVRF WF9NT0RfRElTUF9DT0xPUjEJCUJJVCgxOSkKKyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQ X0FBTAkJQklUKDIwKQorI2RlZmluZSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfR0FNTUEJCUJJVCgy MSkKKyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQX1VGT0UJCUJJVCgyMikKKyNkZWZpbmUg TVQ4MTczX01VVEVYX01PRF9ESVNQX1BXTTAJCUJJVCgyMykKKyNkZWZpbmUgTVQ4MTczX01VVEVY X01PRF9ESVNQX1BXTTEJCUJJVCgyNCkKKyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQX09E CQlCSVQoMjUpCiAKICNkZWZpbmUgTVVURVhfU09GX1NJTkdMRV9NT0RFCQkwCiAjZGVmaW5lIE1V VEVYX1NPRl9EU0kwCQkJMQpAQCAtNzcsMjQgKzc3LDI1IEBAIHN0cnVjdCBtdGtfZGRwIHsKIAlz dHJ1Y3QgY2xrCQkJKmNsazsKIAl2b2lkIF9faW9tZW0JCQkqcmVnczsKIAlzdHJ1Y3QgbXRrX2Rp c3BfbXV0ZXgJCW11dGV4WzEwXTsKKwljb25zdCB1bnNpZ25lZCBpbnQJCSptdXRleF9tb2Q7CiB9 OwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG11dGV4X21vZFtERFBfQ09NUE9ORU5UX0lE X01BWF0gPSB7Ci0JW0REUF9DT01QT05FTlRfQUFMXSA9IE1VVEVYX01PRF9ESVNQX0FBTCwKLQlb RERQX0NPTVBPTkVOVF9DT0xPUjBdID0gTVVURVhfTU9EX0RJU1BfQ09MT1IwLAotCVtERFBfQ09N UE9ORU5UX0NPTE9SMV0gPSBNVVRFWF9NT0RfRElTUF9DT0xPUjEsCi0JW0REUF9DT01QT05FTlRf R0FNTUFdID0gTVVURVhfTU9EX0RJU1BfR0FNTUEsCi0JW0REUF9DT01QT05FTlRfT0RdID0gTVVU RVhfTU9EX0RJU1BfT0QsCi0JW0REUF9DT01QT05FTlRfT1ZMMF0gPSBNVVRFWF9NT0RfRElTUF9P VkwwLAotCVtERFBfQ09NUE9ORU5UX09WTDFdID0gTVVURVhfTU9EX0RJU1BfT1ZMMSwKLQlbRERQ X0NPTVBPTkVOVF9QV00wXSA9IE1VVEVYX01PRF9ESVNQX1BXTTAsCi0JW0REUF9DT01QT05FTlRf UFdNMV0gPSBNVVRFWF9NT0RfRElTUF9QV00xLAotCVtERFBfQ09NUE9ORU5UX1JETUEwXSA9IE1V VEVYX01PRF9ESVNQX1JETUEwLAotCVtERFBfQ09NUE9ORU5UX1JETUExXSA9IE1VVEVYX01PRF9E SVNQX1JETUExLAotCVtERFBfQ09NUE9ORU5UX1JETUEyXSA9IE1VVEVYX01PRF9ESVNQX1JETUEy LAotCVtERFBfQ09NUE9ORU5UX1VGT0VdID0gTVVURVhfTU9EX0RJU1BfVUZPRSwKLQlbRERQX0NP TVBPTkVOVF9XRE1BMF0gPSBNVVRFWF9NT0RfRElTUF9XRE1BMCwKLQlbRERQX0NPTVBPTkVOVF9X RE1BMV0gPSBNVVRFWF9NT0RfRElTUF9XRE1BMSwKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg bXQ4MTczX211dGV4X21vZFtERFBfQ09NUE9ORU5UX0lEX01BWF0gPSB7CisJW0REUF9DT01QT05F TlRfQUFMXSA9IE1UODE3M19NVVRFWF9NT0RfRElTUF9BQUwsCisJW0REUF9DT01QT05FTlRfQ09M T1IwXSA9IE1UODE3M19NVVRFWF9NT0RfRElTUF9DT0xPUjAsCisJW0REUF9DT01QT05FTlRfQ09M T1IxXSA9IE1UODE3M19NVVRFWF9NT0RfRElTUF9DT0xPUjEsCisJW0REUF9DT01QT05FTlRfR0FN TUFdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX0dBTU1BLAorCVtERFBfQ09NUE9ORU5UX09EXSA9 IE1UODE3M19NVVRFWF9NT0RfRElTUF9PRCwKKwlbRERQX0NPTVBPTkVOVF9PVkwwXSA9IE1UODE3 M19NVVRFWF9NT0RfRElTUF9PVkwwLAorCVtERFBfQ09NUE9ORU5UX09WTDFdID0gTVQ4MTczX01V VEVYX01PRF9ESVNQX09WTDEsCisJW0REUF9DT01QT05FTlRfUFdNMF0gPSBNVDgxNzNfTVVURVhf TU9EX0RJU1BfUFdNMCwKKwlbRERQX0NPTVBPTkVOVF9QV00xXSA9IE1UODE3M19NVVRFWF9NT0Rf RElTUF9QV00xLAorCVtERFBfQ09NUE9ORU5UX1JETUEwXSA9IE1UODE3M19NVVRFWF9NT0RfRElT UF9SRE1BMCwKKwlbRERQX0NPTVBPTkVOVF9SRE1BMV0gPSBNVDgxNzNfTVVURVhfTU9EX0RJU1Bf UkRNQTEsCisJW0REUF9DT01QT05FTlRfUkRNQTJdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX1JE TUEyLAorCVtERFBfQ09NUE9ORU5UX1VGT0VdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX1VGT0Us CisJW0REUF9DT01QT05FTlRfV0RNQTBdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX1dETUEwLAor CVtERFBfQ09NUE9ORU5UX1dETUExXSA9IE1UODE3M19NVVRFWF9NT0RfRElTUF9XRE1BMSwKIH07 CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX2RkcF9tb3V0X2VuKGVudW0gbXRrX2RkcF9jb21w X2lkIGN1ciwKQEAgLTI0Nyw3ICsyNDgsNyBAQCB2b2lkIG10a19kaXNwX211dGV4X2FkZF9jb21w KHN0cnVjdCBtdGtfZGlzcF9tdXRleCAqbXV0ZXgsCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJl ZyA9IHJlYWRsX3JlbGF4ZWQoZGRwLT5yZWdzICsgRElTUF9SRUdfTVVURVhfTU9EKG11dGV4LT5p ZCkpOwotCQlyZWcgfD0gbXV0ZXhfbW9kW2lkXTsKKwkJcmVnIHw9IGRkcC0+bXV0ZXhfbW9kW2lk XTsKIAkJd3JpdGVsX3JlbGF4ZWQocmVnLCBkZHAtPnJlZ3MgKyBESVNQX1JFR19NVVRFWF9NT0Qo bXV0ZXgtPmlkKSk7CiAJCXJldHVybjsKIAl9CkBAIC0yNzMsNyArMjc0LDcgQEAgdm9pZCBtdGtf ZGlzcF9tdXRleF9yZW1vdmVfY29tcChzdHJ1Y3QgbXRrX2Rpc3BfbXV0ZXggKm11dGV4LAogCQli cmVhazsKIAlkZWZhdWx0OgogCQlyZWcgPSByZWFkbF9yZWxheGVkKGRkcC0+cmVncyArIERJU1Bf UkVHX01VVEVYX01PRChtdXRleC0+aWQpKTsKLQkJcmVnICY9IH5tdXRleF9tb2RbaWRdOworCQly ZWcgJj0gfihkZHAtPm11dGV4X21vZFtpZF0pOwogCQl3cml0ZWxfcmVsYXhlZChyZWcsIGRkcC0+ cmVncyArIERJU1BfUkVHX01VVEVYX01PRChtdXRleC0+aWQpKTsKIAkJYnJlYWs7CiAJfQpAQCAt MzI2LDYgKzMyNyw4IEBAIHN0YXRpYyBpbnQgbXRrX2RkcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihkZHAtPnJlZ3MpOwogCX0KIAorCWRkcC0+ bXV0ZXhfbW9kID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7CisKIAlwbGF0Zm9ybV9z ZXRfZHJ2ZGF0YShwZGV2LCBkZHApOwogCiAJcmV0dXJuIDA7CkBAIC0zMzcsNyArMzQwLDcgQEAg c3RhdGljIGludCBtdGtfZGRwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQog fQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkZHBfZHJpdmVyX2R0X21hdGNo W10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1tdXRleCIgfSwK Kwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1kaXNwLW11dGV4IiwgLmRhdGEgPSBt dDgxNzNfbXV0ZXhfbW9kfSwKIAl7fSwKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkZHBf ZHJpdmVyX2R0X21hdGNoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2RkcF9jb21wLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBf Y29tcC5jCmluZGV4IDQ4Y2MwMWYuLjNmZjc4OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZGRwX2NvbXAuYwpAQCAtMzksOSArMzksMTAgQEAKICNkZWZpbmUgRElTUF9S RUdfVUZPX1NUQVJUCQkJMHgwMDAwCiAKICNkZWZpbmUgRElTUF9DT0xPUl9DRkdfTUFJTgkJCTB4 MDQwMAotI2RlZmluZSBESVNQX0NPTE9SX1NUQVJUCQkJMHgwYzAwCi0jZGVmaW5lIERJU1BfQ09M T1JfV0lEVEgJCQkweDBjNTAKLSNkZWZpbmUgRElTUF9DT0xPUl9IRUlHSFQJCQkweDBjNTQKKyNk ZWZpbmUgRElTUF9DT0xPUl9TVEFSVF9NVDgxNzMJCQkweDBjMDAKKyNkZWZpbmUgRElTUF9DT0xP Ul9TVEFSVChjb21wKQkJCSgoY29tcCktPmRhdGEtPmNvbG9yX29mZnNldCkKKyNkZWZpbmUgRElT UF9DT0xPUl9XSURUSChjb21wKQkJCShESVNQX0NPTE9SX1NUQVJUKGNvbXApICsgMHg1MCkKKyNk ZWZpbmUgRElTUF9DT0xPUl9IRUlHSFQoY29tcCkJCQkoRElTUF9DT0xPUl9TVEFSVChjb21wKSAr IDB4NTQpCiAKICNkZWZpbmUgRElTUF9BQUxfRU4JCQkJMHgwMDAwCiAjZGVmaW5lIERJU1BfQUFM X1NJWkUJCQkJMHgwMDMwCkBAIC04MCw2ICs4MSwyMCBAQAogI2RlZmluZSBESVRIRVJfQUREX0xT SElGVF9HKHgpCQkJKCgoeCkgJiAweDcpIDw8IDQpCiAjZGVmaW5lIERJVEhFUl9BRERfUlNISUZU X0coeCkJCQkoKCh4KSAmIDB4NykgPDwgMCkKIAorc3RydWN0IG10a19kaXNwX2NvbG9yX2RhdGEg eworCXVuc2lnbmVkIGludCBjb2xvcl9vZmZzZXQ7Cit9OworCitzdHJ1Y3QgbXRrX2Rpc3BfY29s b3IgeworCXN0cnVjdCBtdGtfZGRwX2NvbXAJCQlkZHBfY29tcDsKKwljb25zdCBzdHJ1Y3QgbXRr X2Rpc3BfY29sb3JfZGF0YQkqZGF0YTsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IG10a19k aXNwX2NvbG9yICpjb21wX3RvX2NvbG9yKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApCit7CisJ cmV0dXJuIGNvbnRhaW5lcl9vZihjb21wLCBzdHJ1Y3QgbXRrX2Rpc3BfY29sb3IsIGRkcF9jb21w KTsKK30KKwogdm9pZCBtdGtfZGl0aGVyX3NldChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1 bnNpZ25lZCBpbnQgYnBjLAogCQkgICAgdW5zaWduZWQgaW50IENGRykKIHsKQEAgLTEwNywxNSAr MTIyLDE5IEBAIHN0YXRpYyB2b2lkIG10a19jb2xvcl9jb25maWcoc3RydWN0IG10a19kZHBfY29t cCAqY29tcCwgdW5zaWduZWQgaW50IHcsCiAJCQkgICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25l ZCBpbnQgdnJlZnJlc2gsCiAJCQkgICAgIHVuc2lnbmVkIGludCBicGMpCiB7Ci0Jd3JpdGVsKHcs IGNvbXAtPnJlZ3MgKyBESVNQX0NPTE9SX1dJRFRIKTsKLQl3cml0ZWwoaCwgY29tcC0+cmVncyAr IERJU1BfQ09MT1JfSEVJR0hUKTsKKwlzdHJ1Y3QgbXRrX2Rpc3BfY29sb3IgKmNvbG9yID0gY29t cF90b19jb2xvcihjb21wKTsKKworCXdyaXRlbCh3LCBjb21wLT5yZWdzICsgRElTUF9DT0xPUl9X SURUSChjb2xvcikpOworCXdyaXRlbChoLCBjb21wLT5yZWdzICsgRElTUF9DT0xPUl9IRUlHSFQo Y29sb3IpKTsKIH0KIAogc3RhdGljIHZvaWQgbXRrX2NvbG9yX3N0YXJ0KHN0cnVjdCBtdGtfZGRw X2NvbXAgKmNvbXApCiB7CisJc3RydWN0IG10a19kaXNwX2NvbG9yICpjb2xvciA9IGNvbXBfdG9f Y29sb3IoY29tcCk7CisKIAl3cml0ZWwoQ09MT1JfQllQQVNTX0FMTCB8IENPTE9SX1NFUV9TRUws CiAJICAgICAgIGNvbXAtPnJlZ3MgKyBESVNQX0NPTE9SX0NGR19NQUlOKTsKLQl3cml0ZWwoMHgx LCBjb21wLT5yZWdzICsgRElTUF9DT0xPUl9TVEFSVCk7CisJd3JpdGVsKDB4MSwgY29tcC0+cmVn cyArIERJU1BfQ09MT1JfU1RBUlQoY29sb3IpKTsKIH0KIAogc3RhdGljIHZvaWQgbXRrX29kX2Nv bmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgdywKQEAgLTI2NCw2 ICsyODMsMTYgQEAgc3RydWN0IG10a19kZHBfY29tcF9tYXRjaCB7CiAJW0REUF9DT01QT05FTlRf V0RNQTFdCT0geyBNVEtfRElTUF9XRE1BLAkxLCBOVUxMIH0sCiB9OwogCitzdGF0aWMgY29uc3Qg c3RydWN0IG10a19kaXNwX2NvbG9yX2RhdGEgbXQ4MTczX2NvbG9yX2RyaXZlcl9kYXRhID0gewor CS5jb2xvcl9vZmZzZXQgPSBESVNQX0NPTE9SX1NUQVJUX01UODE3MywKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10a19kaXNwX2NvbG9yX2RyaXZlcl9kdF9tYXRjaFtd ID0geworCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRpc3AtY29sb3IiLAorCSAg LmRhdGEgPSAmbXQ4MTczX2NvbG9yX2RyaXZlcl9kYXRhfSwKKwl7fSwKK307CisKIGludCBtdGtf ZGRwX2NvbXBfZ2V0X2lkKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAkJCWVudW0gbXRrX2Rk cF9jb21wX3R5cGUgY29tcF90eXBlKQogewpAQCAtMjg2LDEwICszMTUsMjQgQEAgaW50IG10a19k ZHBfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpub2Rl LAogCWVudW0gbXRrX2RkcF9jb21wX3R5cGUgdHlwZTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKmxh cmJfbm9kZTsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpsYXJiX3BkZXY7CisJY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7CisJc3RydWN0IG10a19kaXNwX2NvbG9yICpjb2xvcjsK IAogCWlmIChjb21wX2lkIDwgMCB8fCBjb21wX2lkID49IEREUF9DT01QT05FTlRfSURfTUFYKQog CQlyZXR1cm4gLUVJTlZBTDsKIAorCXR5cGUgPSBtdGtfZGRwX21hdGNoZXNbY29tcF9pZF0udHlw ZTsKKwlpZiAodHlwZSA9PSBNVEtfRElTUF9DT0xPUikgeworCQlkZXZtX2tmcmVlKGRldiwgY29t cCk7CisJCWNvbG9yID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpjb2xvciksIEdGUF9LRVJO RUwpOworCQlpZiAoIWNvbG9yKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJbWF0Y2ggPSBvZl9t YXRjaF9ub2RlKG10a19kaXNwX2NvbG9yX2RyaXZlcl9kdF9tYXRjaCwgbm9kZSk7CisJCWNvbG9y LT5kYXRhID0gbWF0Y2gtPmRhdGE7CisJCWNvbXAgPSAmY29sb3ItPmRkcF9jb21wOworCX0KKwog CWNvbXAtPmlkID0gY29tcF9pZDsKIAljb21wLT5mdW5jcyA9IGZ1bmNzID86IG10a19kZHBfbWF0 Y2hlc1tjb21wX2lkXS5mdW5jczsKIApAQCAtMzA4LDggKzM1MSw2IEBAIGludCBtdGtfZGRwX2Nv bXBfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAlp ZiAoSVNfRVJSKGNvbXAtPmNsaykpCiAJCWNvbXAtPmNsayA9IE5VTEw7CiAKLQl0eXBlID0gbXRr X2RkcF9tYXRjaGVzW2NvbXBfaWRdLnR5cGU7Ci0KIAkvKiBPbmx5IERNQSBjYXBhYmxlIGNvbXBv bmVudHMgbmVlZCB0aGUgTEFSQiBwcm9wZXJ0eSAqLwogCWNvbXAtPmxhcmJfZGV2ID0gTlVMTDsK IAlpZiAodHlwZSAhPSBNVEtfRElTUF9PVkwgJiYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZHJ2LmMKaW5kZXggNGI3ZmU3ZS4uMDc0ZmUzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZHJ2LmMKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgaW50IG10a19hdG9taWNf Y29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCiAJLmF0b21pY19jb21taXQgPSBtdGtfYXRv bWljX2NvbW1pdCwKIH07CiAKLXN0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdGtf ZGRwX21haW5bXSA9IHsKK3N0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDgxNzNf bXRrX2RkcF9tYWluW10gPSB7CiAJRERQX0NPTVBPTkVOVF9PVkwwLAogCUREUF9DT01QT05FTlRf Q09MT1IwLAogCUREUF9DT01QT05FTlRfQUFMLApAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyBp bnQgbXRrX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAlERFBfQ09NUE9O RU5UX1BXTTAsCiB9OwogCi1zdGF0aWMgY29uc3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXRrX2Rk cF9leHRbXSA9IHsKK3N0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDgxNzNfbXRr X2RkcF9leHRbXSA9IHsKIAlERFBfQ09NUE9ORU5UX09WTDEsCiAJRERQX0NPTVBPTkVOVF9DT0xP UjEsCiAJRERQX0NPTVBPTkVOVF9HQU1NQSwKQEAgLTE0Nyw2ICsxNDcsMTMgQEAgc3RhdGljIGlu dCBtdGtfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAogCUREUF9DT01QT05F TlRfRFBJMCwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRh IG10ODE3M19tbXN5c19kcml2ZXJfZGF0YSA9IHsKKwkubWFpbl9wYXRoID0gbXQ4MTczX210a19k ZHBfbWFpbiwKKwkubWFpbl9sZW4gPSBBUlJBWV9TSVpFKG10ODE3M19tdGtfZGRwX21haW4pLAor CS5leHRfcGF0aCA9IG10ODE3M19tdGtfZGRwX2V4dCwKKwkuZXh0X2xlbiA9IEFSUkFZX1NJWkUo bXQ4MTczX210a19kZHBfZXh0KSwKK307CisKIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZHJtKQogewogCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXZh dGUgPSBkcm0tPmRldl9wcml2YXRlOwpAQCAtMTg5LDE3ICsxOTYsMTkgQEAgc3RhdGljIGludCBt dGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCiAJICogYW5kIGVhY2ggc3Rh dGljYWxseSBhc3NpZ25lZCB0byBhIGNydGM6CiAJICogT1ZMMCAtPiBDT0xPUjAgLT4gQUFMIC0+ IE9EIC0+IFJETUEwIC0+IFVGT0UgLT4gRFNJMCAuLi4KIAkgKi8KLQlyZXQgPSBtdGtfZHJtX2Ny dGNfY3JlYXRlKGRybSwgbXRrX2RkcF9tYWluLCBBUlJBWV9TSVpFKG10a19kZHBfbWFpbikpOwor CXJldCA9IG10a19kcm1fY3J0Y19jcmVhdGUoZHJtLCBwcml2YXRlLT5kYXRhLT5tYWluX3BhdGgs CisJCQkJICBwcml2YXRlLT5kYXRhLT5tYWluX2xlbik7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8g ZXJyX2NvbXBvbmVudF91bmJpbmQ7CiAJLyogLi4uIGFuZCBPVkwxIC0+IENPTE9SMSAtPiBHQU1N QSAtPiBSRE1BMSAtPiBEUEkwLiAqLwotCXJldCA9IG10a19kcm1fY3J0Y19jcmVhdGUoZHJtLCBt dGtfZGRwX2V4dCwgQVJSQVlfU0laRShtdGtfZGRwX2V4dCkpOworCXJldCA9IG10a19kcm1fY3J0 Y19jcmVhdGUoZHJtLCBwcml2YXRlLT5kYXRhLT5leHRfcGF0aCwKKwkJCQkgIHByaXZhdGUtPmRh dGEtPmV4dF9sZW4pOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIGVycl9jb21wb25lbnRfdW5iaW5k OwogCiAJLyogVXNlIE9WTCBkZXZpY2UgZm9yIGFsbCBETUEgbWVtb3J5IGFsbG9jYXRpb25zICov Ci0JbnAgPSBwcml2YXRlLT5jb21wX25vZGVbbXRrX2RkcF9tYWluWzBdXSA/OgotCSAgICAgcHJp dmF0ZS0+Y29tcF9ub2RlW210a19kZHBfZXh0WzBdXTsKKwlucCA9IHByaXZhdGUtPmNvbXBfbm9k ZVtwcml2YXRlLT5kYXRhLT5tYWluX3BhdGhbMF1dID86CisJICAgICBwcml2YXRlLT5jb21wX25v ZGVbcHJpdmF0ZS0+ZGF0YS0+ZXh0X3BhdGhbMF1dOwogCXBkZXYgPSBvZl9maW5kX2RldmljZV9i eV9ub2RlKG5wKTsKIAlpZiAoIXBkZXYpIHsKIAkJcmV0ID0gLUVOT0RFVjsKQEAgLTM2Miw2ICsz NzEsNyBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAogCW11dGV4X2luaXQoJnByaXZhdGUtPmNvbW1pdC5sb2NrKTsKIAlJTklUX1dPUkso JnByaXZhdGUtPmNvbW1pdC53b3JrLCBtdGtfYXRvbWljX3dvcmspOworCXByaXZhdGUtPmRhdGEg PSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsKIAogCW1lbSA9IHBsYXRmb3JtX2dldF9y ZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJcHJpdmF0ZS0+Y29uZmlnX3JlZ3Mg PSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOwpAQCAtNTEzLDcgKzUyMyw4IEBAIHN0 YXRpYyBTSU1QTEVfREVWX1BNX09QUyhtdGtfZHJtX3BtX29wcywgbXRrX2RybV9zeXNfc3VzcGVu ZCwKIAkJCSBtdGtfZHJtX3N5c19yZXN1bWUpOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rl dmljZV9pZCBtdGtfZHJtX29mX2lkc1tdID0gewotCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWss bXQ4MTczLW1tc3lzIiwgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1tbXN5 cyIsCisJICAuZGF0YSA9ICZtdDgxNzNfbW1zeXNfZHJpdmVyX2RhdGF9LAogCXsgfQogfTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaAppbmRleCBhYTkzODk0Li5mYTBiMTA2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaApAQCAtMjgsNiArMjgsMTMg QEAKIHN0cnVjdCBkcm1fcHJvcGVydHk7CiBzdHJ1Y3QgcmVnbWFwOwogCitzdHJ1Y3QgbXRrX21t c3lzX2RyaXZlcl9kYXRhIHsKKwljb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqbWFpbl9wYXRo OworCXVuc2lnbmVkIGludCBtYWluX2xlbjsKKwljb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAq ZXh0X3BhdGg7CisJdW5zaWduZWQgaW50IGV4dF9sZW47Cit9OworCiBzdHJ1Y3QgbXRrX2RybV9w cml2YXRlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwogCXN0cnVjdCBkZXZpY2UgKmRtYV9k ZXY7CkBAIC00MCw2ICs0Nyw3IEBAIHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgewogCXZvaWQgX19p b21lbSAqY29uZmlnX3JlZ3M7CiAJc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGVbRERQX0NP TVBPTkVOVF9JRF9NQVhdOwogCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmRkcF9jb21wW0REUF9DT01Q T05FTlRfSURfTUFYXTsKKwljb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhICpkYXRh OwogCiAJc3RydWN0IHsKIAkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21pcGlfdHguYwppbmRleCAxYzM2NmY4Li5jNGEwMTY1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21pcGlfdHguYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21pcGlfdHguYwpAQCAtMTYsNiArMTYsNyBAQAogI2lu Y2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CiAKQEAg LTg3LDYgKzg4LDkgQEAKIAogI2RlZmluZSBNSVBJVFhfRFNJX1BMTF9DT04yCTB4NTgKIAorI2Rl ZmluZSBNSVBJVFhfRFNJX1BMTF9UT1AJMHg2NAorI2RlZmluZSBSR19EU0lfTVBQTExfUFJFU0VS VkUJCSgweGZmIDw8IDgpCisKICNkZWZpbmUgTUlQSVRYX0RTSV9QTExfUFdSCTB4NjgKICNkZWZp bmUgUkdfRFNJX01QUExMX1NETV9QV1JfT04JCUJJVCgwKQogI2RlZmluZSBSR19EU0lfTVBQTExf U0RNX0lTT19FTgkJQklUKDEpCkBAIC0xMjMsMTAgKzEyNywxNSBAQAogI2RlZmluZSBTV19MTlQy X0hTVFhfUFJFX09FCQlCSVQoMjQpCiAjZGVmaW5lIFNXX0xOVDJfSFNUWF9PRQkJCUJJVCgyNSkK IAorc3RydWN0IG10a19taXBpdHhfZGF0YSB7CisJY29uc3QgdTMyIG1wcGxsX3ByZXNlcnZlOwor fTsKKwogc3RydWN0IG10a19taXBpX3R4IHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJdm9pZCBf X2lvbWVtICpyZWdzOwogCXVuc2lnbmVkIGludCBkYXRhX3JhdGU7CisJY29uc3Qgc3RydWN0IG10 a19taXBpdHhfZGF0YSAqZHJpdmVyX2RhdGE7CiAJc3RydWN0IGNsa19odyBwbGxfaHc7CiAJc3Ry dWN0IGNsayAqcGxsOwogfTsKQEAgLTI0Myw2ICsyNTIsMTAgQEAgc3RhdGljIGludCBtdGtfbWlw aV90eF9wbGxfcHJlcGFyZShzdHJ1Y3QgY2xrX2h3ICpodykKIAltdGtfbWlwaV90eF9jbGVhcl9i aXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfUExMX0NPTjEsCiAJCQkgICAgICAgUkdfRFNJX01QUExM X1NETV9TU0NfRU4pOwogCisJbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQSVRY X0RTSV9QTExfVE9QLAorCQkJCVJHX0RTSV9NUFBMTF9QUkVTRVJWRSwKKwkJCQltaXBpX3R4LT5k cml2ZXJfZGF0YS0+bXBwbGxfcHJlc2VydmUpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI1NSw2 ICsyNjgsOSBAQCBzdGF0aWMgdm9pZCBtdGtfbWlwaV90eF9wbGxfdW5wcmVwYXJlKHN0cnVjdCBj bGtfaHcgKmh3KQogCW10a19taXBpX3R4X2NsZWFyX2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9Q TExfQ09OMCwKIAkJCSAgICAgICBSR19EU0lfTVBQTExfUExMX0VOKTsKIAorCW10a19taXBpX3R4 X3VwZGF0ZV9iaXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfUExMX1RPUCwKKwkJCQlSR19EU0lfTVBQ TExfUFJFU0VSVkUsIDApOworCiAJbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQ SVRYX0RTSV9QTExfUFdSLAogCQkJCVJHX0RTSV9NUFBMTF9TRE1fSVNPX0VOIHwKIAkJCQlSR19E U0lfTVBQTExfU0RNX1BXUl9PTiwKQEAgLTM5MSw2ICs0MDcsNyBAQCBzdGF0aWMgaW50IG10a19t aXBpX3R4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKCFtaXBpX3R4 KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCW1pcGlfdHgtPmRyaXZlcl9kYXRhID0gb2ZfZGV2aWNl X2dldF9tYXRjaF9kYXRhKGRldik7CiAJbWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYs IElPUkVTT1VSQ0VfTUVNLCAwKTsKIAltaXBpX3R4LT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291 cmNlKGRldiwgbWVtKTsKIAlpZiAoSVNfRVJSKG1pcGlfdHgtPnJlZ3MpKSB7CkBAIC00NDgsOCAr NDY1LDEzIEBAIHN0YXRpYyBpbnQgbXRrX21pcGlfdHhfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21p cGl0eF9kYXRhIG10ODE3M19taXBpdHhfZGF0YSA9IHsKKwkubXBwbGxfcHJlc2VydmUgPSAoMCA8 PCA4KQorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX21pcGlfdHhf bWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1taXBpLXR4Iiwg fSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1taXBpLXR4IiwKKwkgIC5kYXRh ID0gJm10ODE3M19taXBpdHhfZGF0YSB9LAogCXt9LAogfTsKIAotLSAKMS45LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=