From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philippe CORNU Subject: [PATCH v5 2/7] drm/stm: ltdc: Add panel-bridge support Date: Mon, 3 Jul 2017 10:41:22 +0200 Message-ID: <1499071287-10414-3-git-send-email-philippe.cornu@st.com> References: <1499071287-10414-1-git-send-email-philippe.cornu@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [62.209.51.94]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC7906E23D for ; Mon, 3 Jul 2017 08:46:56 +0000 (UTC) In-Reply-To: <1499071287-10414-1-git-send-email-philippe.cornu@st.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexandre Torgue , Thierry Reding , David Airlie , Maxime Coquelin , Russell King , Mark Rutland , Rob Herring , Arnd Bergmann , Benjamin Gaignard , Yannick Fertre , Neil Armstrong , Archit Taneja , Eric Anholt , Chris Zhong , Andrzej Hajda , Xinliang Liu , zourongrong@gmail.com, Xinwei Kong , Chen Feng , Mark Yao Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Philippe Cornu , Fabien Dessenne , dri-devel@lists.freedesktop.org, Mickael Reulier , Vincent Abriou , Gabriel Fernandez , Ludovic Barre List-Id: dri-devel@lists.freedesktop.org QWRkIHRoZSBwYW5lbC1icmlkZ2Ugc3VwcG9ydCBmb3IgYm90aCBwYW5lbHMgJiBicmlkZ2VzICh1 c2VkIGJ5IERTSSBob3N0ICYKSERNSS9MVkRTIGJyaWRnZXMpLgoKU2lnbmVkLW9mZi1ieTogUGhp bGlwcGUgQ09STlUgPHBoaWxpcHBlLmNvcm51QHN0LmNvbT4KUmV2aWV3ZWQtYnk6IEFyY2hpdCBU YW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3N0bS9L Y29uZmlnIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYyAgfCAyMTAgKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9z dG0vbHRkYy5oICB8ICAgMyArLQogMyBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAx NzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmln IGIvZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnCmluZGV4IDJjNDgxN2YuLjRiODgyMjMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdG0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9k cm0vc3RtL0tjb25maWcKQEAgLTQsNyArNCw3IEBAIGNvbmZpZyBEUk1fU1RNCiAJc2VsZWN0IERS TV9LTVNfSEVMUEVSCiAJc2VsZWN0IERSTV9HRU1fQ01BX0hFTFBFUgogCXNlbGVjdCBEUk1fS01T X0NNQV9IRUxQRVIKLQlzZWxlY3QgRFJNX1BBTkVMCisJc2VsZWN0IERSTV9QQU5FTF9CUklER0UK IAlzZWxlY3QgVklERU9NT0RFX0hFTFBFUlMKIAlzZWxlY3QgRkJfUFJPVklERV9HRVRfRkJfVU5N QVBQRURfQVJFQQogCWRlZmF1bHQgeQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0bS9s dGRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYwppbmRleCA3ZjY0ZDVhLi5lNDZiNDI3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vc3RtL2x0ZGMuYwpAQCAtMjEsNyArMjEsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fZmJf Y21hX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KICNpbmNs dWRlIDxkcm0vZHJtX29mLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorI2luY2x1ZGUg PGRybS9kcm1fYnJpZGdlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KIAog I2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgpAQCAtMjY5LDExICsyNjksNiBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCBsdGRjX2RldmljZSAqZW5jb2Rlcl90b19sdGRjKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jKQogCXJldHVybiAoc3RydWN0IGx0ZGNfZGV2aWNlICopZW5jLT5kZXYtPmRldl9w cml2YXRlOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBsdGRjX2RldmljZSAqY29ubmVjdG9y X3RvX2x0ZGMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbikKLXsKLQlyZXR1cm4gKHN0cnVjdCBs dGRjX2RldmljZSAqKWNvbi0+ZGV2LT5kZXZfcHJpdmF0ZTsKLX0KLQogc3RhdGljIGlubGluZSBl bnVtIGx0ZGNfcGl4X2ZtdCB0b19sdGRjX3BpeGVsZm9ybWF0KHUzMiBkcm1fZm10KQogewogCWVu dW0gbHRkY19waXhfZm10IHBmOwpAQCAtODE1LDEzMCArODEwLDM1IEBAIHN0YXRpYyBpbnQgbHRk Y19jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKICAqIERSTV9FTkNPREVSCiAgKi8KIAotc3RhdGljIHZvaWQgbHRkY19yZ2JfZW5jb2Rlcl9l bmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQotewotCXN0cnVjdCBsdGRjX2Rldmlj ZSAqbGRldiA9IGVuY29kZXJfdG9fbHRkYyhlbmNvZGVyKTsKLQotCURSTV9ERUJVR19EUklWRVIo IlxuIik7Ci0KLQlkcm1fcGFuZWxfcHJlcGFyZShsZGV2LT5wYW5lbCk7Ci0JZHJtX3BhbmVsX2Vu YWJsZShsZGV2LT5wYW5lbCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGx0ZGNfcmdiX2VuY29kZXJfZGlz YWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCi17Ci0Jc3RydWN0IGx0ZGNfZGV2aWNl ICpsZGV2ID0gZW5jb2Rlcl90b19sdGRjKGVuY29kZXIpOwotCi0JRFJNX0RFQlVHX0RSSVZFUigi XG4iKTsKLQotCWRybV9wYW5lbF9kaXNhYmxlKGxkZXYtPnBhbmVsKTsKLQlkcm1fcGFuZWxfdW5w cmVwYXJlKGxkZXYtPnBhbmVsKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rl cl9oZWxwZXJfZnVuY3MgbHRkY19yZ2JfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7Ci0JLmVuYWJs ZSA9IGx0ZGNfcmdiX2VuY29kZXJfZW5hYmxlLAotCS5kaXNhYmxlID0gbHRkY19yZ2JfZW5jb2Rl cl9kaXNhYmxlLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBs dGRjX3JnYl9lbmNvZGVyX2Z1bmNzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rl cl9mdW5jcyBsdGRjX2VuY29kZXJfZnVuY3MgPSB7CiAJLmRlc3Ryb3kgPSBkcm1fZW5jb2Rlcl9j bGVhbnVwLAogfTsKIAotc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqbHRkY19yZ2JfZW5jb2Rl cl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYpCitzdGF0aWMgaW50IGx0ZGNfZW5jb2Rl cl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KQogeworCXN0cnVjdCBsdGRjX2RldmljZSAq bGRldiA9IGRkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsK KwlpbnQgcmV0OwogCiAJZW5jb2RlciA9IGRldm1fa3phbGxvYyhkZGV2LT5kZXYsIHNpemVvZigq ZW5jb2RlciksIEdGUF9LRVJORUwpOwogCWlmICghZW5jb2RlcikKLQkJcmV0dXJuIE5VTEw7CisJ CXJldHVybiAtRU5PTUVNOwogCiAJZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSBDUlRDX01BU0s7 CiAJZW5jb2Rlci0+cG9zc2libGVfY2xvbmVzID0gMDsgLyogTm8gY2xvbmluZyBzdXBwb3J0ICov CiAKLQlkcm1fZW5jb2Rlcl9pbml0KGRkZXYsIGVuY29kZXIsICZsdGRjX3JnYl9lbmNvZGVyX2Z1 bmNzLAorCWRybV9lbmNvZGVyX2luaXQoZGRldiwgZW5jb2RlciwgJmx0ZGNfZW5jb2Rlcl9mdW5j cywKIAkJCSBEUk1fTU9ERV9FTkNPREVSX0RQSSwgTlVMTCk7CiAKLQlkcm1fZW5jb2Rlcl9oZWxw ZXJfYWRkKGVuY29kZXIsICZsdGRjX3JnYl9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7Ci0KLQlEUk1f REVCVUdfRFJJVkVSKCJSR0IgZW5jb2RlcjolZCBjcmVhdGVkXG4iLCBlbmNvZGVyLT5iYXNlLmlk KTsKLQotCXJldHVybiBlbmNvZGVyOwotfQotCi0vKgotICogRFJNX0NPTk5FQ1RPUgotICovCi0K LXN0YXRpYyBpbnQgbHRkY19yZ2JfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gY29ubmVjdG9y LT5kZXY7Ci0Jc3RydWN0IGx0ZGNfZGV2aWNlICpsZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7Ci0J aW50IHJldCA9IDA7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJcbiIpOwotCi0JaWYgKGxkZXYtPnBh bmVsKQotCQlyZXQgPSBkcm1fcGFuZWxfZ2V0X21vZGVzKGxkZXYtPnBhbmVsKTsKLQotCXJldHVy biByZXQgPCAwID8gMCA6IHJldDsKLX0KLQotc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hl bHBlcl9mdW5jcyBsdGRjX3JnYl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewotCS5nZXRfbW9k ZXMgPSBsdGRjX3JnYl9jb25uZWN0b3JfZ2V0X21vZGVzLAotfTsKLQotc3RhdGljIGVudW0gZHJt X2Nvbm5lY3Rvcl9zdGF0dXMKLWx0ZGNfcmdiX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKLXsKLQlzdHJ1Y3QgbHRkY19kZXZpY2Ug KmxkZXYgPSBjb25uZWN0b3JfdG9fbHRkYyhjb25uZWN0b3IpOwotCi0JcmV0dXJuIGxkZXYtPnBh bmVsID8gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQgOgotCSAgICAgICBjb25uZWN0b3Jfc3Rh dHVzX2Rpc2Nvbm5lY3RlZDsKLX0KLQotc3RhdGljIHZvaWQgbHRkY19yZ2JfY29ubmVjdG9yX2Rl c3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQlEUk1fREVCVUdfRFJJ VkVSKCJcbiIpOwotCi0JZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Ci0JZHJt X2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9mdW5jcyBsdGRjX3JnYl9jb25uZWN0b3JfZnVuY3MgPSB7Ci0JLmRwbXMg PSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKLQkuZmlsbF9tb2RlcyA9IGRybV9o ZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKLQkuZGV0ZWN0ID0gbHRkY19yZ2Jf Y29ubmVjdG9yX2RldGVjdCwKLQkuZGVzdHJveSA9IGx0ZGNfcmdiX2Nvbm5lY3Rvcl9kZXN0cm95 LAotCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNldCwKLQkuYXRvbWlj X2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVf c3RhdGUsCi0JLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVj dG9yX2Rlc3Ryb3lfc3RhdGUsCi19OwotCi1zdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqbHRkY19yZ2Jf Y29ubmVjdG9yX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldikKLXsKLQlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCWludCBlcnI7Ci0KLQljb25uZWN0b3IgPSBkZXZtX2t6 YWxsb2MoZGRldi0+ZGV2LCBzaXplb2YoKmNvbm5lY3RvciksIEdGUF9LRVJORUwpOwotCWlmICgh Y29ubmVjdG9yKSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIGNvbm5lY3Rvclxu Iik7Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCWNvbm5lY3Rvci0+cG9sbGVkID0gRFJNX0NPTk5F Q1RPUl9QT0xMX0hQRDsKLQotCWVyciA9IGRybV9jb25uZWN0b3JfaW5pdChkZGV2LCBjb25uZWN0 b3IsICZsdGRjX3JnYl9jb25uZWN0b3JfZnVuY3MsCi0JCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9E UEkpOwotCWlmIChlcnIpIHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjb25u ZWN0b3JcbiIpOwotCQlyZXR1cm4gTlVMTDsKKwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNv ZGVyLCBsZGV2LT5icmlkZ2UsIE5VTEwpOworCWlmIChyZXQpIHsKKwkJZHJtX2VuY29kZXJfY2xl YW51cChlbmNvZGVyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JZHJtX2Nvbm5lY3Rvcl9o ZWxwZXJfYWRkKGNvbm5lY3RvciwgJmx0ZGNfcmdiX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwot Ci0JRFJNX0RFQlVHX0RSSVZFUigiUkdCIGNvbm5lY3RvcjolZCBjcmVhdGVkXG4iLCBjb25uZWN0 b3ItPmJhc2UuaWQpOworCURSTV9ERUJVR19EUklWRVIoIkJyaWRnZSBlbmNvZGVyOiVkIGNyZWF0 ZWRcbiIsIGVuY29kZXItPmJhc2UuaWQpOwogCi0JcmV0dXJuIGNvbm5lY3RvcjsKKwlyZXR1cm4g MDsKIH0KIAogc3RhdGljIGludCBsdGRjX2dldF9jYXBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2 KQpAQCAtOTc0LDQ5ICs4NzQsMTQgQEAgc3RhdGljIGludCBsdGRjX2dldF9jYXBzKHN0cnVjdCBk cm1fZGV2aWNlICpkZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGRybV9wYW5l bCAqbHRkY19nZXRfcGFuZWwoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYpCi17Ci0Jc3RydWN0IGRl dmljZSAqZGV2ID0gZGRldi0+ZGV2OwotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkZXYtPm9m X25vZGU7Ci0Jc3RydWN0IGRldmljZV9ub2RlICplbnRpdHksICpwb3J0ID0gTlVMTDsKLQlzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCA9IE5VTEw7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJcbiIpOwot Ci0JLyoKLQkgKiBQYXJzZSBsdGRjIG5vZGUgdG8gZ2V0IHJlbW90ZSBwb3J0IGFuZCBmaW5kIFJH QiBwYW5lbCAvIEhETUkgc2xhdmUKLQkgKiBJZiBhIGRzaSBvciBhIGJyaWRnZSAoaGRtaSwgbHZk cy4uLikgaXMgY29ubmVjdGVkIHRvIGx0ZGMsCi0JICogYSByZW1vdGUgcG9ydCAmIFJHQiBwYW5l bCB3aWxsIG5vdCBiZSBmb3VuZC4KLQkgKi8KLQlmb3JfZWFjaF9lbmRwb2ludF9vZl9ub2RlKG5w LCBlbnRpdHkpIHsKLQkJaWYgKCFvZl9kZXZpY2VfaXNfYXZhaWxhYmxlKGVudGl0eSkpCi0JCQlj b250aW51ZTsKLQotCQlwb3J0ID0gb2ZfZ3JhcGhfZ2V0X3JlbW90ZV9wb3J0X3BhcmVudChlbnRp dHkpOwotCQlpZiAocG9ydCkgewotCQkJcGFuZWwgPSBvZl9kcm1fZmluZF9wYW5lbChwb3J0KTsK LQkJCW9mX25vZGVfcHV0KHBvcnQpOwotCQkJaWYgKHBhbmVsKSB7Ci0JCQkJRFJNX0RFQlVHX0RS SVZFUigicmVtb3RlIHBhbmVsICVzXG4iLAotCQkJCQkJIHBvcnQtPmZ1bGxfbmFtZSk7Ci0JCQl9 IGVsc2UgewotCQkJCURSTV9ERUJVR19EUklWRVIoInBhbmVsIG1pc3NpbmdcbiIpOwotCQkJCW9m X25vZGVfcHV0KGVudGl0eSk7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gcGFuZWw7Ci19Ci0K IGludCBsdGRjX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYpCiB7CiAJc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZGV2LT5kZXYpOwogCXN0cnVj dCBsdGRjX2RldmljZSAqbGRldiA9IGRkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkZXZpY2Ug KmRldiA9IGRkZXYtPmRldjsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9ub2Rl OwotCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOworCXN0cnVjdCBk cm1fcGFuZWwgKnBhbmVsOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgcmVzZXRf Y29udHJvbCAqcnN0YzsKIAlzdHJ1Y3QgcmVzb3VyY2UgcmVzOwpAQCAtMTAyNCw5ICs4ODksOSBA QCBpbnQgbHRkY19sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KQogCiAJRFJNX0RFQlVHX0RS SVZFUigiXG4iKTsKIAotCWxkZXYtPnBhbmVsID0gbHRkY19nZXRfcGFuZWwoZGRldik7Ci0JaWYg KCFsZGV2LT5wYW5lbCkKLQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CisJcmV0ID0gZHJtX29mX2Zp bmRfcGFuZWxfb3JfYnJpZGdlKG5wLCAwLCAwLCAmcGFuZWwsICZicmlkZ2UpOworCWlmIChyZXQp CisJCXJldHVybiByZXQ7CiAKIAlyc3RjID0gb2ZfcmVzZXRfY29udHJvbF9nZXQobnAsIE5VTEwp OwogCkBAIC0xMDg2LDI4ICs5NTEsMjIgQEAgaW50IGx0ZGNfbG9hZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGRldikKIAogCURSTV9JTkZPKCJsdGRjIGh3IHZlcnNpb24gMHglMDh4IC0gcmVhZHlcbiIs IGxkZXYtPmNhcHMuaHdfdmVyc2lvbik7CiAKLQlpZiAobGRldi0+cGFuZWwpIHsKLQkJZW5jb2Rl ciA9IGx0ZGNfcmdiX2VuY29kZXJfY3JlYXRlKGRkZXYpOwotCQlpZiAoIWVuY29kZXIpIHsKLQkJ CURSTV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBSR0IgZW5jb2RlclxuIik7Ci0JCQlyZXQgPSAt RUlOVkFMOwotCQkJZ290byBlcnI7Ci0JCX0KLQotCQljb25uZWN0b3IgPSBsdGRjX3JnYl9jb25u ZWN0b3JfY3JlYXRlKGRkZXYpOwotCQlpZiAoIWNvbm5lY3RvcikgewotCQkJRFJNX0VSUk9SKCJG YWlsZWQgdG8gY3JlYXRlIFJHQiBjb25uZWN0b3JcbiIpOwotCQkJcmV0ID0gLUVJTlZBTDsKKwlp ZiAocGFuZWwpIHsKKwkJYnJpZGdlID0gZHJtX3BhbmVsX2JyaWRnZV9hZGQocGFuZWwsIERSTV9N T0RFX0NPTk5FQ1RPUl9EUEkpOworCQlpZiAoSVNfRVJSKGJyaWRnZSkpIHsKKwkJCURSTV9FUlJP UigiRmFpbGVkIHRvIGNyZWF0ZSBwYW5lbC1icmlkZ2VcbiIpOworCQkJcmV0ID0gUFRSX0VSUihi cmlkZ2UpOwogCQkJZ290byBlcnI7CiAJCX0KKwkJbGRldi0+aXNfcGFuZWxfYnJpZGdlID0gdHJ1 ZTsKKwl9CiAKLQkJcmV0ID0gZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGNvbm5l Y3RvciwgZW5jb2Rlcik7Ci0JCWlmIChyZXQpIHsKLQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGF0 dGFjaCBjb25uZWN0b3IgdG8gZW5jb2RlclxuIik7Ci0JCQlnb3RvIGVycjsKLQkJfQorCWxkZXYt PmJyaWRnZSA9IGJyaWRnZTsKIAotCQlkcm1fcGFuZWxfYXR0YWNoKGxkZXYtPnBhbmVsLCBjb25u ZWN0b3IpOworCXJldCA9IGx0ZGNfZW5jb2Rlcl9pbml0KGRkZXYpOworCWlmIChyZXQpIHsKKwkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBlbmNvZGVyXG4iKTsKKwkJZ290byBlcnI7CiAJfQog CiAJY3J0YyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY3J0YyksIEdGUF9LRVJORUwpOwpA QCAtMTEzMyw5ICs5OTIsMTAgQEAgaW50IGx0ZGNfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGRl dikKIAlkZGV2LT5pcnFfZW5hYmxlZCA9IDE7CiAKIAlyZXR1cm4gMDsKKwogZXJyOgotCWlmIChs ZGV2LT5wYW5lbCkKLQkJZHJtX3BhbmVsX2RldGFjaChsZGV2LT5wYW5lbCk7CisJaWYgKGxkZXYt PmlzX3BhbmVsX2JyaWRnZSkKKwkJZHJtX3BhbmVsX2JyaWRnZV9yZW1vdmUoYnJpZGdlKTsKIAog CWNsa19kaXNhYmxlX3VucHJlcGFyZShsZGV2LT5waXhlbF9jbGspOwogCkBAIC0xMTQ4LDggKzEw MDgsOCBAQCB2b2lkIGx0ZGNfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KQogCiAJRFJN X0RFQlVHX0RSSVZFUigiXG4iKTsKIAotCWlmIChsZGV2LT5wYW5lbCkKLQkJZHJtX3BhbmVsX2Rl dGFjaChsZGV2LT5wYW5lbCk7CisJaWYgKGxkZXYtPmlzX3BhbmVsX2JyaWRnZSkKKwkJZHJtX3Bh bmVsX2JyaWRnZV9yZW1vdmUobGRldi0+YnJpZGdlKTsKIAogCWNsa19kaXNhYmxlX3VucHJlcGFy ZShsZGV2LT5waXhlbF9jbGspOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0bS9s dGRjLmggYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuaAppbmRleCBkN2E5YzczLi5kOWU4OTlk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vc3RtL2x0ZGMuaApAQCAtMjQsNyArMjQsOCBAQCBzdHJ1Y3QgbHRkY19kZXZpY2Ugewog CXN0cnVjdCBkcm1fZmJkZXZfY21hICpmYmRldjsKIAl2b2lkIF9faW9tZW0gKnJlZ3M7CiAJc3Ry dWN0IGNsayAqcGl4ZWxfY2xrOwkvKiBsY2QgcGl4ZWwgY2xvY2sgKi8KLQlzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbDsKKwlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOworCWJvb2wgaXNfcGFuZWxf YnJpZGdlOwogCXN0cnVjdCBtdXRleCBlcnJfbG9jazsJLyogcHJvdGVjdGluZyBlcnJvcl9zdGF0 dXMgKi8KIAlzdHJ1Y3QgbHRkY19jYXBzIGNhcHM7CiAJdTMyIGNsdXRbMjU2XTsJCS8qIGNvbG9y IGxvb2sgdXAgdGFibGUgKi8KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK