From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liu Ying Subject: [PATCH v3 06/10] drm/imx: Remove encoders' ->prepare callbacks Date: Mon, 4 Jul 2016 15:40:35 +0800 Message-ID: <1467618039-7457-7-git-send-email-gnuiyl@gmail.com> References: <1467618039-7457-1-git-send-email-gnuiyl@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0066.outbound.protection.outlook.com [104.47.34.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id E27086E3B7 for ; Mon, 4 Jul 2016 07:57:06 +0000 (UTC) In-Reply-To: <1467618039-7457-1-git-send-email-gnuiyl@gmail.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 Cc: Russell King , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org VGhlIG1haW4gdGFzayBvZiBpbXggZW5jb2RlcnMnIC0+cHJlcGFyZSBjYWxsYmFja3MgaXMgdG8g c2V0IGJ1c19mb3JtYXQsCmJ1c19mbGFncywgZGlfdnN5bmNfcGluIGFuZCBkaV9oc3luY19waW4u ICBXZSBtYXkgY3JlYXRlIGEgc3RydWN0dXJlIG5hbWVkCmlteF9lbmNvZGVyIHRvIGNhY2hlIHRo ZW0uICBUaGUgYXRvbWljIGVuY29kZXIgY2FsbGJhY2sgLT5kaXNhYmxlIG1heQpyZXBsYWNlIC0+ cHJlcGFyZSBsYXRlciwgc28gbGV0J3MgcmVtb3ZlIC0+cHJlcGFyZS4KClNpZ25lZC1vZmYtYnk6 IExpdSBZaW5nIDxnbnVpeWxAZ21haWwuY29tPgotLS0KdjItPnYzOgoqIE5ld2x5IGludHJvZHVj ZWQuCiAgVGhlIGxvZ2ljIGlzIHBpY2tlZCBmcm9tIHBhdGNoIDA3LzEwIGluIHYyIHRvIGdlbmVy YXRlIGEgc2VsZi1jb250YWluZWQKICBwYXRjaC4KCiBkcml2ZXJzL2dwdS9kcm0vaW14L2R3X2hk bWktaW14LmMgICAgICB8ICAxOCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS1j b3JlLmMgICAgIHwgIDM5IC0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJt LmggICAgICAgICAgfCAgMTggKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYyAg ICAgICAgICB8IDEwOSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pbXgvaW14LXR2ZS5jICAgICAgICAgIHwgIDU4ICsrKysrKystLS0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMgICAgICAgfCAgMzggKysrKy0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyB8ICA1NiArKysrKysrKyst LS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwgMjAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXguYyBiL2Ry aXZlcnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXguYwppbmRleCBhMjQ2MzFmZC4uNWY2NDY3NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9kd19oZG1pLWlteC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXguYwpAQCAtMjIsOSArMjIsMTEgQEAKIAogI2luY2x1 ZGUgImlteC1kcm0uaCIKIAorI2RlZmluZSBpbXhfZW5jX3RvX2lteF9oZG1pKHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgaW14X2hkbWksIGlteF9lbmNvZGVyKQorCiBzdHJ1Y3QgaW14X2hkbWkg ewogCXN0cnVjdCBkZXZpY2UgKmRldjsKLQlzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsKKwlz dHJ1Y3QgaW14X2RybV9lbmNvZGVyIGlteF9lbmNvZGVyOwogCXN0cnVjdCByZWdtYXAgKnJlZ21h cDsKIH07CiAKQEAgLTExNyw3ICsxMTksOCBAQCBzdGF0aWMgdm9pZCBkd19oZG1pX2lteF9lbmNv ZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAogc3RhdGljIHZvaWQg ZHdfaGRtaV9pbXhfZW5jb2Rlcl9jb21taXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQog ewotCXN0cnVjdCBpbXhfaGRtaSAqaGRtaSA9IGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3Qg aW14X2hkbWksIGVuY29kZXIpOworCXN0cnVjdCBpbXhfZHJtX2VuY29kZXIgKmlteF9lbmNvZGVy ID0gZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7CisJc3RydWN0IGlteF9oZG1pICpoZG1pID0gaW14 X2VuY190b19pbXhfaGRtaShpbXhfZW5jb2Rlcik7CiAJaW50IG11eCA9IGRybV9vZl9lbmNvZGVy X2FjdGl2ZV9wb3J0X2lkKGhkbWktPmRldi0+b2Zfbm9kZSwgZW5jb2Rlcik7CiAKIAlyZWdtYXBf dXBkYXRlX2JpdHMoaGRtaS0+cmVnbWFwLCBJT01VWENfR1BSMywKQEAgLTEyNSwxNCArMTI4LDgg QEAgc3RhdGljIHZvaWQgZHdfaGRtaV9pbXhfZW5jb2Rlcl9jb21taXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogCQkJICAgbXV4IDw8IElNWDZRX0dQUjNfSERNSV9NVVhfQ1RMX1NISUZU KTsKIH0KIAotc3RhdGljIHZvaWQgZHdfaGRtaV9pbXhfZW5jb2Rlcl9wcmVwYXJlKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKLXsKLQlpbXhfZHJtX3NldF9idXNfZm9ybWF0KGVuY29kZXIs IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQpOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBkd19oZG1pX2lteF9lbmNvZGVyX2hlbHBlcl9mdW5jcyA9 IHsKIAkubW9kZV9zZXQgICA9IGR3X2hkbWlfaW14X2VuY29kZXJfbW9kZV9zZXQsCi0JLnByZXBh cmUgICAgPSBkd19oZG1pX2lteF9lbmNvZGVyX3ByZXBhcmUsCiAJLmNvbW1pdCAgICAgPSBkd19o ZG1pX2lteF9lbmNvZGVyX2NvbW1pdCwKIAkuZGlzYWJsZSAgICA9IGR3X2hkbWlfaW14X2VuY29k ZXJfZGlzYWJsZSwKIH07CkBAIC0yMTUsNyArMjEyLDEwIEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9p bXhfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAltYXRj aCA9IG9mX21hdGNoX25vZGUoZHdfaGRtaV9pbXhfZHRfaWRzLCBwZGV2LT5kZXYub2Zfbm9kZSk7 CiAJcGxhdF9kYXRhID0gbWF0Y2gtPmRhdGE7CiAJaGRtaS0+ZGV2ID0gJnBkZXYtPmRldjsKLQll bmNvZGVyID0gJmhkbWktPmVuY29kZXI7CisJZW5jb2RlciA9ICZoZG1pLT5pbXhfZW5jb2Rlci5l bmNvZGVyOworCWhkbWktPmlteF9lbmNvZGVyLmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JH Qjg4OF8xWDI0OworCWhkbWktPmlteF9lbmNvZGVyLmRpX2hzeW5jX3BpbiA9IDI7CisJaGRtaS0+ aW14X2VuY29kZXIuZGlfdnN5bmNfcGluID0gMzsKIAogCWlycSA9IHBsYXRmb3JtX2dldF9pcnEo cGRldiwgMCk7CiAJaWYgKGlycSA8IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14 L2lteC1kcm0tY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYwppbmRl eCBiNWE1MTczLi5mNmU0NGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1k cm0tY29yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS1jb3JlLmMKQEAgLTg1 LDQ1ICs4NSw2IEBAIHN0YXRpYyBpbnQgaW14X2RybV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1f ZGV2aWNlICpkcm0pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW14X2RybV9jcnRj ICppbXhfZHJtX2ZpbmRfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCi17Ci0Jc3RydWN0IGlt eF9kcm1fZGV2aWNlICppbXhkcm0gPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwotCXVuc2lnbmVk IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0NSVEM7IGkrKykKLQkJaWYgKGlteGRybS0+Y3J0 Y1tpXSAmJiBpbXhkcm0tPmNydGNbaV0tPmNydGMgPT0gY3J0YykKLQkJCXJldHVybiBpbXhkcm0t PmNydGNbaV07Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQotaW50IGlteF9kcm1fc2V0X2J1c19jb25m aWcoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIgYnVzX2Zvcm1hdCwKLQkJaW50IGhz eW5jX3BpbiwgaW50IHZzeW5jX3BpbiwgdTMyIGJ1c19mbGFncykKLXsKLQlzdHJ1Y3QgaW14X2Ry bV9jcnRjX2hlbHBlcl9mdW5jcyAqaGVscGVyOwotCXN0cnVjdCBpbXhfZHJtX2NydGMgKmlteF9j cnRjOwotCi0JaW14X2NydGMgPSBpbXhfZHJtX2ZpbmRfY3J0YyhlbmNvZGVyLT5jcnRjKTsKLQlp ZiAoIWlteF9jcnRjKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWhlbHBlciA9ICZpbXhfY3J0Yy0+ aW14X2RybV9oZWxwZXJfZnVuY3M7Ci0JaWYgKGhlbHBlci0+c2V0X2ludGVyZmFjZV9waXhfZm10 KQotCQlyZXR1cm4gaGVscGVyLT5zZXRfaW50ZXJmYWNlX3BpeF9mbXQoZW5jb2Rlci0+Y3J0YywK LQkJCQkJYnVzX2Zvcm1hdCwgaHN5bmNfcGluLCB2c3luY19waW4sCi0JCQkJCWJ1c19mbGFncyk7 Ci0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChpbXhfZHJtX3NldF9idXNfY29uZmln KTsKLQotaW50IGlteF9kcm1fc2V0X2J1c19mb3JtYXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLCB1MzIgYnVzX2Zvcm1hdCkKLXsKLQlyZXR1cm4gaW14X2RybV9zZXRfYnVzX2NvbmZpZyhl bmNvZGVyLCBidXNfZm9ybWF0LCAyLCAzLAotCQkJCSAgICAgIERSTV9CVVNfRkxBR19ERV9ISUdI IHwKLQkJCQkgICAgICBEUk1fQlVTX0ZMQUdfUElYREFUQV9ORUdFREdFKTsKLX0KLUVYUE9SVF9T WU1CT0xfR1BMKGlteF9kcm1fc2V0X2J1c19mb3JtYXQpOwotCiBpbnQgaW14X2RybV9jcnRjX3Zi bGFua19nZXQoc3RydWN0IGlteF9kcm1fY3J0YyAqaW14X2RybV9jcnRjKQogewogCXJldHVybiBk cm1fY3J0Y192YmxhbmtfZ2V0KGlteF9kcm1fY3J0Yy0+Y3J0Yyk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaW14L2lteC1kcm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS5o CmluZGV4IDc0MzIwYTEuLjM5Y2VmMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgv aW14LWRybS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS5oCkBAIC0xNSwxMiAr MTUsMTkgQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZTsKIAogdW5zaWduZWQgaW50IGlteF9kcm1f Y3J0Y19pZChzdHJ1Y3QgaW14X2RybV9jcnRjICpjcnRjKTsKIAorc3RydWN0IGlteF9kcm1fZW5j b2RlciB7CisJc3RydWN0IGRybV9lbmNvZGVyCQkJZW5jb2RlcjsKKwl1MzIJCQkJCWJ1c19mb3Jt YXQ7CisJdTMyCQkJCQlidXNfZmxhZ3M7CisJaW50CQkJCQlkaV9oc3luY19waW47CisJaW50CQkJ CQlkaV92c3luY19waW47Cit9OworCisjZGVmaW5lIGVuY190b19pbXhfZW5jKHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgaW14X2RybV9lbmNvZGVyLCBlbmNvZGVyKQorCiBzdHJ1Y3QgaW14X2Ry bV9jcnRjX2hlbHBlcl9mdW5jcyB7CiAJaW50ICgqZW5hYmxlX3ZibGFuaykoc3RydWN0IGRybV9j cnRjICpjcnRjKTsKIAl2b2lkICgqZGlzYWJsZV92YmxhbmspKHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yyk7Ci0JaW50ICgqc2V0X2ludGVyZmFjZV9waXhfZm10KShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Ci0JCQl1MzIgYnVzX2Zvcm1hdCwgaW50IGhzeW5jX3BpbiwgaW50IHZzeW5jX3BpbiwKLQkJCXUz MiBidXNfZmxhZ3MpOwogCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgKmNydGNf aGVscGVyX2Z1bmNzOwogCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyAqY3J0Y19mdW5jczsK IH07CkBAIC00MiwxMSArNDksNiBAQCB2b2lkIGlteF9kcm1fbW9kZV9jb25maWdfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtKTsKIAogc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqaW14X2Ry bV9mYl9nZXRfb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKIAotaW50IGlteF9kcm1f c2V0X2J1c19jb25maWcoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIgYnVzX2Zvcm1h dCwKLQkJaW50IGhzeW5jX3BpbiwgaW50IHZzeW5jX3BpbiwgdTMyIGJ1c19mbGFncyk7Ci1pbnQg aW14X2RybV9zZXRfYnVzX2Zvcm1hdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCi0JCXUz MiBidXNfZm9ybWF0KTsKLQogaW50IGlteF9kcm1fZW5jb2Rlcl9wYXJzZV9vZihzdHJ1Y3QgZHJt X2RldmljZSAqZHJtLAogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRldmlj ZV9ub2RlICpucCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5j IGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKaW5kZXggMTJiZjM2OC4uNGE5OGVhYSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2lteC9pbXgtbGRiLmMKQEAgLTUxLDE0ICs1MSwxNSBAQAogI2RlZmluZSBMREJfQkdS RUZfUk1PREVfSU5UCQkoMSA8PCAxNSkKIAogI2RlZmluZSBjb25fdG9faW14X2xkYl9jaCh4KSBj b250YWluZXJfb2YoeCwgc3RydWN0IGlteF9sZGJfY2hhbm5lbCwgY29ubmVjdG9yKQotI2RlZmlu ZSBlbmNfdG9faW14X2xkYl9jaCh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlteF9sZGJfY2hh bm5lbCwgZW5jb2RlcikKKyNkZWZpbmUgaW14X2VuY190b19pbXhfbGRiX2NoKHgpCVwKKwkJCWNv bnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW14X2xkYl9jaGFubmVsLCBpbXhfZW5jb2RlcikKIAogc3Ry dWN0IGlteF9sZGI7CiAKIHN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgewogCXN0cnVjdCBpbXhfbGRi ICpsZGI7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwotCXN0cnVjdCBkcm1fZW5j b2RlciBlbmNvZGVyOworCXN0cnVjdCBpbXhfZHJtX2VuY29kZXIgaW14X2VuY29kZXI7CiAJc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWw7CiAJc3RydWN0IGRldmljZV9ub2RlICpjaGlsZDsKIAlzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmRkYzsKQEAgLTY3LDcgKzY4LDYgQEAgc3RydWN0IGlteF9sZGJfY2hh bm5lbCB7CiAJaW50IGVkaWRfbGVuOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIG1vZGU7CiAJ aW50IG1vZGVfdmFsaWQ7Ci0JaW50IGJ1c19mb3JtYXQ7CiB9OwogCiBzdHJ1Y3QgYnVzX211eCB7 CkBAIC0xMDQsOCArMTA0LDggQEAgc3RhdGljIGludCBpbXhfbGRiX2Nvbm5lY3Rvcl9nZXRfbW9k ZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJc3RydWN0IGRybV9kaXNwbGF5 X2luZm8gKmRpID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwogCiAJCW51bV9tb2RlcyA9IGlt eF9sZGJfY2gtPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKGlteF9sZGJfY2gtPnBhbmVsKTsKLQkJ aWYgKCFpbXhfbGRiX2NoLT5idXNfZm9ybWF0ICYmIGRpLT5udW1fYnVzX2Zvcm1hdHMpCi0JCQlp bXhfbGRiX2NoLT5idXNfZm9ybWF0ID0gZGktPmJ1c19mb3JtYXRzWzBdOworCQlpZiAoIWlteF9s ZGJfY2gtPmlteF9lbmNvZGVyLmJ1c19mb3JtYXQgJiYgZGktPm51bV9idXNfZm9ybWF0cykKKwkJ CWlteF9sZGJfY2gtPmlteF9lbmNvZGVyLmJ1c19mb3JtYXQgPSBkaS0+YnVzX2Zvcm1hdHNbMF07 CiAJCWlmIChudW1fbW9kZXMgPiAwKQogCQkJcmV0dXJuIG51bV9tb2RlczsKIAl9CkBAIC0xMzks NyArMTM5LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqaW14X2xkYl9jb25uZWN0b3Jf YmVzdF9lbmNvZGVyKAogewogCXN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmlteF9sZGJfY2ggPSBj b25fdG9faW14X2xkYl9jaChjb25uZWN0b3IpOwogCi0JcmV0dXJuICZpbXhfbGRiX2NoLT5lbmNv ZGVyOworCXJldHVybiAmaW14X2xkYl9jaC0+aW14X2VuY29kZXIuZW5jb2RlcjsKIH0KIAogc3Rh dGljIHZvaWQgaW14X2xkYl9lbmNvZGVyX2RwbXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LCBpbnQgbW9kZSkKQEAgLTE3NCw0NSArMTc0LDEwIEBAIHN0YXRpYyB2b2lkIGlteF9sZGJfc2V0 X2Nsb2NrKHN0cnVjdCBpbXhfbGRiICpsZGIsIGludCBtdXgsIGludCBjaG5vLAogCQkJY2hubyk7 CiB9CiAKLXN0YXRpYyB2b2lkIGlteF9sZGJfZW5jb2Rlcl9wcmVwYXJlKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcikKLXsKLQlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0g ZW5jX3RvX2lteF9sZGJfY2goZW5jb2Rlcik7Ci0Jc3RydWN0IGlteF9sZGIgKmxkYiA9IGlteF9s ZGJfY2gtPmxkYjsKLQlpbnQgZHVhbCA9IGxkYi0+bGRiX2N0cmwgJiBMREJfU1BMSVRfTU9ERV9F TjsKLQl1MzIgYnVzX2Zvcm1hdDsKLQotCXN3aXRjaCAoaW14X2xkYl9jaC0+YnVzX2Zvcm1hdCkg ewotCWRlZmF1bHQ6Ci0JCWRldl93YXJuKGxkYi0+ZGV2LAotCQkJICJjb3VsZCBub3QgZGV0ZXJt aW5lIGRhdGEgbWFwcGluZywgZGVmYXVsdCB0byAxOC1iaXQgXCJzcHdnXCJcbiIpOwotCQkvKiBm YWxsdGhyb3VnaCAqLwotCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I2NjZfMVg3WDNfU1BXRzoKLQkJ YnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMTg7Ci0JCWJyZWFrOwotCWNhc2Ug TUVESUFfQlVTX0ZNVF9SR0I4ODhfMVg3WDRfU1BXRzoKLQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JV U19GTVRfUkdCODg4XzFYMjQ7Ci0JCWlmIChpbXhfbGRiX2NoLT5jaG5vID09IDAgfHwgZHVhbCkK LQkJCWxkYi0+bGRiX2N0cmwgfD0gTERCX0RBVEFfV0lEVEhfQ0gwXzI0OwotCQlpZiAoaW14X2xk Yl9jaC0+Y2hubyA9PSAxIHx8IGR1YWwpCi0JCQlsZGItPmxkYl9jdHJsIHw9IExEQl9EQVRBX1dJ RFRIX0NIMV8yNDsKLQkJYnJlYWs7Ci0JY2FzZSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDdYNF9K RUlEQToKLQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7Ci0JCWlmIChp bXhfbGRiX2NoLT5jaG5vID09IDAgfHwgZHVhbCkKLQkJCWxkYi0+bGRiX2N0cmwgfD0gTERCX0RB VEFfV0lEVEhfQ0gwXzI0IHwKLQkJCQkJIExEQl9CSVRfTUFQX0NIMF9KRUlEQTsKLQkJaWYgKGlt eF9sZGJfY2gtPmNobm8gPT0gMSB8fCBkdWFsKQotCQkJbGRiLT5sZGJfY3RybCB8PSBMREJfREFU QV9XSURUSF9DSDFfMjQgfAotCQkJCQkgTERCX0JJVF9NQVBfQ0gxX0pFSURBOwotCQlicmVhazsK LQl9Ci0KLQlpbXhfZHJtX3NldF9idXNfZm9ybWF0KGVuY29kZXIsIGJ1c19mb3JtYXQpOwotfQot CiBzdGF0aWMgdm9pZCBpbXhfbGRiX2VuY29kZXJfY29tbWl0KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gZW5jX3Rv X2lteF9sZGJfY2goZW5jb2Rlcik7CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29k ZXIgPSBlbmNfdG9faW14X2VuYyhlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICpp bXhfbGRiX2NoID0gaW14X2VuY190b19pbXhfbGRiX2NoKGlteF9lbmNvZGVyKTsKIAlzdHJ1Y3Qg aW14X2xkYiAqbGRiID0gaW14X2xkYl9jaC0+bGRiOwogCWludCBkdWFsID0gbGRiLT5sZGJfY3Ry bCAmIExEQl9TUExJVF9NT0RFX0VOOwogCWludCBtdXggPSBkcm1fb2ZfZW5jb2Rlcl9hY3RpdmVf cG9ydF9pZChpbXhfbGRiX2NoLT5jaGlsZCwgZW5jb2Rlcik7CkBAIC0yNjAsNyArMjI1LDggQEAg c3RhdGljIHZvaWQgaW14X2xkYl9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciwKIAkJCSBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqb3JpZ19tb2RlLAogCQkJIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogewotCXN0cnVjdCBpbXhfbGRiX2NoYW5uZWwg KmlteF9sZGJfY2ggPSBlbmNfdG9faW14X2xkYl9jaChlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X2Ry bV9lbmNvZGVyICppbXhfZW5jb2RlciA9IGVuY190b19pbXhfZW5jKGVuY29kZXIpOworCXN0cnVj dCBpbXhfbGRiX2NoYW5uZWwgKmlteF9sZGJfY2ggPSBpbXhfZW5jX3RvX2lteF9sZGJfY2goaW14 X2VuY29kZXIpOwogCXN0cnVjdCBpbXhfbGRiICpsZGIgPSBpbXhfbGRiX2NoLT5sZGI7CiAJaW50 IGR1YWwgPSBsZGItPmxkYl9jdHJsICYgTERCX1NQTElUX01PREVfRU47CiAJdW5zaWduZWQgbG9u ZyBzZXJpYWxfY2xrOwpAQCAtMzAzLDcgKzI2OSw4IEBAIHN0YXRpYyB2b2lkIGlteF9sZGJfZW5j b2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAKIHN0YXRpYyB2b2lk IGlteF9sZGJfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsK LQlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gZW5jX3RvX2lteF9sZGJfY2go ZW5jb2Rlcik7CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9f aW14X2VuYyhlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0g aW14X2VuY190b19pbXhfbGRiX2NoKGlteF9lbmNvZGVyKTsKIAlzdHJ1Y3QgaW14X2xkYiAqbGRi ID0gaW14X2xkYl9jaC0+bGRiOwogCWludCBtdXgsIHJldDsKIApAQCAtMzc5LDcgKzM0Niw2IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW14X2xkYl9lbmNvZGVyX2Z1 bmNzID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBp bXhfbGRiX2VuY29kZXJfaGVscGVyX2Z1bmNzID0gewogCS5kcG1zID0gaW14X2xkYl9lbmNvZGVy X2RwbXMsCi0JLnByZXBhcmUgPSBpbXhfbGRiX2VuY29kZXJfcHJlcGFyZSwKIAkuY29tbWl0ID0g aW14X2xkYl9lbmNvZGVyX2NvbW1pdCwKIAkubW9kZV9zZXQgPSBpbXhfbGRiX2VuY29kZXJfbW9k ZV9zZXQsCiAJLmRpc2FibGUgPSBpbXhfbGRiX2VuY29kZXJfZGlzYWJsZSwKQEAgLTQwNiw3ICsz NzIsNyBAQCBzdGF0aWMgaW50IGlteF9sZGJfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRy bSwKIAlzdHJ1Y3QgaW14X2xkYiAqbGRiID0gaW14X2xkYl9jaC0+bGRiOwogCWludCByZXQ7CiAK LQlyZXQgPSBpbXhfZHJtX2VuY29kZXJfcGFyc2Vfb2YoZHJtLCAmaW14X2xkYl9jaC0+ZW5jb2Rl ciwKKwlyZXQgPSBpbXhfZHJtX2VuY29kZXJfcGFyc2Vfb2YoZHJtLCAmaW14X2xkYl9jaC0+aW14 X2VuY29kZXIuZW5jb2RlciwKIAkJCQkgICAgICAgaW14X2xkYl9jaC0+Y2hpbGQpOwogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CkBAIC00MjEsMTAgKzM4NywxMCBAQCBzdGF0aWMgaW50IGlteF9s ZGJfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAkJCXJldHVybiByZXQ7CiAJfQog Ci0JZHJtX2VuY29kZXJfaGVscGVyX2FkZCgmaW14X2xkYl9jaC0+ZW5jb2RlciwKKwlkcm1fZW5j b2Rlcl9oZWxwZXJfYWRkKCZpbXhfbGRiX2NoLT5pbXhfZW5jb2Rlci5lbmNvZGVyLAogCQkJJmlt eF9sZGJfZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOwotCWRybV9lbmNvZGVyX2luaXQoZHJtLCAmaW14 X2xkYl9jaC0+ZW5jb2RlciwgJmlteF9sZGJfZW5jb2Rlcl9mdW5jcywKLQkJCSBEUk1fTU9ERV9F TkNPREVSX0xWRFMsIE5VTEwpOworCWRybV9lbmNvZGVyX2luaXQoZHJtLCAmaW14X2xkYl9jaC0+ aW14X2VuY29kZXIuZW5jb2RlciwKKwkJCSAmaW14X2xkYl9lbmNvZGVyX2Z1bmNzLCBEUk1fTU9E RV9FTkNPREVSX0xWRFMsIE5VTEwpOwogCiAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZpbXhf bGRiX2NoLT5jb25uZWN0b3IsCiAJCQkmaW14X2xkYl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsK QEAgLTQzNSw3ICs0MDEsNyBAQCBzdGF0aWMgaW50IGlteF9sZGJfcmVnaXN0ZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRybSwKIAkJZHJtX3BhbmVsX2F0dGFjaChpbXhfbGRiX2NoLT5wYW5lbCwgJmlt eF9sZGJfY2gtPmNvbm5lY3Rvcik7CiAKIAlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29k ZXIoJmlteF9sZGJfY2gtPmNvbm5lY3RvciwKLQkJCSZpbXhfbGRiX2NoLT5lbmNvZGVyKTsKKwkJ CSZpbXhfbGRiX2NoLT5pbXhfZW5jb2Rlci5lbmNvZGVyKTsKIAogCXJldHVybiAwOwogfQpAQCAt NTY0LDYgKzUzMCw3IEBAIHN0YXRpYyBpbnQgaW14X2xkYl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCQlzdHJ1Y3QgaW14X2xkYl9j aGFubmVsICpjaGFubmVsOwogCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmRkY19ub2RlOwogCQlzdHJ1 Y3QgZGV2aWNlX25vZGUgKmVwOworCQlpbnQgYnVzX2Zvcm1hdDsKIAogCQlyZXQgPSBvZl9wcm9w ZXJ0eV9yZWFkX3UzMihjaGlsZCwgInJlZyIsICZpKTsKIAkJaWYgKHJldCB8fCBpIDwgMCB8fCBp ID4gMSkKQEAgLTYzNiwyMSArNjAzLDQ2IEBAIHN0YXRpYyBpbnQgaW14X2xkYl9iaW5kKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCQkJfQog CQl9CiAKLQkJY2hhbm5lbC0+YnVzX2Zvcm1hdCA9IG9mX2dldF9idXNfZm9ybWF0KGRldiwgY2hp bGQpOwotCQlpZiAoY2hhbm5lbC0+YnVzX2Zvcm1hdCA9PSAtRUlOVkFMKSB7CisJCWJ1c19mb3Jt YXQgPSBvZl9nZXRfYnVzX2Zvcm1hdChkZXYsIGNoaWxkKTsKKwkJaWYgKGJ1c19mb3JtYXQgPT0g LUVJTlZBTCkgewogCQkJLyoKIAkJCSAqIElmIG5vIGJ1cyBmb3JtYXQgd2FzIHNwZWNpZmllZCBp biB0aGUgZGV2aWNlIHRyZWUsCiAJCQkgKiB3ZSBjYW4gc3RpbGwgZ2V0IGl0IGZyb20gdGhlIGNv bm5lY3RlZCBwYW5lbCBsYXRlci4KIAkJCSAqLwogCQkJaWYgKGNoYW5uZWwtPnBhbmVsICYmIGNo YW5uZWwtPnBhbmVsLT5mdW5jcyAmJgogCQkJICAgIGNoYW5uZWwtPnBhbmVsLT5mdW5jcy0+Z2V0 X21vZGVzKQotCQkJCWNoYW5uZWwtPmJ1c19mb3JtYXQgPSAwOworCQkJCWJ1c19mb3JtYXQgPSAw OwogCQl9Ci0JCWlmIChjaGFubmVsLT5idXNfZm9ybWF0IDwgMCkgeworCQlpZiAoYnVzX2Zvcm1h dCA8IDApIHsKIAkJCWRldl9lcnIoZGV2LCAiY291bGQgbm90IGRldGVybWluZSBkYXRhIG1hcHBp bmc6ICVkXG4iLAotCQkJCWNoYW5uZWwtPmJ1c19mb3JtYXQpOwotCQkJcmV0dXJuIGNoYW5uZWwt PmJ1c19mb3JtYXQ7CisJCQkJYnVzX2Zvcm1hdCk7CisJCQlyZXR1cm4gYnVzX2Zvcm1hdDsKIAkJ fQorCQlzd2l0Y2ggKGJ1c19mb3JtYXQpIHsKKwkJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8x WDdYM19TUFdHOgorCQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMTg7CisJ CQlicmVhazsKKwkJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDdYNF9TUFdHOgorCQkJYnVz X2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7CisJCQlpZiAoaSA9PSAwIHx8IGR1 YWwpCisJCQkJaW14X2xkYi0+bGRiX2N0cmwgfD0gTERCX0RBVEFfV0lEVEhfQ0gwXzI0OworCQkJ aWYgKGkgPT0gMSB8fCBkdWFsKQorCQkJCWlteF9sZGItPmxkYl9jdHJsIHw9IExEQl9EQVRBX1dJ RFRIX0NIMV8yNDsKKwkJCWJyZWFrOworCQljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzFYN1g0 X0pFSURBOgorCQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7CisJCQlp ZiAoaSA9PSAwIHx8IGR1YWwpCisJCQkJaW14X2xkYi0+bGRiX2N0cmwgfD0gTERCX0RBVEFfV0lE VEhfQ0gwXzI0IHwKKwkJCQkJCSAgICAgTERCX0JJVF9NQVBfQ0gwX0pFSURBOworCQkJaWYgKGkg PT0gMSB8fCBkdWFsKQorCQkJCWlteF9sZGItPmxkYl9jdHJsIHw9IExEQl9EQVRBX1dJRFRIX0NI MV8yNCB8CisJCQkJCQkgICAgIExEQl9CSVRfTUFQX0NIMV9KRUlEQTsKKwkJCWJyZWFrOworCQl9 CisJCWNoYW5uZWwtPmlteF9lbmNvZGVyLmJ1c19mb3JtYXQgPSBidXNfZm9ybWF0OworCisJCWNo YW5uZWwtPmlteF9lbmNvZGVyLmRpX2hzeW5jX3BpbiA9IDI7CisJCWNoYW5uZWwtPmlteF9lbmNv ZGVyLmRpX3ZzeW5jX3BpbiA9IDM7CiAKIAkJcmV0ID0gaW14X2xkYl9yZWdpc3Rlcihkcm0sIGNo YW5uZWwpOwogCQlpZiAocmV0KQpAQCAtNjc1LDcgKzY2Nyw4IEBAIHN0YXRpYyB2b2lkIGlteF9s ZGJfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCQkJ Y29udGludWU7CiAKIAkJY2hhbm5lbC0+Y29ubmVjdG9yLmZ1bmNzLT5kZXN0cm95KCZjaGFubmVs LT5jb25uZWN0b3IpOwotCQljaGFubmVsLT5lbmNvZGVyLmZ1bmNzLT5kZXN0cm95KCZjaGFubmVs LT5lbmNvZGVyKTsKKwkJY2hhbm5lbC0+aW14X2VuY29kZXIuZW5jb2Rlci5mdW5jcy0+ZGVzdHJv eSgKKwkJCQkJJmNoYW5uZWwtPmlteF9lbmNvZGVyLmVuY29kZXIpOwogCiAJCWtmcmVlKGNoYW5u ZWwtPmVkaWQpOwogCQlpMmNfcHV0X2FkYXB0ZXIoY2hhbm5lbC0+ZGRjKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgt dHZlLmMKaW5kZXggMGIwYWVlZS4uODJhMWVkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2lteC9pbXgtdHZlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtdHZlLmMKQEAgLTk5 LDcgKzk5LDcgQEAKICNkZWZpbmUgVFZFX1RWREFDX1RFU1RfTU9ERV9NQVNLCSgweDcgPDwgMCkK IAogI2RlZmluZSBjb25fdG9fdHZlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW14X3R2ZSwg Y29ubmVjdG9yKQotI2RlZmluZSBlbmNfdG9fdHZlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qg aW14X3R2ZSwgZW5jb2RlcikKKyNkZWZpbmUgaW14X2VuY190b190dmUoeCkgY29udGFpbmVyX29m KHgsIHN0cnVjdCBpbXhfdHZlLCBpbXhfZW5jb2RlcikKIAogZW51bSB7CiAJVFZFX01PREVfVFZP VVQsCkBAIC0xMDgsNyArMTA4LDcgQEAgZW51bSB7CiAKIHN0cnVjdCBpbXhfdHZlIHsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7 CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciBpbXhfZW5jb2RlcjsKIAlzdHJ1Y3QgZGV2aWNlICpk ZXY7CiAJc3BpbmxvY2tfdCBsb2NrOwkvKiByZWdpc3RlciBsb2NrICovCiAJYm9vbCBlbmFibGVk OwpAQCAtMTIxLDggKzEyMSw2IEBAIHN0cnVjdCBpbXhfdHZlIHsKIAlzdHJ1Y3QgY2xrICpkaV9z ZWxfY2xrOwogCXN0cnVjdCBjbGtfaHcgY2xrX2h3X2RpOwogCXN0cnVjdCBjbGsgKmRpX2NsazsK LQlpbnQgdnN5bmNfcGluOwotCWludCBoc3luY19waW47CiB9OwogCiBzdGF0aWMgdm9pZCB0dmVf bG9jayh2b2lkICpfX3R2ZSkKQEAgLTI3MywxMiArMjcxLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZHJt X2VuY29kZXIgKmlteF90dmVfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcigKIHsKIAlzdHJ1Y3QgaW14 X3R2ZSAqdHZlID0gY29uX3RvX3R2ZShjb25uZWN0b3IpOwogCi0JcmV0dXJuICZ0dmUtPmVuY29k ZXI7CisJcmV0dXJuICZ0dmUtPmlteF9lbmNvZGVyLmVuY29kZXI7CiB9CiAKIHN0YXRpYyB2b2lk IGlteF90dmVfZW5jb2Rlcl9kcG1zKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgaW50IG1v ZGUpCiB7Ci0Jc3RydWN0IGlteF90dmUgKnR2ZSA9IGVuY190b190dmUoZW5jb2Rlcik7CisJc3Ry dWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14X2VuYyhlbmNvZGVy KTsKKwlzdHJ1Y3QgaW14X3R2ZSAqdHZlID0gaW14X2VuY190b190dmUoaW14X2VuY29kZXIpOwog CWludCByZXQ7CiAKIAlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHModHZlLT5yZWdtYXAsIFRWRV9D T01fQ09ORl9SRUcsCkBAIC0yODcsMzAgKzI4NiwxMiBAQCBzdGF0aWMgdm9pZCBpbXhfdHZlX2Vu Y29kZXJfZHBtcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBtb2RlKQogCQlkZXZf ZXJyKHR2ZS0+ZGV2LCAiZmFpbGVkIHRvIGRpc2FibGUgVFZPVVQ6ICVkXG4iLCByZXQpOwogfQog Ci1zdGF0aWMgdm9pZCBpbXhfdHZlX2VuY29kZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCi17Ci0Jc3RydWN0IGlteF90dmUgKnR2ZSA9IGVuY190b190dmUoZW5jb2Rlcik7 Ci0KLQl0dmVfZGlzYWJsZSh0dmUpOwotCi0Jc3dpdGNoICh0dmUtPm1vZGUpIHsKLQljYXNlIFRW RV9NT0RFX1ZHQToKLQkJaW14X2RybV9zZXRfYnVzX2NvbmZpZyhlbmNvZGVyLCBNRURJQV9CVVNf Rk1UX0dCUjg4OF8xWDI0LAotCQkJCSAgICAgICB0dmUtPmhzeW5jX3BpbiwgdHZlLT52c3luY19w aW4sCi0JCQkJICAgICAgIERSTV9CVVNfRkxBR19ERV9ISUdIIHwKLQkJCQkgICAgICAgRFJNX0JV U19GTEFHX1BJWERBVEFfTkVHRURHRSk7Ci0JCWJyZWFrOwotCWNhc2UgVFZFX01PREVfVFZPVVQ6 Ci0JCWlteF9kcm1fc2V0X2J1c19mb3JtYXQoZW5jb2RlciwgTUVESUFfQlVTX0ZNVF9ZVVY4XzFY MjQpOwotCQlicmVhazsKLQl9Ci19Ci0KIHN0YXRpYyB2b2lkIGlteF90dmVfZW5jb2Rlcl9tb2Rl X3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqb3JpZ19tb2RlLAogCQkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUpCiB7Ci0Jc3RydWN0IGlteF90dmUgKnR2ZSA9IGVuY190b190dmUoZW5jb2Rlcik7CisJ c3RydWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14X2VuYyhlbmNv ZGVyKTsKKwlzdHJ1Y3QgaW14X3R2ZSAqdHZlID0gaW14X2VuY190b190dmUoaW14X2VuY29kZXIp OwogCXVuc2lnbmVkIGxvbmcgcm91bmRlZF9yYXRlOwogCXVuc2lnbmVkIGxvbmcgcmF0ZTsKIAlp bnQgZGl2ID0gMTsKQEAgLTM0NCwxNCArMzI1LDE2IEBAIHN0YXRpYyB2b2lkIGlteF90dmVfZW5j b2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAKIHN0YXRpYyB2b2lk IGlteF90dmVfZW5jb2Rlcl9jb21taXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewot CXN0cnVjdCBpbXhfdHZlICp0dmUgPSBlbmNfdG9fdHZlKGVuY29kZXIpOworCXN0cnVjdCBpbXhf ZHJtX2VuY29kZXIgKmlteF9lbmNvZGVyID0gZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7CisJc3Ry dWN0IGlteF90dmUgKnR2ZSA9IGlteF9lbmNfdG9fdHZlKGlteF9lbmNvZGVyKTsKIAogCXR2ZV9l bmFibGUodHZlKTsKIH0KIAogc3RhdGljIHZvaWQgaW14X3R2ZV9lbmNvZGVyX2Rpc2FibGUoc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBpbXhfdHZlICp0dmUgPSBlbmNf dG9fdHZlKGVuY29kZXIpOworCXN0cnVjdCBpbXhfZHJtX2VuY29kZXIgKmlteF9lbmNvZGVyID0g ZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7CisJc3RydWN0IGlteF90dmUgKnR2ZSA9IGlteF9lbmNf dG9fdHZlKGlteF9lbmNvZGVyKTsKIAogCXR2ZV9kaXNhYmxlKHR2ZSk7CiB9CkBAIC0zNzgsNyAr MzYxLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBpbXhfdHZlX2Vu Y29kZXJfZnVuY3MgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVy X2Z1bmNzIGlteF90dmVfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmRwbXMgPSBpbXhfdHZl X2VuY29kZXJfZHBtcywKLQkucHJlcGFyZSA9IGlteF90dmVfZW5jb2Rlcl9wcmVwYXJlLAogCS5t b2RlX3NldCA9IGlteF90dmVfZW5jb2Rlcl9tb2RlX3NldCwKIAkuY29tbWl0ID0gaW14X3R2ZV9l bmNvZGVyX2NvbW1pdCwKIAkuZGlzYWJsZSA9IGlteF90dmVfZW5jb2Rlcl9kaXNhYmxlLApAQCAt NDk5LDEzICs0ODEsMTQgQEAgc3RhdGljIGludCBpbXhfdHZlX3JlZ2lzdGVyKHN0cnVjdCBkcm1f ZGV2aWNlICpkcm0sIHN0cnVjdCBpbXhfdHZlICp0dmUpCiAJZW5jb2Rlcl90eXBlID0gdHZlLT5t b2RlID09IFRWRV9NT0RFX1ZHQSA/CiAJCQkJRFJNX01PREVfRU5DT0RFUl9EQUMgOiBEUk1fTU9E RV9FTkNPREVSX1RWREFDOwogCi0JcmV0ID0gaW14X2RybV9lbmNvZGVyX3BhcnNlX29mKGRybSwg JnR2ZS0+ZW5jb2RlciwKKwlyZXQgPSBpbXhfZHJtX2VuY29kZXJfcGFyc2Vfb2YoZHJtLCAmdHZl LT5pbXhfZW5jb2Rlci5lbmNvZGVyLAogCQkJCSAgICAgICB0dmUtPmRldi0+b2Zfbm9kZSk7CiAJ aWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoJnR2ZS0+ ZW5jb2RlciwgJmlteF90dmVfZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOwotCWRybV9lbmNvZGVyX2lu aXQoZHJtLCAmdHZlLT5lbmNvZGVyLCAmaW14X3R2ZV9lbmNvZGVyX2Z1bmNzLAorCWRybV9lbmNv ZGVyX2hlbHBlcl9hZGQoJnR2ZS0+aW14X2VuY29kZXIuZW5jb2RlciwKKwkJCSAgICAgICAmaW14 X3R2ZV9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7CisJZHJtX2VuY29kZXJfaW5pdChkcm0sICZ0dmUt PmlteF9lbmNvZGVyLmVuY29kZXIsICZpbXhfdHZlX2VuY29kZXJfZnVuY3MsCiAJCQkgZW5jb2Rl cl90eXBlLCBOVUxMKTsKIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmdHZlLT5jb25uZWN0 b3IsCkBAIC01MTMsNyArNDk2LDggQEAgc3RhdGljIGludCBpbXhfdHZlX3JlZ2lzdGVyKHN0cnVj dCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBpbXhfdHZlICp0dmUpCiAJZHJtX2Nvbm5lY3Rvcl9p bml0KGRybSwgJnR2ZS0+Y29ubmVjdG9yLCAmaW14X3R2ZV9jb25uZWN0b3JfZnVuY3MsCiAJCQkg ICBEUk1fTU9ERV9DT05ORUNUT1JfVkdBKTsKIAotCWRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hf ZW5jb2RlcigmdHZlLT5jb25uZWN0b3IsICZ0dmUtPmVuY29kZXIpOworCWRybV9tb2RlX2Nvbm5l Y3Rvcl9hdHRhY2hfZW5jb2RlcigmdHZlLT5jb25uZWN0b3IsCisJCQkJCSAgJnR2ZS0+aW14X2Vu Y29kZXIuZW5jb2Rlcik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTU5MSw3ICs1NzUsNyBAQCBzdGF0 aWMgaW50IGlteF90dmVfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1h c3Rlciwgdm9pZCAqZGF0YSkKIAogCWlmICh0dmUtPm1vZGUgPT0gVFZFX01PREVfVkdBKSB7CiAJ CXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAiZnNsLGhzeW5jLXBpbiIsCi0JCQkJCSAg ICZ0dmUtPmhzeW5jX3Bpbik7CisJCQkJCSAgICZ0dmUtPmlteF9lbmNvZGVyLmRpX2hzeW5jX3Bp bik7CiAKIAkJaWYgKHJldCA8IDApIHsKIAkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCB2 c3luYyBwaW5cbiIpOwpAQCAtNTk5LDEyICs1ODMsMTQgQEAgc3RhdGljIGludCBpbXhfdHZlX2Jp bmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEp CiAJCX0KIAogCQlyZXQgfD0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJmc2wsdnN5bmMtcGlu IiwKLQkJCQkJICAgICZ0dmUtPnZzeW5jX3Bpbik7CisJCQkJCSAgICAmdHZlLT5pbXhfZW5jb2Rl ci5kaV92c3luY19waW4pOwogCiAJCWlmIChyZXQgPCAwKSB7CiAJCQlkZXZfZXJyKGRldiwgImZh aWxlZCB0byBnZXQgdnN5bmMgcGluXG4iKTsKIAkJCXJldHVybiByZXQ7CiAJCX0KKworCQl0dmUt PmlteF9lbmNvZGVyLmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX0dCUjg4OF8xWDI0OwogCX0K IAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7 CkBAIC02OTMsNyArNjc5LDcgQEAgc3RhdGljIHZvaWQgaW14X3R2ZV91bmJpbmQoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJc3RydWN0IGlteF90dmUgKnR2ZSA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCiAJdHZlLT5jb25uZWN0b3IuZnVuY3MtPmRlc3Ryb3ko JnR2ZS0+Y29ubmVjdG9yKTsKLQl0dmUtPmVuY29kZXIuZnVuY3MtPmRlc3Ryb3koJnR2ZS0+ZW5j b2Rlcik7CisJdHZlLT5pbXhfZW5jb2Rlci5lbmNvZGVyLmZ1bmNzLT5kZXN0cm95KCZ0dmUtPmlt eF9lbmNvZGVyLmVuY29kZXIpOwogCiAJaWYgKCFJU19FUlIodHZlLT5kYWNfcmVnKSkKIAkJcmVn dWxhdG9yX2Rpc2FibGUodHZlLT5kYWNfcmVnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvaXB1djMtY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMKaW5k ZXggN2RmNTFlOC4uZjlkNWQ3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2 My1jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMKQEAgLTY3LDEw ICs2Nyw2IEBAIHN0cnVjdCBpcHVfY3J0YyB7CiAJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmZs aXBfcXVldWU7CiAJc3RydWN0IGlwdV9mbGlwX3dvcmsJKmZsaXBfd29yazsKIAlpbnQJCQlpcnE7 Ci0JdTMyCQkJYnVzX2Zvcm1hdDsKLQl1MzIJCQlidXNfZmxhZ3M7Ci0JaW50CQkJZGlfaHN5bmNf cGluOwotCWludAkJCWRpX3ZzeW5jX3BpbjsKIH07CiAKICNkZWZpbmUgdG9faXB1X2NydGMoeCkg Y29udGFpbmVyX29mKHgsIHN0cnVjdCBpcHVfY3J0YywgYmFzZSkKQEAgLTMyMSw2ICszMTcsNyBA QCBzdGF0aWMgdm9pZCBpcHVfY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcjsKKwlzdHJ1Y3QgaW14X2RybV9lbmNvZGVyICppbXhfZW5jb2RlciA9 IE5VTEw7CiAJc3RydWN0IGlwdV9jcnRjICppcHVfY3J0YyA9IHRvX2lwdV9jcnRjKGNydGMpOwog CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9t b2RlOwogCXN0cnVjdCBpcHVfZGlfc2lnbmFsX2NmZyBzaWdfY2ZnID0ge307CkBAIC0zMzEsOSAr MzI4LDEyIEBAIHN0YXRpYyB2b2lkIGlwdV9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9j cnRjICpjcnRjKQogCWRldl9kYmcoaXB1X2NydGMtPmRldiwgIiVzOiBtb2RlLT52ZGlzcGxheTog JWRcbiIsIF9fZnVuY19fLAogCQkJbW9kZS0+dmRpc3BsYXkpOwogCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShlbmNvZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpCi0JCWlm IChlbmNvZGVyLT5jcnRjID09IGNydGMpCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAm ZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpIHsKKwkJaWYgKGVuY29kZXItPmNy dGMgPT0gY3J0YykgewogCQkJZW5jb2Rlcl90eXBlcyB8PSBCSVQoZW5jb2Rlci0+ZW5jb2Rlcl90 eXBlKTsKKwkJCWlteF9lbmNvZGVyID0gZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7CisJCX0KKwl9 CiAKIAlkZXZfZGJnKGlwdV9jcnRjLT5kZXYsICIlczogYXR0YWNoZWQgdG8gZW5jb2RlciB0eXBl cyAweCVseFxuIiwKIAkJX19mdW5jX18sIGVuY29kZXJfdHlwZXMpOwpAQCAtMzUxLDIwICszNTEs MjAgQEAgc3RhdGljIHZvaWQgaXB1X2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJZWxzZQogCQlzaWdfY2ZnLmNsa2ZsYWdzID0gMDsKIAotCXNpZ19jZmcuZW5hYmxl X3BvbCA9ICEoaXB1X2NydGMtPmJ1c19mbGFncyAmIERSTV9CVVNfRkxBR19ERV9MT1cpOworCXNp Z19jZmcuZW5hYmxlX3BvbCA9ICEoaW14X2VuY29kZXItPmJ1c19mbGFncyAmIERSTV9CVVNfRkxB R19ERV9MT1cpOwogCS8qIERlZmF1bHQgdG8gZHJpdmluZyBwaXhlbCBkYXRhIG9uIG5lZ2F0aXZl IGNsb2NrIGVkZ2VzICovCi0Jc2lnX2NmZy5jbGtfcG9sID0gISEoaXB1X2NydGMtPmJ1c19mbGFn cyAmCisJc2lnX2NmZy5jbGtfcG9sID0gISEoaW14X2VuY29kZXItPmJ1c19mbGFncyAmCiAJCQkg ICAgIERSTV9CVVNfRkxBR19QSVhEQVRBX1BPU0VER0UpOwotCXNpZ19jZmcuYnVzX2Zvcm1hdCA9 IGlwdV9jcnRjLT5idXNfZm9ybWF0OworCXNpZ19jZmcuYnVzX2Zvcm1hdCA9IGlteF9lbmNvZGVy LT5idXNfZm9ybWF0OwogCXNpZ19jZmcudl90b19oX3N5bmMgPSAwOwotCXNpZ19jZmcuaHN5bmNf cGluID0gaXB1X2NydGMtPmRpX2hzeW5jX3BpbjsKLQlzaWdfY2ZnLnZzeW5jX3BpbiA9IGlwdV9j cnRjLT5kaV92c3luY19waW47CisJc2lnX2NmZy5oc3luY19waW4gPSBpbXhfZW5jb2Rlci0+ZGlf aHN5bmNfcGluOworCXNpZ19jZmcudnN5bmNfcGluID0gaW14X2VuY29kZXItPmRpX3ZzeW5jX3Bp bjsKIAogCWRybV9kaXNwbGF5X21vZGVfdG9fdmlkZW9tb2RlKG1vZGUsICZzaWdfY2ZnLm1vZGUp OwogCiAJaXB1X2RjX2luaXRfc3luYyhpcHVfY3J0Yy0+ZGMsIGlwdV9jcnRjLT5kaSwKIAkJCSBt b2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFLAotCQkJIGlwdV9jcnRjLT5idXNf Zm9ybWF0LCBtb2RlLT5oZGlzcGxheSk7CisJCQkgaW14X2VuY29kZXItPmJ1c19mb3JtYXQsIG1v ZGUtPmhkaXNwbGF5KTsKIAlpcHVfZGlfaW5pdF9zeW5jX3BhbmVsKGlwdV9jcnRjLT5kaSwgJnNp Z19jZmcpOwogfQogCkBAIC00MDIsMjMgKzQwMiw5IEBAIHN0YXRpYyB2b2lkIGlwdV9kaXNhYmxl X3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJZGlzYWJsZV9pcnFfbm9zeW5jKGlwdV9j cnRjLT5pcnEpOwogfQogCi1zdGF0aWMgaW50IGlwdV9zZXRfaW50ZXJmYWNlX3BpeF9mbXQoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAotCQl1MzIgYnVzX2Zvcm1hdCwgaW50IGhzeW5jX3BpbiwgaW50 IHZzeW5jX3BpbiwgdTMyIGJ1c19mbGFncykKLXsKLQlzdHJ1Y3QgaXB1X2NydGMgKmlwdV9jcnRj ID0gdG9faXB1X2NydGMoY3J0Yyk7Ci0KLQlpcHVfY3J0Yy0+YnVzX2Zvcm1hdCA9IGJ1c19mb3Jt YXQ7Ci0JaXB1X2NydGMtPmJ1c19mbGFncyA9IGJ1c19mbGFnczsKLQlpcHVfY3J0Yy0+ZGlfaHN5 bmNfcGluID0gaHN5bmNfcGluOwotCWlwdV9jcnRjLT5kaV92c3luY19waW4gPSB2c3luY19waW47 Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGNvbnN0IHN0cnVjdCBpbXhfZHJtX2NydGNfaGVs cGVyX2Z1bmNzIGlwdV9jcnRjX2hlbHBlcl9mdW5jcyA9IHsKIAkuZW5hYmxlX3ZibGFuayA9IGlw dV9lbmFibGVfdmJsYW5rLAogCS5kaXNhYmxlX3ZibGFuayA9IGlwdV9kaXNhYmxlX3ZibGFuaywK LQkuc2V0X2ludGVyZmFjZV9waXhfZm10ID0gaXB1X3NldF9pbnRlcmZhY2VfcGl4X2ZtdCwKIAku Y3J0Y19mdW5jcyA9ICZpcHVfY3J0Y19mdW5jcywKIAkuY3J0Y19oZWxwZXJfZnVuY3MgPSAmaXB1 X2hlbHBlcl9mdW5jcywKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFs bGVsLWRpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCmlu ZGV4IDlmZTg4YzkuLjczNzRkODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFy YWxsZWwtZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxh eS5jCkBAIC0yNywxNSArMjcsMTUgQEAKICNpbmNsdWRlICJpbXgtZHJtLmgiCiAKICNkZWZpbmUg Y29uX3RvX2lteHBkKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3Bs YXksIGNvbm5lY3RvcikKLSNkZWZpbmUgZW5jX3RvX2lteHBkKHgpIGNvbnRhaW5lcl9vZih4LCBz dHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXksIGVuY29kZXIpCisjZGVmaW5lIGlteF9lbmNfdG9f aW14cGQoeCkJXAorCQljb250YWluZXJfb2YoeCwgc3RydWN0IGlteF9wYXJhbGxlbF9kaXNwbGF5 LCBpbXhfZW5jb2RlcikKIAogc3RydWN0IGlteF9wYXJhbGxlbF9kaXNwbGF5IHsKIAlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7CisJ c3RydWN0IGlteF9kcm1fZW5jb2RlciBpbXhfZW5jb2RlcjsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7 CiAJdm9pZCAqZWRpZDsKIAlpbnQgZWRpZF9sZW47Ci0JdTMyIGJ1c19mb3JtYXQ7CiAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgbW9kZTsKIAlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsKIH07CkBA IC01Nyw4ICs1Nyw5IEBAIHN0YXRpYyBpbnQgaW14X3BkX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJc3RydWN0IGRybV9kaXNwbGF5X2luZm8g KmRpID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwogCiAJCW51bV9tb2RlcyA9IGlteHBkLT5w YW5lbC0+ZnVuY3MtPmdldF9tb2RlcyhpbXhwZC0+cGFuZWwpOwotCQlpZiAoIWlteHBkLT5idXNf Zm9ybWF0ICYmIGRpLT5udW1fYnVzX2Zvcm1hdHMpCi0JCQlpbXhwZC0+YnVzX2Zvcm1hdCA9IGRp LT5idXNfZm9ybWF0c1swXTsKKwkJaWYgKCFpbXhwZC0+aW14X2VuY29kZXIuYnVzX2Zvcm1hdCAm JiBkaS0+bnVtX2J1c19mb3JtYXRzKQorCQkJaW14cGQtPmlteF9lbmNvZGVyLmJ1c19mb3JtYXQg PSBkaS0+YnVzX2Zvcm1hdHNbMF07CisJCWlteHBkLT5pbXhfZW5jb2Rlci5idXNfZmxhZ3MgPSBk aS0+YnVzX2ZsYWdzOwogCQlpZiAobnVtX21vZGVzID4gMCkKIAkJCXJldHVybiBudW1fbW9kZXM7 CiAJfQpAQCAtODgsMTIgKzg5LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKmlteF9w ZF9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKAogewogCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxh eSAqaW14cGQgPSBjb25fdG9faW14cGQoY29ubmVjdG9yKTsKIAotCXJldHVybiAmaW14cGQtPmVu Y29kZXI7CisJcmV0dXJuICZpbXhwZC0+aW14X2VuY29kZXIuZW5jb2RlcjsKIH0KIAogc3RhdGlj IHZvaWQgaW14X3BkX2VuY29kZXJfZHBtcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGlu dCBtb2RlKQogewotCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9f aW14cGQoZW5jb2Rlcik7CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBl bmNfdG9faW14X2VuYyhlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkgKmlt eHBkID0gaW14X2VuY190b19pbXhwZChpbXhfZW5jb2Rlcik7CiAKIAlpZiAobW9kZSAhPSBEUk1f TU9ERV9EUE1TX09OKQogCQlkcm1fcGFuZWxfZGlzYWJsZShpbXhwZC0+cGFuZWwpOwpAQCAtMTAx LDE2ICsxMDMsMTAgQEAgc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJfZHBtcyhzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsIGludCBtb2RlKQogCQlkcm1fcGFuZWxfZW5hYmxlKGlteHBkLT5w YW5lbCk7CiB9CiAKLXN0YXRpYyB2b2lkIGlteF9wZF9lbmNvZGVyX3ByZXBhcmUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKQotewotCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14 cGQgPSBlbmNfdG9faW14cGQoZW5jb2Rlcik7Ci0JaW14X2RybV9zZXRfYnVzX2NvbmZpZyhlbmNv ZGVyLCBpbXhwZC0+YnVzX2Zvcm1hdCwgMiwgMywKLQkJCSAgICAgICBpbXhwZC0+Y29ubmVjdG9y LmRpc3BsYXlfaW5mby5idXNfZmxhZ3MpOwotfQotCiBzdGF0aWMgdm9pZCBpbXhfcGRfZW5jb2Rl cl9jb21taXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBpbXhfcGFy YWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9faW14cGQoZW5jb2Rlcik7CisJc3RydWN0IGlt eF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14X2VuYyhlbmNvZGVyKTsKKwlz dHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBkID0gaW14X2VuY190b19pbXhwZChpbXhf ZW5jb2Rlcik7CiAKIAlkcm1fcGFuZWxfcHJlcGFyZShpbXhwZC0+cGFuZWwpOwogCWRybV9wYW5l bF9lbmFibGUoaW14cGQtPnBhbmVsKTsKQEAgLTEyNCw3ICsxMjAsOCBAQCBzdGF0aWMgdm9pZCBp bXhfcGRfZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAKIHN0 YXRpYyB2b2lkIGlteF9wZF9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogewotCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9faW14 cGQoZW5jb2Rlcik7CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNf dG9faW14X2VuYyhlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBk ID0gaW14X2VuY190b19pbXhwZChpbXhfZW5jb2Rlcik7CiAKIAlkcm1fcGFuZWxfZGlzYWJsZShp bXhwZC0+cGFuZWwpOwogCWRybV9wYW5lbF91bnByZXBhcmUoaW14cGQtPnBhbmVsKTsKQEAgLTE1 MSw3ICsxNDgsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGlteF9w ZF9lbmNvZGVyX2Z1bmNzID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hl bHBlcl9mdW5jcyBpbXhfcGRfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmRwbXMgPSBpbXhf cGRfZW5jb2Rlcl9kcG1zLAotCS5wcmVwYXJlID0gaW14X3BkX2VuY29kZXJfcHJlcGFyZSwKIAku Y29tbWl0ID0gaW14X3BkX2VuY29kZXJfY29tbWl0LAogCS5tb2RlX3NldCA9IGlteF9wZF9lbmNv ZGVyX21vZGVfc2V0LAogCS5kaXNhYmxlID0gaW14X3BkX2VuY29kZXJfZGlzYWJsZSwKQEAgLTE2 Miw3ICsxNTgsNyBAQCBzdGF0aWMgaW50IGlteF9wZF9yZWdpc3RlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtLAogewogCWludCByZXQ7CiAKLQlyZXQgPSBpbXhfZHJtX2VuY29kZXJfcGFyc2Vfb2Yo ZHJtLCAmaW14cGQtPmVuY29kZXIsCisJcmV0ID0gaW14X2RybV9lbmNvZGVyX3BhcnNlX29mKGRy bSwgJmlteHBkLT5pbXhfZW5jb2Rlci5lbmNvZGVyLAogCQkJCSAgICAgICBpbXhwZC0+ZGV2LT5v Zl9ub2RlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpAQCAtMTc0LDkgKzE3MCwxMCBAQCBz dGF0aWMgaW50IGlteF9wZF9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAogCSAqLwog CWlteHBkLT5jb25uZWN0b3IuZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwogCi0JZHJtX2VuY29k ZXJfaGVscGVyX2FkZCgmaW14cGQtPmVuY29kZXIsICZpbXhfcGRfZW5jb2Rlcl9oZWxwZXJfZnVu Y3MpOwotCWRybV9lbmNvZGVyX2luaXQoZHJtLCAmaW14cGQtPmVuY29kZXIsICZpbXhfcGRfZW5j b2Rlcl9mdW5jcywKLQkJCSBEUk1fTU9ERV9FTkNPREVSX05PTkUsIE5VTEwpOworCWRybV9lbmNv ZGVyX2hlbHBlcl9hZGQoJmlteHBkLT5pbXhfZW5jb2Rlci5lbmNvZGVyLAorCQkJICAgICAgICZp bXhfcGRfZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOworCWRybV9lbmNvZGVyX2luaXQoZHJtLCAmaW14 cGQtPmlteF9lbmNvZGVyLmVuY29kZXIsCisJCQkgJmlteF9wZF9lbmNvZGVyX2Z1bmNzLCBEUk1f TU9ERV9FTkNPREVSX05PTkUsIE5VTEwpOwogCiAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZp bXhwZC0+Y29ubmVjdG9yLAogCQkJJmlteF9wZF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKQEAg LTE4Niw3ICsxODMsOCBAQCBzdGF0aWMgaW50IGlteF9wZF9yZWdpc3RlcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLAogCWlmIChpbXhwZC0+cGFuZWwpCiAJCWRybV9wYW5lbF9hdHRhY2goaW14cGQt PnBhbmVsLCAmaW14cGQtPmNvbm5lY3Rvcik7CiAKLQlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNo X2VuY29kZXIoJmlteHBkLT5jb25uZWN0b3IsICZpbXhwZC0+ZW5jb2Rlcik7CisJZHJtX21vZGVf Y29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZpbXhwZC0+Y29ubmVjdG9yLAorCQkJCQkgICZpbXhw ZC0+aW14X2VuY29kZXIuZW5jb2Rlcik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE5OSw2ICsxOTcs NyBAQCBzdGF0aWMgaW50IGlteF9wZF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCWNvbnN0IHU4ICplZGlkcDsKIAlzdHJ1Y3QgaW14 X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBkOwogCWludCByZXQ7CisJdTMyIGJ1c19mb3JtYXQgPSAw OwogCWNvbnN0IGNoYXIgKmZtdDsKIAogCWlteHBkID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9m KCppbXhwZCksIEdGUF9LRVJORUwpOwpAQCAtMjEyLDE0ICsyMTEsMTcgQEAgc3RhdGljIGludCBp bXhfcGRfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9p ZCAqZGF0YSkKIAlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImludGVyZmFjZS1w aXgtZm10IiwgJmZtdCk7CiAJaWYgKCFyZXQpIHsKIAkJaWYgKCFzdHJjbXAoZm10LCAicmdiMjQi KSkKLQkJCWlteHBkLT5idXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKKwkJ CWJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0OwogCQllbHNlIGlmICghc3Ry Y21wKGZtdCwgInJnYjU2NSIpKQotCQkJaW14cGQtPmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1U X1JHQjU2NV8xWDE2OworCQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCNTY1XzFYMTY7 CiAJCWVsc2UgaWYgKCFzdHJjbXAoZm10LCAiYmdyNjY2IikpCi0JCQlpbXhwZC0+YnVzX2Zvcm1h dCA9IE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMTg7CisJCQlidXNfZm9ybWF0ID0gTUVESUFfQlVT X0ZNVF9SR0I2NjZfMVgxODsKIAkJZWxzZSBpZiAoIXN0cmNtcChmbXQsICJsdmRzNjY2IikpCi0J CQlpbXhwZC0+YnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMjRfQ1BBREhJOwor CQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMjRfQ1BBREhJOwogCX0KKwlp bXhwZC0+aW14X2VuY29kZXIuYnVzX2Zvcm1hdCA9IGJ1c19mb3JtYXQ7CisJaW14cGQtPmlteF9l bmNvZGVyLmRpX2hzeW5jX3BpbiA9IDI7CisJaW14cGQtPmlteF9lbmNvZGVyLmRpX3ZzeW5jX3Bp biA9IDM7CiAKIAkvKiBwb3J0QDEgaXMgdGhlIG91dHB1dCBwb3J0ICovCiAJZXAgPSBvZl9ncmFw aF9nZXRfZW5kcG9pbnRfYnlfcmVncyhucCwgMSwgLTEpOwpAQCAtMjUyLDcgKzI1NCw3IEBAIHN0 YXRpYyB2b2lkIGlteF9wZF91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl ICptYXN0ZXIsCiB7CiAJc3RydWN0IGlteF9wYXJhbGxlbF9kaXNwbGF5ICppbXhwZCA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOwogCi0JaW14cGQtPmVuY29kZXIuZnVuY3MtPmRlc3Ryb3koJmlteHBk LT5lbmNvZGVyKTsKKwlpbXhwZC0+aW14X2VuY29kZXIuZW5jb2Rlci5mdW5jcy0+ZGVzdHJveSgm aW14cGQtPmlteF9lbmNvZGVyLmVuY29kZXIpOwogCWlteHBkLT5jb25uZWN0b3IuZnVuY3MtPmRl c3Ryb3koJmlteHBkLT5jb25uZWN0b3IpOwogCiAJa2ZyZWUoaW14cGQtPmVkaWQpOwotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=