From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v10 02/13] drm/mediatek: add *driver_data for different hardware settings Date: Fri, 25 Nov 2016 18:34:25 +0800 Message-ID: <1480070076-6196-3-git-send-email-yt.shen@mediatek.com> References: <1480070076-6196-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: <1480070076-6196-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: Daniel Vetter , Jie Qiu , Mao Huang , yingjoe.chen@mediatek.com, Dan Carpenter , Jitao Shi , linux-mediatek@lists.infradead.org, Matthias Brugger , shaoming chen , linux-arm-kernel@lists.infradead.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Sascha Hauer , Maxime Ripard List-Id: linux-mediatek@lists.infradead.org VGhlcmUgYXJlIHNvbWUgaGFyZHdhcmUgc2V0dGluZ3MgY2hhbmdlZCwgYmV0d2VlbiBNVDgxNzMg JiBNVDI3MDE6CkRJU1BfT1ZMIGFkZHJlc3Mgb2Zmc2V0IGNoYW5nZWQsIGNvbG9yIGZvcm1hdCBk ZWZpbml0aW9uIGNoYW5nZWQuCkRJU1BfUkRNQSBmaWZvIHNpemUgY2hhbmdlZC4KRElTUF9DT0xP UiBvZmZzZXQgY2hhbmdlZC4KTUlQSV9UWCBwbGwgc2V0dGluZyBjaGFuZ2VkLgpBbmQgYWRkIHBy ZWZpeCBmb3IgbXRrX2RkcF9tYWluICYgbXRrX2RkcF9leHQgJiBtdXRleF9tb2QuCgpTaWduZWQt b2ZmLWJ5OiBZVCBTaGVuIDx5dC5zaGVuQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMgICAgIHwgNDEgKysrKysrKysrKysrLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9yZG1hLmMgICAgfCAxOCArKysrKysrLQog ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMgICAgICB8IDcxICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k ZHBfY29tcC5jIHwgMjkgKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kZHBfY29tcC5oIHwgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2Rydi5jICAgICAgfCAyNSArKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kcnYuaCAgICAgIHwgIDggKysrKwogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19t aXBpX3R4LmMgICAgICB8IDI0ICsrKysrKysrKy0KIDggZmlsZXMgY2hhbmdlZCwgMTYwIGluc2Vy dGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGlzcF9vdmwuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9vdmwuYwppbmRleCAxNzk3MWU0Li42Nzg1OTVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX292bC5jCkBAIC0zNSwxOCArMzUsMjcgQEAKICNkZWZpbmUgRElTUF9SRUdfT1ZM X1BJVENIKG4pCQkJKDB4MDA0NCArIDB4MjAgKiAobikpCiAjZGVmaW5lIERJU1BfUkVHX09WTF9S RE1BX0NUUkwobikJCSgweDAwYzAgKyAweDIwICogKG4pKQogI2RlZmluZSBESVNQX1JFR19PVkxf UkRNQV9HTUMobikJCSgweDAwYzggKyAweDIwICogKG4pKQotI2RlZmluZSBESVNQX1JFR19PVkxf QUREUihuKQkJCSgweDBmNDAgKyAweDIwICogKG4pKQorI2RlZmluZSBESVNQX1JFR19PVkxfQURE Ul9NVDgxNzMJCTB4MGY0MAorI2RlZmluZSBESVNQX1JFR19PVkxfQUREUihvdmwsIG4pCQkoKG92 bCktPmRhdGEtPmFkZHIgKyAweDIwICogKG4pKQogCiAjZGVmaW5lCU9WTF9SRE1BX01FTV9HTUMJ MHg0MDQwMjAyMAogCiAjZGVmaW5lIE9WTF9DT05fQllURV9TV0FQCUJJVCgyNCkKLSNkZWZpbmUg T1ZMX0NPTl9DTFJGTVRfUkdCNTY1CSgwIDw8IDEyKQotI2RlZmluZSBPVkxfQ09OX0NMUkZNVF9S R0I4ODgJKDEgPDwgMTIpCisjZGVmaW5lIE9WTF9DT05fQ0xSRk1UX1JHQgkoMSA8PCAxMikKICNk ZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUkdCQTg4ODgJKDIgPDwgMTIpCiAjZGVmaW5lIE9WTF9DT05f Q0xSRk1UX0FSR0I4ODg4CSgzIDw8IDEyKQorI2RlZmluZSBPVkxfQ09OX0NMUkZNVF9SR0I1NjUo b3ZsKQkoKG92bCktPmRhdGEtPmZtdF9yZ2I1NjVfaXNfMCA/IFwKKwkJCQkJMCA6IE9WTF9DT05f Q0xSRk1UX1JHQikKKyNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfUkdCODg4KG92bCkJKChvdmwpLT5k YXRhLT5mbXRfcmdiNTY1X2lzXzAgPyBcCisJCQkJCU9WTF9DT05fQ0xSRk1UX1JHQiA6IDApCiAj ZGVmaW5lCU9WTF9DT05fQUVOCQlCSVQoOCkKICNkZWZpbmUJT1ZMX0NPTl9BTFBIQQkJMHhmZgog CitzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2RhdGEgeworCXVuc2lnbmVkIGludCBhZGRyOworCWJvb2wg Zm10X3JnYjU2NV9pc18wOworfTsKKwogLyoqCiAgKiBzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsIC0gRElT UF9PVkwgZHJpdmVyIHN0cnVjdHVyZQogICogQGRkcF9jb21wIC0gc3RydWN0dXJlIGNvbnRhaW5p bmcgdHlwZSBlbnVtIGFuZCBoYXJkd2FyZSByZXNvdXJjZXMKQEAgLTU1LDYgKzY0LDcgQEAKIHN0 cnVjdCBtdGtfZGlzcF9vdmwgewogCXN0cnVjdCBtdGtfZGRwX2NvbXAJCWRkcF9jb21wOwogCXN0 cnVjdCBkcm1fY3J0YwkJCSpjcnRjOworCWNvbnN0IHN0cnVjdCBtdGtfZGlzcF9vdmxfZGF0YQkq ZGF0YTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG10a19kaXNwX292bCAqY29tcF90b19v dmwoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKQEAgLTE0MCwxOCArMTUwLDE4IEBAIHN0YXRp YyB2b2lkIG10a19vdmxfbGF5ZXJfb2ZmKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2ln bmVkIGludCBpZHgpCiAJd3JpdGVsKDB4MCwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9SRE1B X0NUUkwoaWR4KSk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgb3ZsX2ZtdF9jb252ZXJ0KHVu c2lnbmVkIGludCBmbXQpCitzdGF0aWMgdW5zaWduZWQgaW50IG92bF9mbXRfY29udmVydChzdHJ1 Y3QgbXRrX2Rpc3Bfb3ZsICpvdmwsIHVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3dpdGNoIChmbXQp IHsKIAlkZWZhdWx0OgogCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Ci0JCXJldHVybiBPVkxfQ09O X0NMUkZNVF9SR0I1NjU7CisJCXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I1NjUob3ZsKTsKIAlj YXNlIERSTV9GT1JNQVRfQkdSNTY1OgotCQlyZXR1cm4gT1ZMX0NPTl9DTFJGTVRfUkdCNTY1IHwg T1ZMX0NPTl9CWVRFX1NXQVA7CisJCXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I1NjUob3ZsKSB8 IE9WTF9DT05fQllURV9TV0FQOwogCWNhc2UgRFJNX0ZPUk1BVF9SR0I4ODg6Ci0JCXJldHVybiBP VkxfQ09OX0NMUkZNVF9SR0I4ODg7CisJCXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I4ODgob3Zs KTsKIAljYXNlIERSTV9GT1JNQVRfQkdSODg4OgotCQlyZXR1cm4gT1ZMX0NPTl9DTFJGTVRfUkdC ODg4IHwgT1ZMX0NPTl9CWVRFX1NXQVA7CisJCXJldHVybiBPVkxfQ09OX0NMUkZNVF9SR0I4ODgo b3ZsKSB8IE9WTF9DT05fQllURV9TV0FQOwogCWNhc2UgRFJNX0ZPUk1BVF9SR0JYODg4ODoKIAlj YXNlIERSTV9GT1JNQVRfUkdCQTg4ODg6CiAJCXJldHVybiBPVkxfQ09OX0NMUkZNVF9BUkdCODg4 ODsKQEAgLTE3MCw2ICsxODAsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG92bF9mbXRfY29udmVy dCh1bnNpZ25lZCBpbnQgZm10KQogc3RhdGljIHZvaWQgbXRrX292bF9sYXllcl9jb25maWcoc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IGlkeCwKIAkJCQkgc3RydWN0IG10 a19wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7CisJc3RydWN0IG10a19kaXNwX292bCAqb3ZsID0gY29t cF90b19vdmwoY29tcCk7CiAJc3RydWN0IG10a19wbGFuZV9wZW5kaW5nX3N0YXRlICpwZW5kaW5n ID0gJnN0YXRlLT5wZW5kaW5nOwogCXVuc2lnbmVkIGludCBhZGRyID0gcGVuZGluZy0+YWRkcjsK IAl1bnNpZ25lZCBpbnQgcGl0Y2ggPSBwZW5kaW5nLT5waXRjaCAmIDB4ZmZmZjsKQEAgLTE4MSw3 ICsxOTIsNyBAQCBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2Rk cF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LAogCWlmICghcGVuZGluZy0+ZW5hYmxlKQog CQltdGtfb3ZsX2xheWVyX29mZihjb21wLCBpZHgpOwogCi0JY29uID0gb3ZsX2ZtdF9jb252ZXJ0 KGZtdCk7CisJY29uID0gb3ZsX2ZtdF9jb252ZXJ0KG92bCwgZm10KTsKIAlpZiAoaWR4ICE9IDAp CiAJCWNvbiB8PSBPVkxfQ09OX0FFTiB8IE9WTF9DT05fQUxQSEE7CiAKQEAgLTE4OSw3ICsyMDAs NyBAQCBzdGF0aWMgdm9pZCBtdGtfb3ZsX2xheWVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21w ICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4LAogCXdyaXRlbF9yZWxheGVkKHBpdGNoLCBjb21wLT5y ZWdzICsgRElTUF9SRUdfT1ZMX1BJVENIKGlkeCkpOwogCXdyaXRlbF9yZWxheGVkKHNyY19zaXpl LCBjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1NSQ19TSVpFKGlkeCkpOwogCXdyaXRlbF9yZWxh eGVkKG9mZnNldCwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9PRkZTRVQoaWR4KSk7Ci0Jd3Jp dGVsX3JlbGF4ZWQoYWRkciwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9BRERSKGlkeCkpOwor CXdyaXRlbF9yZWxheGVkKGFkZHIsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfQUREUihvdmws IGlkeCkpOwogCiAJaWYgKHBlbmRpbmctPmVuYWJsZSkKIAkJbXRrX292bF9sYXllcl9vbihjb21w LCBpZHgpOwpAQCAtMjczLDYgKzI4NCw4IEBAIHN0YXRpYyBpbnQgbXRrX2Rpc3Bfb3ZsX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiByZXQ7CiAJfQogCisJcHJp di0+ZGF0YSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOworCiAJcGxhdGZvcm1fc2V0 X2RydmRhdGEocGRldiwgcHJpdik7CiAKIAlyZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJm10a19k aXNwX292bF9jb21wb25lbnRfb3BzKTsKQEAgLTI4OSw4ICszMDIsMTQgQEAgc3RhdGljIGludCBt dGtfZGlzcF9vdmxfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJu IDA7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsX2RhdGEgbXQ4MTczX292 bF9kcml2ZXJfZGF0YSA9IHsKKwkuYWRkciA9IERJU1BfUkVHX09WTF9BRERSX01UODE3MywKKwku Zm10X3JnYjU2NV9pc18wID0gdHJ1ZSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG10a19kaXNwX292bF9kcml2ZXJfZHRfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRpYmxl ID0gIm1lZGlhdGVrLG10ODE3My1kaXNwLW92bCIsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJtZWRp YXRlayxtdDgxNzMtZGlzcC1vdmwiLAorCSAgLmRhdGEgPSAmbXQ4MTczX292bF9kcml2ZXJfZGF0 YX0sCiAJe30sCiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXRrX2Rpc3Bfb3ZsX2RyaXZl cl9kdF9tYXRjaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rp c3BfcmRtYS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX3JkbWEuYwppbmRl eCAyMWVmZjZmLi5lNWU1MzE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3BfcmRtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9y ZG1hLmMKQEAgLTM4LDYgKzM4LDExIEBACiAjZGVmaW5lIFJETUFfRklGT19VTkRFUkZMT1dfRU4J CQkJQklUKDMxKQogI2RlZmluZSBSRE1BX0ZJRk9fUFNFVURPX1NJWkUoYnl0ZXMpCQkJKCgoYnl0 ZXMpIC8gMTYpIDw8IDE2KQogI2RlZmluZSBSRE1BX09VVFBVVF9WQUxJRF9GSUZPX1RIUkVTSE9M RChieXRlcykJCSgoYnl0ZXMpIC8gMTYpCisjZGVmaW5lIFJETUFfRklGT19TSVpFKHJkbWEpCQkJ KChyZG1hKS0+ZGF0YS0+Zmlmb19zaXplKQorCitzdHJ1Y3QgbXRrX2Rpc3BfcmRtYV9kYXRhIHsK Kwl1bnNpZ25lZCBpbnQgZmlmb19zaXplOworfTsKIAogLyoqCiAgKiBzdHJ1Y3QgbXRrX2Rpc3Bf cmRtYSAtIERJU1BfUkRNQSBkcml2ZXIgc3RydWN0dXJlCkBAIC00Nyw2ICs1Miw3IEBACiBzdHJ1 Y3QgbXRrX2Rpc3BfcmRtYSB7CiAJc3RydWN0IG10a19kZHBfY29tcAkJZGRwX2NvbXA7CiAJc3Ry dWN0IGRybV9jcnRjCQkJKmNydGM7CisJY29uc3Qgc3RydWN0IG10a19kaXNwX3JkbWFfZGF0YQkq ZGF0YTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG10a19kaXNwX3JkbWEgKmNvbXBfdG9f cmRtYShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQpAQCAtMTE0LDYgKzEyMCw3IEBAIHN0YXRp YyB2b2lkIG10a19yZG1hX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25l ZCBpbnQgd2lkdGgsCiB7CiAJdW5zaWduZWQgaW50IHRocmVzaG9sZDsKIAl1bnNpZ25lZCBpbnQg cmVnOworCXN0cnVjdCBtdGtfZGlzcF9yZG1hICpyZG1hID0gY29tcF90b19yZG1hKGNvbXApOwog CiAJcmRtYV91cGRhdGVfYml0cyhjb21wLCBESVNQX1JFR19SRE1BX1NJWkVfQ09OXzAsIDB4ZmZm LCB3aWR0aCk7CiAJcmRtYV91cGRhdGVfYml0cyhjb21wLCBESVNQX1JFR19SRE1BX1NJWkVfQ09O XzEsIDB4ZmZmZmYsIGhlaWdodCk7CkBAIC0xMjYsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgbXRr X3JkbWFfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3aWR0 aCwKIAkgKi8KIAl0aHJlc2hvbGQgPSB3aWR0aCAqIGhlaWdodCAqIHZyZWZyZXNoICogNCAqIDcg LyAxMDAwMDAwOwogCXJlZyA9IFJETUFfRklGT19VTkRFUkZMT1dfRU4gfAotCSAgICAgIFJETUFf RklGT19QU0VVRE9fU0laRShTWl84SykgfAorCSAgICAgIFJETUFfRklGT19QU0VVRE9fU0laRShS RE1BX0ZJRk9fU0laRShyZG1hKSkgfAogCSAgICAgIFJETUFfT1VUUFVUX1ZBTElEX0ZJRk9fVEhS RVNIT0xEKHRocmVzaG9sZCk7CiAJd3JpdGVsKHJlZywgY29tcC0+cmVncyArIERJU1BfUkVHX1JE TUFfRklGT19DT04pOwogfQpAQCAtMjExLDYgKzIxOCw4IEBAIHN0YXRpYyBpbnQgbXRrX2Rpc3Bf cmRtYV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gcmV0Owog CX0KIAorCXByaXYtPmRhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsKKwogCXBs YXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHByaXYpOwogCiAJcmV0ID0gY29tcG9uZW50X2FkZChk ZXYsICZtdGtfZGlzcF9yZG1hX2NvbXBvbmVudF9vcHMpOwpAQCAtMjI3LDggKzIzNiwxMyBAQCBz dGF0aWMgaW50IG10a19kaXNwX3JkbWFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2Rpc3BfcmRtYV9k YXRhIG10ODE3M19yZG1hX2RyaXZlcl9kYXRhID0geworCS5maWZvX3NpemUgPSBTWl84SywKK307 CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10a19kaXNwX3JkbWFfZHJpdmVy X2R0X21hdGNoW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1y ZG1hIiwgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1kaXNwLXJkbWEiLAor CSAgLmRhdGEgPSAmbXQ4MTczX3JkbWFfZHJpdmVyX2RhdGF9LAogCXt9LAogfTsKIE1PRFVMRV9E RVZJQ0VfVEFCTEUob2YsIG10a19kaXNwX3JkbWFfZHJpdmVyX2R0X21hdGNoKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jIGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKaW5kZXggMTdiYTkzNS4uODAzMDc2OSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKQEAgLTM2LDIxICszNiwyMSBAQAogI2Rl ZmluZSBESVNQX1JFR19NVVRFWF9NT0QobikJKDB4MmMgKyAweDIwICogKG4pKQogI2RlZmluZSBE SVNQX1JFR19NVVRFWF9TT0YobikJKDB4MzAgKyAweDIwICogKG4pKQogCi0jZGVmaW5lIE1VVEVY X01PRF9ESVNQX09WTDAJCUJJVCgxMSkKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1BfT1ZMMQkJQklU KDEyKQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9SRE1BMAkJQklUKDEzKQotI2RlZmluZSBNVVRF WF9NT0RfRElTUF9SRE1BMQkJQklUKDE0KQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9SRE1BMgkJ QklUKDE1KQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9XRE1BMAkJQklUKDE2KQotI2RlZmluZSBN VVRFWF9NT0RfRElTUF9XRE1BMQkJQklUKDE3KQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9DT0xP UjAJCUJJVCgxOCkKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1BfQ09MT1IxCQlCSVQoMTkpCi0jZGVm aW5lIE1VVEVYX01PRF9ESVNQX0FBTAkJQklUKDIwKQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9H QU1NQQkJQklUKDIxKQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9VRk9FCQlCSVQoMjIpCi0jZGVm aW5lIE1VVEVYX01PRF9ESVNQX1BXTTAJCUJJVCgyMykKLSNkZWZpbmUgTVVURVhfTU9EX0RJU1Bf UFdNMQkJQklUKDI0KQotI2RlZmluZSBNVVRFWF9NT0RfRElTUF9PRAkJQklUKDI1KQorI2RlZmlu ZSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfT1ZMMAkJQklUKDExKQorI2RlZmluZSBNVDgxNzNfTVVU RVhfTU9EX0RJU1BfT1ZMMQkJQklUKDEyKQorI2RlZmluZSBNVDgxNzNfTVVURVhfTU9EX0RJU1Bf UkRNQTAJCUJJVCgxMykKKyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQX1JETUExCQlCSVQo MTQpCisjZGVmaW5lIE1UODE3M19NVVRFWF9NT0RfRElTUF9SRE1BMgkJQklUKDE1KQorI2RlZmlu ZSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfV0RNQTAJCUJJVCgxNikKKyNkZWZpbmUgTVQ4MTczX01V VEVYX01PRF9ESVNQX1dETUExCQlCSVQoMTcpCisjZGVmaW5lIE1UODE3M19NVVRFWF9NT0RfRElT UF9DT0xPUjAJCUJJVCgxOCkKKyNkZWZpbmUgTVQ4MTczX01VVEVYX01PRF9ESVNQX0NPTE9SMQkJ QklUKDE5KQorI2RlZmluZSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfQUFMCQlCSVQoMjApCisjZGVm aW5lIE1UODE3M19NVVRFWF9NT0RfRElTUF9HQU1NQQkJQklUKDIxKQorI2RlZmluZSBNVDgxNzNf TVVURVhfTU9EX0RJU1BfVUZPRQkJQklUKDIyKQorI2RlZmluZSBNVDgxNzNfTVVURVhfTU9EX0RJ U1BfUFdNMAkJQklUKDIzKQorI2RlZmluZSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfUFdNMQkJQklU KDI0KQorI2RlZmluZSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfT0QJCUJJVCgyNSkKIAogI2RlZmlu ZSBNVVRFWF9TT0ZfU0lOR0xFX01PREUJCTAKICNkZWZpbmUgTVVURVhfU09GX0RTSTAJCQkxCkBA IC03NywyNCArNzcsMjUgQEAgc3RydWN0IG10a19kZHAgewogCXN0cnVjdCBjbGsJCQkqY2xrOwog CXZvaWQgX19pb21lbQkJCSpyZWdzOwogCXN0cnVjdCBtdGtfZGlzcF9tdXRleAkJbXV0ZXhbMTBd OworCWNvbnN0IHVuc2lnbmVkIGludAkJKm11dGV4X21vZDsKIH07CiAKLXN0YXRpYyBjb25zdCB1 bnNpZ25lZCBpbnQgbXV0ZXhfbW9kW0REUF9DT01QT05FTlRfSURfTUFYXSA9IHsKLQlbRERQX0NP TVBPTkVOVF9BQUxdID0gTVVURVhfTU9EX0RJU1BfQUFMLAotCVtERFBfQ09NUE9ORU5UX0NPTE9S MF0gPSBNVVRFWF9NT0RfRElTUF9DT0xPUjAsCi0JW0REUF9DT01QT05FTlRfQ09MT1IxXSA9IE1V VEVYX01PRF9ESVNQX0NPTE9SMSwKLQlbRERQX0NPTVBPTkVOVF9HQU1NQV0gPSBNVVRFWF9NT0Rf RElTUF9HQU1NQSwKLQlbRERQX0NPTVBPTkVOVF9PRF0gPSBNVVRFWF9NT0RfRElTUF9PRCwKLQlb RERQX0NPTVBPTkVOVF9PVkwwXSA9IE1VVEVYX01PRF9ESVNQX09WTDAsCi0JW0REUF9DT01QT05F TlRfT1ZMMV0gPSBNVVRFWF9NT0RfRElTUF9PVkwxLAotCVtERFBfQ09NUE9ORU5UX1BXTTBdID0g TVVURVhfTU9EX0RJU1BfUFdNMCwKLQlbRERQX0NPTVBPTkVOVF9QV00xXSA9IE1VVEVYX01PRF9E SVNQX1BXTTEsCi0JW0REUF9DT01QT05FTlRfUkRNQTBdID0gTVVURVhfTU9EX0RJU1BfUkRNQTAs Ci0JW0REUF9DT01QT05FTlRfUkRNQTFdID0gTVVURVhfTU9EX0RJU1BfUkRNQTEsCi0JW0REUF9D T01QT05FTlRfUkRNQTJdID0gTVVURVhfTU9EX0RJU1BfUkRNQTIsCi0JW0REUF9DT01QT05FTlRf VUZPRV0gPSBNVVRFWF9NT0RfRElTUF9VRk9FLAotCVtERFBfQ09NUE9ORU5UX1dETUEwXSA9IE1V VEVYX01PRF9ESVNQX1dETUEwLAotCVtERFBfQ09NUE9ORU5UX1dETUExXSA9IE1VVEVYX01PRF9E SVNQX1dETUExLAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDgxNzNfbXV0ZXhfbW9kW0RE UF9DT01QT05FTlRfSURfTUFYXSA9IHsKKwlbRERQX0NPTVBPTkVOVF9BQUxdID0gTVQ4MTczX01V VEVYX01PRF9ESVNQX0FBTCwKKwlbRERQX0NPTVBPTkVOVF9DT0xPUjBdID0gTVQ4MTczX01VVEVY X01PRF9ESVNQX0NPTE9SMCwKKwlbRERQX0NPTVBPTkVOVF9DT0xPUjFdID0gTVQ4MTczX01VVEVY X01PRF9ESVNQX0NPTE9SMSwKKwlbRERQX0NPTVBPTkVOVF9HQU1NQV0gPSBNVDgxNzNfTVVURVhf TU9EX0RJU1BfR0FNTUEsCisJW0REUF9DT01QT05FTlRfT0RdID0gTVQ4MTczX01VVEVYX01PRF9E SVNQX09ELAorCVtERFBfQ09NUE9ORU5UX09WTDBdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX09W TDAsCisJW0REUF9DT01QT05FTlRfT1ZMMV0gPSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfT1ZMMSwK KwlbRERQX0NPTVBPTkVOVF9QV00wXSA9IE1UODE3M19NVVRFWF9NT0RfRElTUF9QV00wLAorCVtE RFBfQ09NUE9ORU5UX1BXTTFdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX1BXTTEsCisJW0REUF9D T01QT05FTlRfUkRNQTBdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX1JETUEwLAorCVtERFBfQ09N UE9ORU5UX1JETUExXSA9IE1UODE3M19NVVRFWF9NT0RfRElTUF9SRE1BMSwKKwlbRERQX0NPTVBP TkVOVF9SRE1BMl0gPSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfUkRNQTIsCisJW0REUF9DT01QT05F TlRfVUZPRV0gPSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfVUZPRSwKKwlbRERQX0NPTVBPTkVOVF9X RE1BMF0gPSBNVDgxNzNfTVVURVhfTU9EX0RJU1BfV0RNQTAsCisJW0REUF9DT01QT05FTlRfV0RN QTFdID0gTVQ4MTczX01VVEVYX01PRF9ESVNQX1dETUExLAogfTsKIAogc3RhdGljIHVuc2lnbmVk IGludCBtdGtfZGRwX21vdXRfZW4oZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLApAQCAtMjQ3LDcg KzI0OCw3IEBAIHZvaWQgbXRrX2Rpc3BfbXV0ZXhfYWRkX2NvbXAoc3RydWN0IG10a19kaXNwX211 dGV4ICptdXRleCwKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmVnID0gcmVhZGxfcmVsYXhlZChk ZHAtPnJlZ3MgKyBESVNQX1JFR19NVVRFWF9NT0QobXV0ZXgtPmlkKSk7Ci0JCXJlZyB8PSBtdXRl eF9tb2RbaWRdOworCQlyZWcgfD0gZGRwLT5tdXRleF9tb2RbaWRdOwogCQl3cml0ZWxfcmVsYXhl ZChyZWcsIGRkcC0+cmVncyArIERJU1BfUkVHX01VVEVYX01PRChtdXRleC0+aWQpKTsKIAkJcmV0 dXJuOwogCX0KQEAgLTI3Myw3ICsyNzQsNyBAQCB2b2lkIG10a19kaXNwX211dGV4X3JlbW92ZV9j b21wKHN0cnVjdCBtdGtfZGlzcF9tdXRleCAqbXV0ZXgsCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJ CXJlZyA9IHJlYWRsX3JlbGF4ZWQoZGRwLT5yZWdzICsgRElTUF9SRUdfTVVURVhfTU9EKG11dGV4 LT5pZCkpOwotCQlyZWcgJj0gfm11dGV4X21vZFtpZF07CisJCXJlZyAmPSB+KGRkcC0+bXV0ZXhf bW9kW2lkXSk7CiAJCXdyaXRlbF9yZWxheGVkKHJlZywgZGRwLT5yZWdzICsgRElTUF9SRUdfTVVU RVhfTU9EKG11dGV4LT5pZCkpOwogCQlicmVhazsKIAl9CkBAIC0zMjYsNiArMzI3LDggQEAgc3Rh dGljIGludCBtdGtfZGRwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJl dHVybiBQVFJfRVJSKGRkcC0+cmVncyk7CiAJfQogCisJZGRwLT5tdXRleF9tb2QgPSBvZl9kZXZp Y2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsKKwogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRk cCk7CiAKIAlyZXR1cm4gMDsKQEAgLTMzNyw3ICszNDAsNyBAQCBzdGF0aWMgaW50IG10a19kZHBf cmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB9CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRkcF9kcml2ZXJfZHRfbWF0Y2hbXSA9IHsKLQl7IC5jb21wYXRp YmxlID0gIm1lZGlhdGVrLG10ODE3My1kaXNwLW11dGV4IiB9LAorCXsgLmNvbXBhdGlibGUgPSAi bWVkaWF0ZWssbXQ4MTczLWRpc3AtbXV0ZXgiLCAuZGF0YSA9IG10ODE3M19tdXRleF9tb2R9LAog CXt9LAogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGRkcF9kcml2ZXJfZHRfbWF0Y2gpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMKaW5kZXggZGYzM2Iz Yy4uZDIwZjZjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZGRwX2NvbXAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29t cC5jCkBAIC0zOSw5ICszOSwxMCBAQAogI2RlZmluZSBESVNQX1JFR19VRk9fU1RBUlQJCQkweDAw MDAKIAogI2RlZmluZSBESVNQX0NPTE9SX0NGR19NQUlOCQkJMHgwNDAwCi0jZGVmaW5lIERJU1Bf Q09MT1JfU1RBUlQJCQkweDBjMDAKLSNkZWZpbmUgRElTUF9DT0xPUl9XSURUSAkJCTB4MGM1MAot I2RlZmluZSBESVNQX0NPTE9SX0hFSUdIVAkJCTB4MGM1NAorI2RlZmluZSBESVNQX0NPTE9SX1NU QVJUX01UODE3MwkJCTB4MGMwMAorI2RlZmluZSBESVNQX0NPTE9SX1NUQVJUKGNvbXApCQkJKChj b21wKS0+ZGF0YS0+Y29sb3Jfb2Zmc2V0KQorI2RlZmluZSBESVNQX0NPTE9SX1dJRFRIKGNvbXAp CQkJKERJU1BfQ09MT1JfU1RBUlQoY29tcCkgKyAweDUwKQorI2RlZmluZSBESVNQX0NPTE9SX0hF SUdIVChjb21wKQkJCShESVNQX0NPTE9SX1NUQVJUKGNvbXApICsgMHg1NCkKIAogI2RlZmluZSBE SVNQX0FBTF9FTgkJCQkweDAwMDAKICNkZWZpbmUgRElTUF9BQUxfU0laRQkJCQkweDAwMzAKQEAg LTEwNywxNSArMTA4LDE1IEBAIHN0YXRpYyB2b2lkIG10a19jb2xvcl9jb25maWcoc3RydWN0IG10 a19kZHBfY29tcCAqY29tcCwgdW5zaWduZWQgaW50IHcsCiAJCQkgICAgIHVuc2lnbmVkIGludCBo LCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsCiAJCQkgICAgIHVuc2lnbmVkIGludCBicGMpCiB7Ci0J d3JpdGVsKHcsIGNvbXAtPnJlZ3MgKyBESVNQX0NPTE9SX1dJRFRIKTsKLQl3cml0ZWwoaCwgY29t cC0+cmVncyArIERJU1BfQ09MT1JfSEVJR0hUKTsKKwl3cml0ZWwodywgY29tcC0+cmVncyArIERJ U1BfQ09MT1JfV0lEVEgoY29tcCkpOworCXdyaXRlbChoLCBjb21wLT5yZWdzICsgRElTUF9DT0xP Ul9IRUlHSFQoY29tcCkpOwogfQogCiBzdGF0aWMgdm9pZCBtdGtfY29sb3Jfc3RhcnQoc3RydWN0 IG10a19kZHBfY29tcCAqY29tcCkKIHsKIAl3cml0ZWwoQ09MT1JfQllQQVNTX0FMTCB8IENPTE9S X1NFUV9TRUwsCiAJICAgICAgIGNvbXAtPnJlZ3MgKyBESVNQX0NPTE9SX0NGR19NQUlOKTsKLQl3 cml0ZWwoMHgxLCBjb21wLT5yZWdzICsgRElTUF9DT0xPUl9TVEFSVCk7CisJd3JpdGVsKDB4MSwg Y29tcC0+cmVncyArIERJU1BfQ09MT1JfU1RBUlQoY29tcCkpOwogfQogCiBzdGF0aWMgdm9pZCBt dGtfb2RfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LApA QCAtMjY0LDYgKzI2NSwxNiBAQCBzdHJ1Y3QgbXRrX2RkcF9jb21wX21hdGNoIHsKIAlbRERQX0NP TVBPTkVOVF9XRE1BMV0JPSB7IE1US19ESVNQX1dETUEsCTEsIE5VTEwgfSwKIH07CiAKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RyaXZlcl9kYXRhIG10ODE3M19jb2xvcl9kcml2 ZXJfZGF0YSA9IHsKKwkuY29sb3Jfb2Zmc2V0ID0gRElTUF9DT0xPUl9TVEFSVF9NVDgxNzMsCit9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZGlzcF9jb2xvcl9kcml2 ZXJfZHRfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1kaXNw LWNvbG9yIiwKKwkgIC5kYXRhID0gJm10ODE3M19jb2xvcl9kcml2ZXJfZGF0YX0sCisJe30sCit9 OworCiBpbnQgbXRrX2RkcF9jb21wX2dldF9pZChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJ CQllbnVtIG10a19kZHBfY29tcF90eXBlIGNvbXBfdHlwZSkKIHsKQEAgLTI4Niw2ICsyOTcsNyBA QCBpbnQgbXRrX2RkcF9jb21wX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGUsCiAJZW51bSBtdGtfZGRwX2NvbXBfdHlwZSB0eXBlOwogCXN0cnVjdCBkZXZp Y2Vfbm9kZSAqbGFyYl9ub2RlOwogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmxhcmJfcGRldjsK Kwljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsKIAogCWlmIChjb21wX2lkIDwgMCB8 fCBjb21wX2lkID49IEREUF9DT01QT05FTlRfSURfTUFYKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAg LTMxMCw2ICszMjIsMTEgQEAgaW50IG10a19kZHBfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCiAJdHlwZSA9IG10a19kZHBfbWF0Y2hlc1tj b21wX2lkXS50eXBlOwogCisJaWYgKHR5cGUgPT0gTVRLX0RJU1BfQ09MT1IpIHsKKwkJbWF0Y2gg PSBvZl9tYXRjaF9ub2RlKG10a19kaXNwX2NvbG9yX2RyaXZlcl9kdF9tYXRjaCwgbm9kZSk7CisJ CWNvbXAtPmRhdGEgPSBtYXRjaC0+ZGF0YTsKKwl9CisKIAkvKiBPbmx5IERNQSBjYXBhYmxlIGNv bXBvbmVudHMgbmVlZCB0aGUgTEFSQiBwcm9wZXJ0eSAqLwogCWNvbXAtPmxhcmJfZGV2ID0gTlVM TDsKIAlpZiAodHlwZSAhPSBNVEtfRElTUF9PVkwgJiYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RybV9kZHBfY29tcC5oCmluZGV4IDIyYTMzZWUuLmNmYWE3NjAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaApAQCAtNzgsNiArNzgsMTAgQEAg c3RydWN0IG10a19kZHBfY29tcF9mdW5jcyB7CiAJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq c3RhdGUpOwogfTsKIAorc3RydWN0IG10a19kZHBfY29tcF9kcml2ZXJfZGF0YSB7CisJdW5zaWdu ZWQgaW50IGNvbG9yX29mZnNldDsKK307CisKIHN0cnVjdCBtdGtfZGRwX2NvbXAgewogCXN0cnVj dCBjbGsgKmNsazsKIAl2b2lkIF9faW9tZW0gKnJlZ3M7CkBAIC04NSw2ICs4OSw3IEBAIHN0cnVj dCBtdGtfZGRwX2NvbXAgewogCXN0cnVjdCBkZXZpY2UgKmxhcmJfZGV2OwogCWVudW0gbXRrX2Rk cF9jb21wX2lkIGlkOwogCWNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgKmZ1bmNzOwor CWNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZHJpdmVyX2RhdGEgKmRhdGE7CiB9OwogCiBzdGF0 aWMgaW5saW5lIHZvaWQgbXRrX2RkcF9jb21wX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpj b21wLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYwppbmRleCBjZjgzZjY1Li41 ZjliNWU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYwpAQCAtMTI2LDcg KzEyNiw3IEBAIHN0YXRpYyBpbnQgbXRrX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2Ug KmRybSwKIAkuYXRvbWljX2NvbW1pdCA9IG10a19hdG9taWNfY29tbWl0LAogfTsKIAotc3RhdGlj IGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10a19kZHBfbWFpbltdID0geworc3RhdGljIGNv bnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10ODE3M19tdGtfZGRwX21haW5bXSA9IHsKIAlERFBf Q09NUE9ORU5UX09WTDAsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjAsCiAJRERQX0NPTVBPTkVOVF9B QUwsCkBAIC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIGludCBtdGtfYXRvbWljX2NvbW1pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtLAogCUREUF9DT01QT05FTlRfUFdNMCwKIH07CiAKLXN0YXRpYyBj b25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdGtfZGRwX2V4dFtdID0geworc3RhdGljIGNvbnN0 IGVudW0gbXRrX2RkcF9jb21wX2lkIG10ODE3M19tdGtfZGRwX2V4dFtdID0gewogCUREUF9DT01Q T05FTlRfT1ZMMSwKIAlERFBfQ09NUE9ORU5UX0NPTE9SMSwKIAlERFBfQ09NUE9ORU5UX0dBTU1B LApAQCAtMTQ1LDYgKzE0NSwxMyBAQCBzdGF0aWMgaW50IG10a19hdG9taWNfY29tbWl0KHN0cnVj dCBkcm1fZGV2aWNlICpkcm0sCiAJRERQX0NPTVBPTkVOVF9EUEkwLAogfTsKIAorc3RhdGljIGNv bnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTczX21tc3lzX2RyaXZlcl9kYXRh ID0geworCS5tYWluX3BhdGggPSBtdDgxNzNfbXRrX2RkcF9tYWluLAorCS5tYWluX2xlbiA9IEFS UkFZX1NJWkUobXQ4MTczX210a19kZHBfbWFpbiksCisJLmV4dF9wYXRoID0gbXQ4MTczX210a19k ZHBfZXh0LAorCS5leHRfbGVuID0gQVJSQVlfU0laRShtdDgxNzNfbXRrX2RkcF9leHQpLAorfTsK Kwogc3RhdGljIGludCBtdGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCiB7 CiAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSA9IGRybS0+ZGV2X3ByaXZhdGU7CkBA IC0xODcsMTcgKzE5NCwxOSBAQCBzdGF0aWMgaW50IG10a19kcm1fa21zX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRybSkKIAkgKiBhbmQgZWFjaCBzdGF0aWNhbGx5IGFzc2lnbmVkIHRvIGEgY3J0 YzoKIAkgKiBPVkwwIC0+IENPTE9SMCAtPiBBQUwgLT4gT0QgLT4gUkRNQTAgLT4gVUZPRSAtPiBE U0kwIC4uLgogCSAqLwotCXJldCA9IG10a19kcm1fY3J0Y19jcmVhdGUoZHJtLCBtdGtfZGRwX21h aW4sIEFSUkFZX1NJWkUobXRrX2RkcF9tYWluKSk7CisJcmV0ID0gbXRrX2RybV9jcnRjX2NyZWF0 ZShkcm0sIHByaXZhdGUtPmRhdGEtPm1haW5fcGF0aCwKKwkJCQkgIHByaXZhdGUtPmRhdGEtPm1h aW5fbGVuKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJfY29tcG9uZW50X3VuYmluZDsKIAkv KiAuLi4gYW5kIE9WTDEgLT4gQ09MT1IxIC0+IEdBTU1BIC0+IFJETUExIC0+IERQSTAuICovCi0J cmV0ID0gbXRrX2RybV9jcnRjX2NyZWF0ZShkcm0sIG10a19kZHBfZXh0LCBBUlJBWV9TSVpFKG10 a19kZHBfZXh0KSk7CisJcmV0ID0gbXRrX2RybV9jcnRjX2NyZWF0ZShkcm0sIHByaXZhdGUtPmRh dGEtPmV4dF9wYXRoLAorCQkJCSAgcHJpdmF0ZS0+ZGF0YS0+ZXh0X2xlbik7CiAJaWYgKHJldCA8 IDApCiAJCWdvdG8gZXJyX2NvbXBvbmVudF91bmJpbmQ7CiAKIAkvKiBVc2UgT1ZMIGRldmljZSBm b3IgYWxsIERNQSBtZW1vcnkgYWxsb2NhdGlvbnMgKi8KLQlucCA9IHByaXZhdGUtPmNvbXBfbm9k ZVttdGtfZGRwX21haW5bMF1dID86Ci0JICAgICBwcml2YXRlLT5jb21wX25vZGVbbXRrX2RkcF9l eHRbMF1dOworCW5wID0gcHJpdmF0ZS0+Y29tcF9ub2RlW3ByaXZhdGUtPmRhdGEtPm1haW5fcGF0 aFswXV0gPzoKKwkgICAgIHByaXZhdGUtPmNvbXBfbm9kZVtwcml2YXRlLT5kYXRhLT5leHRfcGF0 aFswXV07CiAJcGRldiA9IG9mX2ZpbmRfZGV2aWNlX2J5X25vZGUobnApOwogCWlmICghcGRldikg ewogCQlyZXQgPSAtRU5PREVWOwpAQCAtMzYyLDYgKzM3MSw3IEBAIHN0YXRpYyBpbnQgbXRrX2Ry bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJbXV0ZXhfaW5pdCgmcHJp dmF0ZS0+Y29tbWl0LmxvY2spOwogCUlOSVRfV09SSygmcHJpdmF0ZS0+Y29tbWl0LndvcmssIG10 a19hdG9taWNfd29yayk7CisJcHJpdmF0ZS0+ZGF0YSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0 YShkZXYpOwogCiAJbWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0Vf TUVNLCAwKTsKIAlwcml2YXRlLT5jb25maWdfcmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShk ZXYsIG1lbSk7CkBAIC01MTIsNyArNTIyLDggQEAgc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKG10 a19kcm1fcG1fb3BzLCBtdGtfZHJtX3N5c19zdXNwZW5kLAogCQkJIG10a19kcm1fc3lzX3Jlc3Vt ZSk7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10a19kcm1fb2ZfaWRzW10g PSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtbW1zeXMiLCB9LAorCXsgLmNv bXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLW1tc3lzIiwKKwkgIC5kYXRhID0gJm10ODE3M19t bXN5c19kcml2ZXJfZGF0YX0sCiAJeyB9CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZHJtX2Rydi5oCmluZGV4IGFhOTM4OTQuLmZhMGIxMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHJtX2Rydi5oCkBAIC0yOCw2ICsyOCwxMyBAQAogc3RydWN0IGRybV9wcm9wZXJ0eTsK IHN0cnVjdCByZWdtYXA7CiAKK3N0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgeworCWNvbnN0 IGVudW0gbXRrX2RkcF9jb21wX2lkICptYWluX3BhdGg7CisJdW5zaWduZWQgaW50IG1haW5fbGVu OworCWNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkICpleHRfcGF0aDsKKwl1bnNpZ25lZCBpbnQg ZXh0X2xlbjsKK307CisKIHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgewogCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm07CiAJc3RydWN0IGRldmljZSAqZG1hX2RldjsKQEAgLTQwLDYgKzQ3LDcgQEAgc3Ry dWN0IG10a19kcm1fcHJpdmF0ZSB7CiAJdm9pZCBfX2lvbWVtICpjb25maWdfcmVnczsKIAlzdHJ1 Y3QgZGV2aWNlX25vZGUgKmNvbXBfbm9kZVtERFBfQ09NUE9ORU5UX0lEX01BWF07CiAJc3RydWN0 IG10a19kZHBfY29tcCAqZGRwX2NvbXBbRERQX0NPTVBPTkVOVF9JRF9NQVhdOworCWNvbnN0IHN0 cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgKmRhdGE7CiAKIAlzdHJ1Y3QgewogCQlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX21pcGlfdHguYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWlwaV90 eC5jCmluZGV4IDFjMzY2ZjguLmM0YTAxNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfbWlwaV90eC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf bWlwaV90eC5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNp bmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUg PGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgog I2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KIApAQCAtODcsNiArODgsOSBAQAogCiAjZGVmaW5l IE1JUElUWF9EU0lfUExMX0NPTjIJMHg1OAogCisjZGVmaW5lIE1JUElUWF9EU0lfUExMX1RPUAkw eDY0CisjZGVmaW5lIFJHX0RTSV9NUFBMTF9QUkVTRVJWRQkJKDB4ZmYgPDwgOCkKKwogI2RlZmlu ZSBNSVBJVFhfRFNJX1BMTF9QV1IJMHg2OAogI2RlZmluZSBSR19EU0lfTVBQTExfU0RNX1BXUl9P TgkJQklUKDApCiAjZGVmaW5lIFJHX0RTSV9NUFBMTF9TRE1fSVNPX0VOCQlCSVQoMSkKQEAgLTEy MywxMCArMTI3LDE1IEBACiAjZGVmaW5lIFNXX0xOVDJfSFNUWF9QUkVfT0UJCUJJVCgyNCkKICNk ZWZpbmUgU1dfTE5UMl9IU1RYX09FCQkJQklUKDI1KQogCitzdHJ1Y3QgbXRrX21pcGl0eF9kYXRh IHsKKwljb25zdCB1MzIgbXBwbGxfcHJlc2VydmU7Cit9OworCiBzdHJ1Y3QgbXRrX21pcGlfdHgg ewogCXN0cnVjdCBkZXZpY2UgKmRldjsKIAl2b2lkIF9faW9tZW0gKnJlZ3M7CiAJdW5zaWduZWQg aW50IGRhdGFfcmF0ZTsKKwljb25zdCBzdHJ1Y3QgbXRrX21pcGl0eF9kYXRhICpkcml2ZXJfZGF0 YTsKIAlzdHJ1Y3QgY2xrX2h3IHBsbF9odzsKIAlzdHJ1Y3QgY2xrICpwbGw7CiB9OwpAQCAtMjQz LDYgKzI1MiwxMCBAQCBzdGF0aWMgaW50IG10a19taXBpX3R4X3BsbF9wcmVwYXJlKHN0cnVjdCBj bGtfaHcgKmh3KQogCW10a19taXBpX3R4X2NsZWFyX2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9Q TExfQ09OMSwKIAkJCSAgICAgICBSR19EU0lfTVBQTExfU0RNX1NTQ19FTik7CiAKKwltdGtfbWlw aV90eF91cGRhdGVfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9UT1AsCisJCQkJUkdfRFNJ X01QUExMX1BSRVNFUlZFLAorCQkJCW1pcGlfdHgtPmRyaXZlcl9kYXRhLT5tcHBsbF9wcmVzZXJ2 ZSk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjU1LDYgKzI2OCw5IEBAIHN0YXRpYyB2b2lkIG10 a19taXBpX3R4X3BsbF91bnByZXBhcmUoc3RydWN0IGNsa19odyAqaHcpCiAJbXRrX21pcGlfdHhf Y2xlYXJfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9DT04wLAogCQkJICAgICAgIFJHX0RT SV9NUFBMTF9QTExfRU4pOwogCisJbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQ SVRYX0RTSV9QTExfVE9QLAorCQkJCVJHX0RTSV9NUFBMTF9QUkVTRVJWRSwgMCk7CisKIAltdGtf bWlwaV90eF91cGRhdGVfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9QV1IsCiAJCQkJUkdf RFNJX01QUExMX1NETV9JU09fRU4gfAogCQkJCVJHX0RTSV9NUFBMTF9TRE1fUFdSX09OLApAQCAt MzkxLDYgKzQwNyw3IEBAIHN0YXRpYyBpbnQgbXRrX21pcGlfdHhfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKIAlpZiAoIW1pcGlfdHgpCiAJCXJldHVybiAtRU5PTUVNOwogCisJ bWlwaV90eC0+ZHJpdmVyX2RhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsKIAlt ZW0gPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCW1p cGlfdHgtPnJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOwogCWlmIChJU19F UlIobWlwaV90eC0+cmVncykpIHsKQEAgLTQ0OCw4ICs0NjUsMTMgQEAgc3RhdGljIGludCBtdGtf bWlwaV90eF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlyZXR1cm4gMDsK IH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbWlwaXR4X2RhdGEgbXQ4MTczX21pcGl0eF9k YXRhID0geworCS5tcHBsbF9wcmVzZXJ2ZSA9ICgwIDw8IDgpCit9OworCiBzdGF0aWMgY29uc3Qg c3RydWN0IG9mX2RldmljZV9pZCBtdGtfbWlwaV90eF9tYXRjaFtdID0gewotCXsgLmNvbXBhdGli bGUgPSAibWVkaWF0ZWssbXQ4MTczLW1pcGktdHgiLCB9LAorCXsgLmNvbXBhdGlibGUgPSAibWVk aWF0ZWssbXQ4MTczLW1pcGktdHgiLAorCSAgLmRhdGEgPSAmbXQ4MTczX21pcGl0eF9kYXRhIH0s CiAJe30sCiB9OwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==