From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Ripard Subject: [PATCH 06/18] drm/sun4i: tcon: Don't rely on encoders to enable the TCON Date: Thu, 13 Jul 2017 16:13:01 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.free-electrons.com (mail.free-electrons.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 93FE46E61F for ; Thu, 13 Jul 2017 14:13:19 +0000 (UTC) In-Reply-To: In-Reply-To: References: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mark Brown , Thierry Reding , Laurent Pinchart , Chen-Yu Tsai , Maxime Ripard Cc: Mark Rutland , devicetree@vger.kernel.org, Boris Brezillon , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rob Herring , Daniel Vetter , Thomas Petazzoni , linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org U28gZmFyLCB3ZSd2ZSByZXF1aXJlZCBhbGwgdGhlIFRDT04tY29ubmVjdGVkIGVuY29kZXJzIHRv IGNhbGwgdGhlIFRDT04KZW5hYmxlIGFuZCBkaXNhYmxlIGZ1bmN0aW9ucy4KClRoaXMgd2FzIG1h ZGUgdGhpcyB3YXkgYmVjYXVzZSBpbiB0aGUgUkdCL0xWRFMgY2FzZSwgdGhlIFRDT04gaXMgdGhl IENSVEMKYW5kIHRoZSBlbmNvZGVyLiBIb3dldmVyLCBpbiBhbGwgdGhlIG90aGVyIGNhc2VzIChI RE1JLCBUViwgRFNJLCBldGMuKSwgd2UKaGF2ZSBhbm90aGVyIGVuY29kZXIgZG93biB0aGUgcm9h ZCB0aGF0IG5lZWRzIHRvIGJlIHByb2dyYW1tZWQuCgpXZSBhbHNvIG5lZWRlZCB0byBrbm93IHdo aWNoIGNoYW5uZWwgdGhlIGVuY29kZXIgaXMgY29ubmVjdGVkIHRvLCB3aGljaCBpcwplbmNvZGVy LXNwZWNpZmljLgoKVGhlIENSVEMncyBlbmFibGUgYW5kIGRpc2FibGUgY2FsbGJhY2tzIGNhbiB3 b3JrIGp1c3QgZmluZSBmb3Igb3VyIHVzZQpjYXNlLCBhbmQgd2UgY2FuIGdldCB0aGUgY2hhbm5l bCB0byB1c2UganVzdCBieSBsb29raW5nIGF0IHRoZSB0eXBlIG9mCmVuY29kZXIsIHNpbmNlIHRo YXQgaXMgZml4ZWQuIEltcGxlbWVudCB0aG9zZSBjYWxsYmFja3MsIHdoaWNoIHdpbGwKcmVtb3Zl IHNvbWUgb2YgdGhlIGVuY29kZXIgYm9pbGVycGxhdGUuCgpTaWduZWQtb2ZmLWJ5OiBNYXhpbWUg UmlwYXJkIDxtYXhpbWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vc3VuNGkvc3VuNGlfY3J0Yy5jICAgICB8IDIyICsrKysrKy0KIGRyaXZlcnMvZ3B1L2Ry bS9zdW40aS9zdW40aV9oZG1pX2VuYy5jIHwgIDggKy0tCiBkcml2ZXJzL2dwdS9kcm0vc3VuNGkv c3VuNGlfcmdiLmMgICAgICB8IDE0ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90 Y29uLmMgICAgIHwgOTEgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vc3VuNGkvc3VuNGlfdGNvbi5oICAgICB8IDEwICstLS0KIGRyaXZlcnMvZ3B1L2RybS9zdW40 aS9zdW40aV90di5jICAgICAgIHwgIDYgKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDcwIGluc2VydGlv bnMoKyksIDgxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40 aS9zdW40aV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfY3J0Yy5jCmluZGV4 IGY4YzcwNDM5ZDFlMi4uMzBjNzU2OGRkZTVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v c3VuNGkvc3VuNGlfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9jcnRj LmMKQEAgLTMwLDYgKzMwLDIyIEBACiAjaW5jbHVkZSAic3VueGlfZW5naW5lLmgiCiAjaW5jbHVk ZSAic3VuNGlfdGNvbi5oIgogCisvKgorICogV2hpbGUgdGhpcyBpc24ndCByZWFsbHkgd29ya2lu ZyBpbiB0aGUgRFJNIHRoZW9yeSwgaW4gcHJhY3RpY2Ugd2UKKyAqIGNhbiBvbmx5IGV2ZXIgaGF2 ZSBvbmUgZW5jb2RlciBwZXIgVENPTiBzaW5jZSB3ZSBoYXZlIGEgbXV4IGluIG91cgorICogVENP Ti4KKyAqLworc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqc3VuNGlfY3J0Y19nZXRfZW5jb2Rl cihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy OworCisJZHJtX2Zvcl9lYWNoX2VuY29kZXIoZW5jb2RlciwgY3J0Yy0+ZGV2KQorCQlpZiAoZW5j b2Rlci0+Y3J0YyA9PSBjcnRjKQorCQkJcmV0dXJuIGVuY29kZXI7CisKKwlyZXR1cm4gTlVMTDsK K30KKwogc3RhdGljIHZvaWQgc3VuNGlfY3J0Y19hdG9taWNfYmVnaW4oc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKQEAg LTcxLDExICs4NywxMiBAQCBzdGF0aWMgdm9pZCBzdW40aV9jcnRjX2F0b21pY19mbHVzaChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIHN1bjRpX2NydGNfZGlzYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiB7CisJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gc3Vu NGlfY3J0Y19nZXRfZW5jb2RlcihjcnRjKTsKIAlzdHJ1Y3Qgc3VuNGlfY3J0YyAqc2NydGMgPSBk cm1fY3J0Y190b19zdW40aV9jcnRjKGNydGMpOwogCiAJRFJNX0RFQlVHX0RSSVZFUigiRGlzYWJs aW5nIHRoZSBDUlRDXG4iKTsKIAotCXN1bjRpX3Rjb25fZGlzYWJsZShzY3J0Yy0+dGNvbik7CisJ c3VuNGlfdGNvbl9zZXRfc3RhdHVzKHNjcnRjLT50Y29uLCBlbmNvZGVyLCBmYWxzZSk7CiAKIAlp ZiAoY3J0Yy0+c3RhdGUtPmV2ZW50ICYmICFjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7CiAJCXNwaW5f bG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CkBAIC04OCwxMSArMTA1LDEyIEBAIHN0 YXRpYyB2b2lkIHN1bjRpX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIHN0 YXRpYyB2b2lkIHN1bjRpX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKKwlz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBzdW40aV9jcnRjX2dldF9lbmNvZGVyKGNydGMp OwogCXN0cnVjdCBzdW40aV9jcnRjICpzY3J0YyA9IGRybV9jcnRjX3RvX3N1bjRpX2NydGMoY3J0 Yyk7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJFbmFibGluZyB0aGUgQ1JUQ1xuIik7CiAKLQlzdW40 aV90Y29uX2VuYWJsZShzY3J0Yy0+dGNvbik7CisJc3VuNGlfdGNvbl9zZXRfc3RhdHVzKHNjcnRj LT50Y29uLCBlbmNvZGVyLCB0cnVlKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0 Y19oZWxwZXJfZnVuY3Mgc3VuNGlfY3J0Y19oZWxwZXJfZnVuY3MgPSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfaGRtaV9lbmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9z dW40aS9zdW40aV9oZG1pX2VuYy5jCmluZGV4IGQzMzk4ZjYyNTBlZi4uMDZhZjJmNmQwYjMxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfaGRtaV9lbmMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfaGRtaV9lbmMuYwpAQCAtODUsOCArODUsNiBAQCBz dGF0aWMgaW50IHN1bjRpX2hkbWlfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKIHN0YXRpYyB2b2lkIHN1bjRpX2hkbWlfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCiB7CiAJc3RydWN0IHN1bjRpX2hkbWkgKmhkbWkgPSBkcm1fZW5jb2Rlcl90b19z dW40aV9oZG1pKGVuY29kZXIpOwotCXN0cnVjdCBzdW40aV9jcnRjICpjcnRjID0gZHJtX2NydGNf dG9fc3VuNGlfY3J0YyhlbmNvZGVyLT5jcnRjKTsKLQlzdHJ1Y3Qgc3VuNGlfdGNvbiAqdGNvbiA9 IGNydGMtPnRjb247CiAJdTMyIHZhbDsKIAogCURSTV9ERUJVR19EUklWRVIoIkRpc2FibGluZyB0 aGUgSERNSSBPdXRwdXRcbiIpOwpAQCAtOTQsMjIgKzkyLDE2IEBAIHN0YXRpYyB2b2lkIHN1bjRp X2hkbWlfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJdmFsID0gcmVhZGwo aGRtaS0+YmFzZSArIFNVTjRJX0hETUlfVklEX0NUUkxfUkVHKTsKIAl2YWwgJj0gflNVTjRJX0hE TUlfVklEX0NUUkxfRU5BQkxFOwogCXdyaXRlbCh2YWwsIGhkbWktPmJhc2UgKyBTVU40SV9IRE1J X1ZJRF9DVFJMX1JFRyk7Ci0KLQlzdW40aV90Y29uX2NoYW5uZWxfZGlzYWJsZSh0Y29uLCAxKTsK IH0KIAogc3RhdGljIHZvaWQgc3VuNGlfaGRtaV9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmVuY29kZXItPmNy dGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBzdW40aV9oZG1pICpoZG1pID0gZHJt X2VuY29kZXJfdG9fc3VuNGlfaGRtaShlbmNvZGVyKTsKLQlzdHJ1Y3Qgc3VuNGlfY3J0YyAqY3J0 YyA9IGRybV9jcnRjX3RvX3N1bjRpX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Ci0Jc3RydWN0IHN1bjRp X3Rjb24gKnRjb24gPSBjcnRjLT50Y29uOwogCXUzMiB2YWwgPSAwOwogCiAJRFJNX0RFQlVHX0RS SVZFUigiRW5hYmxpbmcgdGhlIEhETUkgT3V0cHV0XG4iKTsKIAotCXN1bjRpX3Rjb25fY2hhbm5l bF9lbmFibGUodGNvbiwgMSk7Ci0KIAlzdW40aV9oZG1pX3NldHVwX2F2aV9pbmZvZnJhbWVzKGhk bWksIG1vZGUpOwogCXZhbCB8PSBTVU40SV9IRE1JX1BLVF9DVFJMX1RZUEUoMCwgU1VONElfSERN SV9QS1RfQVZJKTsKIAl2YWwgfD0gU1VONElfSERNSV9QS1RfQ1RSTF9UWVBFKDEsIFNVTjRJX0hE TUlfUEtUX0VORCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfcmdi LmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfcmdiLmMKaW5kZXggNzYzNjJjMDljNjA4 Li5lY2NlMWY1YjUwYWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9y Z2IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfcmdiLmMKQEAgLTEzNSwxMyAr MTM1LDEwIEBAIHN0YXRpYyB2b2lkIHN1bjRpX3JnYl9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCiAKIAlEUk1fREVCVUdfRFJJVkVSKCJFbmFibGluZyBSR0Igb3V0 cHV0XG4iKTsKIAotCWlmICghSVNfRVJSKHRjb24tPnBhbmVsKSkKKwlpZiAoIUlTX0VSUih0Y29u LT5wYW5lbCkpIHsKIAkJZHJtX3BhbmVsX3ByZXBhcmUodGNvbi0+cGFuZWwpOwotCi0Jc3VuNGlf dGNvbl9jaGFubmVsX2VuYWJsZSh0Y29uLCAwKTsKLQotCWlmICghSVNfRVJSKHRjb24tPnBhbmVs KSkKIAkJZHJtX3BhbmVsX2VuYWJsZSh0Y29uLT5wYW5lbCk7CisJfQogfQogCiBzdGF0aWMgdm9p ZCBzdW40aV9yZ2JfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK QEAgLTE1MSwxMyArMTQ4LDEwIEBAIHN0YXRpYyB2b2lkIHN1bjRpX3JnYl9lbmNvZGVyX2Rpc2Fi bGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCiAJRFJNX0RFQlVHX0RSSVZFUigiRGlz YWJsaW5nIFJHQiBvdXRwdXRcbiIpOwogCi0JaWYgKCFJU19FUlIodGNvbi0+cGFuZWwpKQorCWlm ICghSVNfRVJSKHRjb24tPnBhbmVsKSkgewogCQlkcm1fcGFuZWxfZGlzYWJsZSh0Y29uLT5wYW5l bCk7Ci0KLQlzdW40aV90Y29uX2NoYW5uZWxfZGlzYWJsZSh0Y29uLCAwKTsKLQotCWlmICghSVNf RVJSKHRjb24tPnBhbmVsKSkKIAkJZHJtX3BhbmVsX3VucHJlcGFyZSh0Y29uLT5wYW5lbCk7CisJ fQogfQogCiBzdGF0aWMgdm9pZCBzdW40aV9yZ2JfZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3Vu NGlfdGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3Rjb24uYwppbmRleCBkOTc5 MTI5MjU1M2UuLmRjNzBiYzJhNDJhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRp L3N1bjRpX3Rjb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfdGNvbi5jCkBA IC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5j bHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgor I2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4K ICNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CiAKQEAgLTMyLDY2ICszMyw2MiBAQAogI2luY2x1ZGUg InN1bjRpX3Rjb24uaCIKICNpbmNsdWRlICJzdW54aV9lbmdpbmUuaCIKIAotdm9pZCBzdW40aV90 Y29uX2Rpc2FibGUoc3RydWN0IHN1bjRpX3Rjb24gKnRjb24pCitzdGF0aWMgdm9pZCBzdW40aV90 Y29uX2NoYW5uZWxfc2V0X3N0YXR1cyhzdHJ1Y3Qgc3VuNGlfdGNvbiAqdGNvbiwgaW50IGNoYW5u ZWwsCisJCQkJCSAgYm9vbCBlbmFibGVkKQogewotCURSTV9ERUJVR19EUklWRVIoIkRpc2FibGlu ZyBUQ09OXG4iKTsKKwlzdHJ1Y3QgY2xrICpjbGs7CiAKLQkvKiBEaXNhYmxlIHRoZSBUQ09OICov Ci0JcmVnbWFwX3VwZGF0ZV9iaXRzKHRjb24tPnJlZ3MsIFNVTjRJX1RDT05fR0NUTF9SRUcsCi0J CQkgICBTVU40SV9UQ09OX0dDVExfVENPTl9FTkFCTEUsIDApOwotfQotRVhQT1JUX1NZTUJPTChz dW40aV90Y29uX2Rpc2FibGUpOwotCi12b2lkIHN1bjRpX3Rjb25fZW5hYmxlKHN0cnVjdCBzdW40 aV90Y29uICp0Y29uKQotewotCURSTV9ERUJVR19EUklWRVIoIkVuYWJsaW5nIFRDT05cbiIpOwot Ci0JLyogRW5hYmxlIHRoZSBUQ09OICovCi0JcmVnbWFwX3VwZGF0ZV9iaXRzKHRjb24tPnJlZ3Ms IFNVTjRJX1RDT05fR0NUTF9SRUcsCi0JCQkgICBTVU40SV9UQ09OX0dDVExfVENPTl9FTkFCTEUs Ci0JCQkgICBTVU40SV9UQ09OX0dDVExfVENPTl9FTkFCTEUpOwotfQotRVhQT1JUX1NZTUJPTChz dW40aV90Y29uX2VuYWJsZSk7Ci0KLXZvaWQgc3VuNGlfdGNvbl9jaGFubmVsX2Rpc2FibGUoc3Ry dWN0IHN1bjRpX3Rjb24gKnRjb24sIGludCBjaGFubmVsKQotewotCURSTV9ERUJVR19EUklWRVIo IkRpc2FibGluZyBUQ09OIGNoYW5uZWwgJWRcbiIsIGNoYW5uZWwpOwotCi0JLyogRGlzYWJsZSB0 aGUgVENPTidzIGNoYW5uZWwgKi8KLQlpZiAoY2hhbm5lbCA9PSAwKSB7CisJc3dpdGNoIChjaGFu bmVsKSB7CisJY2FzZSAwOgogCQlyZWdtYXBfdXBkYXRlX2JpdHModGNvbi0+cmVncywgU1VONElf VENPTjBfQ1RMX1JFRywKLQkJCQkgICBTVU40SV9UQ09OMF9DVExfVENPTl9FTkFCTEUsIDApOwot CQljbGtfZGlzYWJsZV91bnByZXBhcmUodGNvbi0+ZGNsayk7CisJCQkJICAgU1VONElfVENPTjBf Q1RMX1RDT05fRU5BQkxFLAorCQkJCSAgIGVuYWJsZWQgPyBTVU40SV9UQ09OMF9DVExfVENPTl9F TkFCTEUgOiAwKTsKKwkJY2xrID0gdGNvbi0+ZGNsazsKKwkJYnJlYWs7CisJY2FzZSAxOgorCQlX QVJOX09OKCF0Y29uLT5xdWlya3MtPmhhc19jaGFubmVsXzEpOworCQlyZWdtYXBfdXBkYXRlX2Jp dHModGNvbi0+cmVncywgU1VONElfVENPTjFfQ1RMX1JFRywKKwkJCQkgICBTVU40SV9UQ09OMV9D VExfVENPTl9FTkFCTEUsCisJCQkJICAgZW5hYmxlZCA/IFNVTjRJX1RDT04xX0NUTF9UQ09OX0VO QUJMRSA6IDApOworCQljbGsgPSB0Y29uLT5zY2xrMTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJ RFJNX0RFQlVHX0RSSVZFUigiVW5rbm93biBjaGFubmVsLi4uIGRvaW5nIG5vdGhpbmdcbiIpOwog CQlyZXR1cm47CiAJfQogCi0JV0FSTl9PTighdGNvbi0+cXVpcmtzLT5oYXNfY2hhbm5lbF8xKTsK LQlyZWdtYXBfdXBkYXRlX2JpdHModGNvbi0+cmVncywgU1VONElfVENPTjFfQ1RMX1JFRywKLQkJ CSAgIFNVTjRJX1RDT04xX0NUTF9UQ09OX0VOQUJMRSwgMCk7Ci0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKHRjb24tPnNjbGsxKTsKKwlpZiAoZW5hYmxlZCkKKwkJY2xrX3ByZXBhcmVfZW5hYmxlKGNs ayk7CisJZWxzZQorCQljbGtfZGlzYWJsZV91bnByZXBhcmUoY2xrKTsKIH0KLUVYUE9SVF9TWU1C T0woc3VuNGlfdGNvbl9jaGFubmVsX2Rpc2FibGUpOwogCi12b2lkIHN1bjRpX3Rjb25fY2hhbm5l bF9lbmFibGUoc3RydWN0IHN1bjRpX3Rjb24gKnRjb24sIGludCBjaGFubmVsKQordm9pZCBzdW40 aV90Y29uX3NldF9zdGF0dXMoc3RydWN0IHN1bjRpX3Rjb24gKnRjb24sCisJCQkgICBzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIsCisJCQkgICBib29sIGVuYWJsZWQpCiB7Ci0JRFJNX0RFQlVH X0RSSVZFUigiRW5hYmxpbmcgVENPTiBjaGFubmVsICVkXG4iLCBjaGFubmVsKTsKLQotCS8qIEVu YWJsZSB0aGUgVENPTidzIGNoYW5uZWwgKi8KLQlpZiAoY2hhbm5lbCA9PSAwKSB7Ci0JCXJlZ21h cF91cGRhdGVfYml0cyh0Y29uLT5yZWdzLCBTVU40SV9UQ09OMF9DVExfUkVHLAotCQkJCSAgIFNV TjRJX1RDT04wX0NUTF9UQ09OX0VOQUJMRSwKLQkJCQkgICBTVU40SV9UQ09OMF9DVExfVENPTl9F TkFCTEUpOwotCQljbGtfcHJlcGFyZV9lbmFibGUodGNvbi0+ZGNsayk7CisJaW50IGNoYW5uZWw7 CisKKwlzd2l0Y2ggKGVuY29kZXItPmVuY29kZXJfdHlwZSkgeworCWNhc2UgRFJNX01PREVfRU5D T0RFUl9OT05FOgorCQljaGFubmVsID0gMDsKKwkJYnJlYWs7CisJY2FzZSBEUk1fTU9ERV9FTkNP REVSX1RNRFM6CisJY2FzZSBEUk1fTU9ERV9FTkNPREVSX1RWREFDOgorCQljaGFubmVsID0gMTsK KwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0RFQlVHX0RSSVZFUigiVW5rbm93biBlbmNvZGVy IHR5cGUsIGRvaW5nIG5vdGhpbmcuLi5cbiIpOwogCQlyZXR1cm47CiAJfQogCi0JV0FSTl9PTigh dGNvbi0+cXVpcmtzLT5oYXNfY2hhbm5lbF8xKTsKLQlyZWdtYXBfdXBkYXRlX2JpdHModGNvbi0+ cmVncywgU1VONElfVENPTjFfQ1RMX1JFRywKLQkJCSAgIFNVTjRJX1RDT04xX0NUTF9UQ09OX0VO QUJMRSwKLQkJCSAgIFNVTjRJX1RDT04xX0NUTF9UQ09OX0VOQUJMRSk7Ci0JY2xrX3ByZXBhcmVf ZW5hYmxlKHRjb24tPnNjbGsxKTsKKwlzdW40aV90Y29uX2NoYW5uZWxfc2V0X3N0YXR1cyh0Y29u LCBjaGFubmVsLCBlbmFibGVkKTsKKworCXJlZ21hcF91cGRhdGVfYml0cyh0Y29uLT5yZWdzLCBT VU40SV9UQ09OX0dDVExfUkVHLAorCQkJICAgU1VONElfVENPTl9HQ1RMX1RDT05fRU5BQkxFLAor CQkJICAgZW5hYmxlZCA/IFNVTjRJX1RDT05fR0NUTF9UQ09OX0VOQUJMRSA6IDApOwogfQotRVhQ T1JUX1NZTUJPTChzdW40aV90Y29uX2NoYW5uZWxfZW5hYmxlKTsKK0VYUE9SVF9TWU1CT0woc3Vu NGlfdGNvbl9zZXRfc3RhdHVzKTsKIAogdm9pZCBzdW40aV90Y29uX2VuYWJsZV92Ymxhbmsoc3Ry dWN0IHN1bjRpX3Rjb24gKnRjb24sIGJvb2wgZW5hYmxlKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3N1bjRpL3N1bjRpX3Rjb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40 aV90Y29uLmgKaW5kZXggNTUyYzg4ZWMxNmJlLi44MjQ3MzJjOTBhMmEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90Y29uLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1 bjRpL3N1bjRpX3Rjb24uaApAQCAtMTgzLDE1ICsxODMsOSBAQCBzdHJ1Y3Qgc3VuNGlfdGNvbiB7 CiBzdHJ1Y3QgZHJtX2JyaWRnZSAqc3VuNGlfdGNvbl9maW5kX2JyaWRnZShzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGUpOwogc3RydWN0IGRybV9wYW5lbCAqc3VuNGlfdGNvbl9maW5kX3BhbmVsKHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSk7CiAKLS8qIEdsb2JhbCBDb250cm9sICovCi12b2lkIHN1 bjRpX3Rjb25fZGlzYWJsZShzdHJ1Y3Qgc3VuNGlfdGNvbiAqdGNvbik7Ci12b2lkIHN1bjRpX3Rj b25fZW5hYmxlKHN0cnVjdCBzdW40aV90Y29uICp0Y29uKTsKLQotLyogQ2hhbm5lbCBDb250cm9s ICovCi12b2lkIHN1bjRpX3Rjb25fY2hhbm5lbF9kaXNhYmxlKHN0cnVjdCBzdW40aV90Y29uICp0 Y29uLCBpbnQgY2hhbm5lbCk7Ci12b2lkIHN1bjRpX3Rjb25fY2hhbm5lbF9lbmFibGUoc3RydWN0 IHN1bjRpX3Rjb24gKnRjb24sIGludCBjaGFubmVsKTsKLQogdm9pZCBzdW40aV90Y29uX2VuYWJs ZV92Ymxhbmsoc3RydWN0IHN1bjRpX3Rjb24gKnRjb24sIGJvb2wgZW5hYmxlKTsKK3ZvaWQgc3Vu NGlfdGNvbl9zZXRfc3RhdHVzKHN0cnVjdCBzdW40aV90Y29uICpjcnRjLCBzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsCisJCQkgICBib29sIGVuYWJsZSk7CiAKIC8qIE1vZGUgUmVsYXRlZCBD b250cm9scyAqLwogdm9pZCBzdW40aV90Y29uX3NldF9tdXgoc3RydWN0IHN1bjRpX3Rjb24gKnRj b24sIGludCBjaGFubmVsLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRp X3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfdHYuYwppbmRleCA3M2JmZTdiMWNk NzguLjc4ZDZjZjc3ZmRkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRp X3R2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3R2LmMKQEAgLTM0NSwxMiAr MzQ1LDkgQEAgc3RhdGljIHZvaWQgc3VuNGlfdHZfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCiB7CiAJc3RydWN0IHN1bjRpX3R2ICp0diA9IGRybV9lbmNvZGVyX3RvX3N1bjRp X3R2KGVuY29kZXIpOwogCXN0cnVjdCBzdW40aV9jcnRjICpjcnRjID0gZHJtX2NydGNfdG9fc3Vu NGlfY3J0YyhlbmNvZGVyLT5jcnRjKTsKLQlzdHJ1Y3Qgc3VuNGlfdGNvbiAqdGNvbiA9IGNydGMt PnRjb247CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJEaXNhYmxpbmcgdGhlIFRWIE91dHB1dFxuIik7 CiAKLQlzdW40aV90Y29uX2NoYW5uZWxfZGlzYWJsZSh0Y29uLCAxKTsKLQogCXJlZ21hcF91cGRh dGVfYml0cyh0di0+cmVncywgU1VONElfVFZFX0VOX1JFRywKIAkJCSAgIFNVTjRJX1RWRV9FTl9F TkFCTEUsCiAJCQkgICAwKTsKQEAgLTM2Miw3ICszNTksNiBAQCBzdGF0aWMgdm9pZCBzdW40aV90 dl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBzdW40aV90 diAqdHYgPSBkcm1fZW5jb2Rlcl90b19zdW40aV90dihlbmNvZGVyKTsKIAlzdHJ1Y3Qgc3VuNGlf Y3J0YyAqY3J0YyA9IGRybV9jcnRjX3RvX3N1bjRpX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Ci0Jc3Ry dWN0IHN1bjRpX3Rjb24gKnRjb24gPSBjcnRjLT50Y29uOwogCiAJRFJNX0RFQlVHX0RSSVZFUigi RW5hYmxpbmcgdGhlIFRWIE91dHB1dFxuIik7CiAKQEAgLTM3MSw4ICszNjcsNiBAQCBzdGF0aWMg dm9pZCBzdW40aV90dl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXJlZ21h cF91cGRhdGVfYml0cyh0di0+cmVncywgU1VONElfVFZFX0VOX1JFRywKIAkJCSAgIFNVTjRJX1RW RV9FTl9FTkFCTEUsCiAJCQkgICBTVU40SV9UVkVfRU5fRU5BQkxFKTsKLQotCXN1bjRpX3Rjb25f Y2hhbm5lbF9lbmFibGUodGNvbiwgMSk7CiB9CiAKIHN0YXRpYyB2b2lkIHN1bjRpX3R2X21vZGVf c2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKLS0gCmdpdC1zZXJpZXMgMC45LjEKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==