From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeffy Chen Subject: [RFC PATCH v3 3/5] drm/bridge/analogix: Do not use device's drvdata Date: Tue, 17 Oct 2017 16:09:23 +0800 Message-ID: <20171017080925.23763-4-jeffy.chen@rock-chips.com> References: <20171017080925.23763-1-jeffy.chen@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from regular1.263xmail.com (regular1.263xmail.com [211.150.99.137]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A39E6E59A for ; Tue, 17 Oct 2017 08:10:22 +0000 (UTC) In-Reply-To: <20171017080925.23763-1-jeffy.chen@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, Laurent Pinchart , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, briannorris@chromium.org, Krzysztof Kozlowski , linux-rockchip@lists.infradead.org, Kukjin Kim , Caesar Wang , Jeffy Chen , broonie@kernel.org, linux-arm-kernel@lists.infradead.org, rjw@rjwysocki.net, zain wang , Tomeu Vizoso , Jingoo Han , dmitry.torokhov@gmail.com, Seung-Woo Kim , dianders@chromium.org, tfiga@chromium.org, Kyungmin Park List-Id: dri-devel@lists.freedesktop.org RnJvbTogVG9tYXN6IEZpZ2EgPHRmaWdhQGNocm9taXVtLm9yZz4KClRoZSBkcml2ZXIgdGhhdCBp bnN0YW50aWF0ZXMgdGhlIGJyaWRnZSBzaG91bGQgb3duIHRoZSBkcnZkYXRhLCBhcyBhbGwKZHJp dmVyIG1vZGVsIGNhbGxiYWNrcyAocHJvYmUsIHJlbW92ZSwgc2h1dGRvd24sIFBNIG9wcywgZXRj LikgYXJlIGFsc28Kb3duZWQgYnkgaXRzIGRyaXZlciBzdHJ1Y3QuIE1vcmVvdmVyLCBzdG9yaW5n IHR3byBkaWZmZXJlbnQgcG9pbnRlcgp0eXBlcyBpbiBkcml2ZXIgZGF0YSBkZXBlbmRpbmcgb24g ZHJpdmVyIGluaXRpYWxpemF0aW9uIHN0YXR1cyBpcyBiYXJlbHkKYSBnb29kIHByYWN0aWNlIGFu ZCBpbiBmYWN0IGhhcyBsZWQgdG8gbWFueSBidWdzIGluIHRoaXMgZHJpdmVyLgoKTGV0J3MgY2xl YW4gdXAgdGhpcyBtZXNzIGFuZCBjaGFuZ2UgQW5hbG9naXggZW50cnkgcG9pbnRzIHRvIHNpbXBs eQphY2NlcHQgc29tZSBvcGFxdWUgc3RydWN0IHBvaW50ZXIsIGFkanVzdGluZyB0aGVpciB1c2Vy cyBhdCB0aGUgc2FtZQp0aW1lIHRvIGF2b2lkIGJyZWFraW5nIHRoZSBjb21waWxhdGlvbi4KClNp Z25lZC1vZmYtYnk6IFRvbWFzeiBGaWdhIDx0ZmlnYUBjaHJvbWl1bS5vcmc+ClNpZ25lZC1vZmYt Ynk6IEplZmZ5IENoZW4gPGplZmZ5LmNoZW5Acm9jay1jaGlwcy5jb20+ClJldmlld2VkLWJ5OiBB bmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgotLS0KCkNoYW5nZXMgaW4gdjM6IE5v bmUKQ2hhbmdlcyBpbiB2MjogTm9uZQoKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgv YW5hbG9naXhfZHBfY29yZS5jIHwgNTAgKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYyAgICAgICAgICAgICAgICAgfCAyNiArKysrKystLS0t LQogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMgICAgfCA0 NyArKysrKysrKysrKy0tLS0tLS0tLQogaW5jbHVkZS9kcm0vYnJpZGdlL2FuYWxvZ2l4X2RwLmgg ICAgICAgICAgICAgICAgICAgfCAxOSArKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNl cnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jCmluZGV4IDVkZDNmMWNkMDc0YS4uNzRkMjc0 YjZkMzFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxv Z2l4X2RwX2NvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxv Z2l4X2RwX2NvcmUuYwpAQCAtOTgsMTcgKzk4LDE1IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBf ZGV0ZWN0X2hwZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIAlyZXR1cm4gMDsKIH0K IAotaW50IGFuYWxvZ2l4X2RwX3Bzcl9zdXBwb3J0ZWQoc3RydWN0IGRldmljZSAqZGV2KQoraW50 IGFuYWxvZ2l4X2RwX3Bzcl9zdXBwb3J0ZWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAp CiB7Ci0Jc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKIAogCXJldHVybiBkcC0+cHNyX3N1cHBvcnQ7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChhbmFs b2dpeF9kcF9wc3Jfc3VwcG9ydGVkKTsKIAotaW50IGFuYWxvZ2l4X2RwX2VuYWJsZV9wc3Ioc3Ry dWN0IGRldmljZSAqZGV2KQoraW50IGFuYWxvZ2l4X2RwX2VuYWJsZV9wc3Ioc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHApCiB7Ci0Jc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgZWRwX3ZzY19wc3IgcHNyX3ZzYzsKIAogCWlm ICghZHAtPnBzcl9zdXBwb3J0KQpAQCAtMTI5LDkgKzEyNyw4IEBAIGludCBhbmFsb2dpeF9kcF9l bmFibGVfcHNyKHN0cnVjdCBkZXZpY2UgKmRldikKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGFuYWxv Z2l4X2RwX2VuYWJsZV9wc3IpOwogCi1pbnQgYW5hbG9naXhfZHBfZGlzYWJsZV9wc3Ioc3RydWN0 IGRldmljZSAqZGV2KQoraW50IGFuYWxvZ2l4X2RwX2Rpc2FibGVfcHNyKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwKQogewotCXN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwID0gZGV2 X2dldF9kcnZkYXRhKGRldik7CiAJc3RydWN0IGVkcF92c2NfcHNyIHBzcl92c2M7CiAJaW50IHJl dDsKIApAQCAtMTI4MSw4ICsxMjc4LDkgQEAgc3RhdGljIHNzaXplX3QgYW5hbG9naXhfZHBhdXhf dHJhbnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKIAlyZXR1cm4gYW5hbG9naXhfZHBfdHJh bnNmZXIoZHAsIG1zZyk7CiB9CiAKLWludCBhbmFsb2dpeF9kcF9iaW5kKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCi0JCSAgICAgc3RydWN0IGFuYWxvZ2l4 X2RwX3BsYXRfZGF0YSAqcGxhdF9kYXRhKQorc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqCith bmFsb2dpeF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRy bV9kZXYsCisJCSBzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhICpwbGF0X2RhdGEpCiB7CiAJ c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOwog CXN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwOwpAQCAtMTI5MiwxNCArMTI5MCwxMiBAQCBp bnQgYW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNl ICpkcm1fZGV2LAogCiAJaWYgKCFwbGF0X2RhdGEpIHsKIAkJZGV2X2VycihkZXYsICJJbnZhbGlk ZWQgaW5wdXQgcGxhdF9kYXRhXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiBFUlJf UFRSKC1FSU5WQUwpOwogCX0KIAogCWRwID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWRwKQotCQlyZXR1cm4g LUVOT01FTTsKLQotCWRldl9zZXRfZHJ2ZGF0YShkZXYsIGRwKTsKKwkJcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CiAKIAlkcC0+ZGV2ID0gJnBkZXYtPmRldjsKIAlkcC0+ZHBtc19tb2RlID0gRFJN X01PREVfRFBNU19PRkY7CkBAIC0xMzE2LDcgKzEzMTIsNyBAQCBpbnQgYW5hbG9naXhfZHBfYmlu ZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAogCiAJcmV0 ID0gYW5hbG9naXhfZHBfZHRfcGFyc2VfcGRhdGEoZHApOwogCWlmIChyZXQpCi0JCXJldHVybiBy ZXQ7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAKIAlkcC0+cGh5ID0gZGV2bV9waHlfZ2V0KGRw LT5kZXYsICJkcCIpOwogCWlmIChJU19FUlIoZHAtPnBoeSkpIHsKQEAgLTEzMzAsMTQgKzEzMjYs MTQgQEAgaW50IGFuYWxvZ2l4X2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X2RldmljZSAqZHJtX2RldiwKIAkJCWlmIChyZXQgPT0gLUVOT1NZUyB8fCByZXQgPT0gLUVOT0RF VikKIAkJCQlkcC0+cGh5ID0gTlVMTDsKIAkJCWVsc2UKLQkJCQlyZXR1cm4gcmV0OworCQkJCXJl dHVybiBFUlJfUFRSKHJldCk7CiAJCX0KIAl9CiAKIAlkcC0+Y2xvY2sgPSBkZXZtX2Nsa19nZXQo JnBkZXYtPmRldiwgImRwIik7CiAJaWYgKElTX0VSUihkcC0+Y2xvY2spKSB7CiAJCWRldl9lcnIo JnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgY2xvY2tcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihk cC0+Y2xvY2spOworCQlyZXR1cm4gRVJSX0NBU1QoZHAtPmNsb2NrKTsKIAl9CiAKIAljbGtfcHJl cGFyZV9lbmFibGUoZHAtPmNsb2NrKTsKQEAgLTEzNDYsNyArMTM0Miw3IEBAIGludCBhbmFsb2dp eF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYs CiAKIAlkcC0+cmVnX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVz KTsKIAlpZiAoSVNfRVJSKGRwLT5yZWdfYmFzZSkpCi0JCXJldHVybiBQVFJfRVJSKGRwLT5yZWdf YmFzZSk7CisJCXJldHVybiBFUlJfQ0FTVChkcC0+cmVnX2Jhc2UpOwogCiAJZHAtPmZvcmNlX2hw ZCA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYtPm9mX25vZGUsICJmb3JjZS1ocGQiKTsKIApA QCAtMTM2Nyw3ICsxMzYzLDcgQEAgaW50IGFuYWxvZ2l4X2RwX2JpbmQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKIAkJCQkJICAgICJocGRfZ3BpbyIpOwog CQlpZiAocmV0KSB7CiAJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGhwZCBn cGlvXG4iKTsKLQkJCXJldHVybiByZXQ7CisJCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCQl9CiAJ CWRwLT5pcnEgPSBncGlvX3RvX2lycShkcC0+aHBkX2dwaW8pOwogCQlpcnFfZmxhZ3MgPSBJUlFG X1RSSUdHRVJfUklTSU5HIHwgSVJRRl9UUklHR0VSX0ZBTExJTkc7CkBAIC0xMzc5LDcgKzEzNzUs NyBAQCBpbnQgYW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f ZGV2aWNlICpkcm1fZGV2LAogCiAJaWYgKGRwLT5pcnEgPT0gLUVOWElPKSB7CiAJCWRldl9lcnIo JnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgaXJxXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJ CXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCX0KIAogCXBtX3J1bnRpbWVfZW5hYmxlKGRldik7 CkBAIC0xNDIwLDcgKzE0MTYsNyBAQCBpbnQgYW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAogCXBoeV9wb3dlcl9vZmYoZHAtPnBo eSk7CiAJcG1fcnVudGltZV9wdXQoZGV2KTsKIAotCXJldHVybiAwOworCXJldHVybiBkcDsKIAog ZXJyX2Rpc2FibGVfcG1fcnVudGltZToKIApAQCAtMTQyOCwxNSArMTQyNCwxMiBAQCBpbnQgYW5h bG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1f ZGV2LAogCXBtX3J1bnRpbWVfcHV0KGRldik7CiAJcG1fcnVudGltZV9kaXNhYmxlKGRldik7CiAK LQlyZXR1cm4gcmV0OworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQ TChhbmFsb2dpeF9kcF9iaW5kKTsKIAotdm9pZCBhbmFsb2dpeF9kcF91bmJpbmQoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCi0JCQl2b2lkICpkYXRhKQordm9pZCBh bmFsb2dpeF9kcF91bmJpbmQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiB7Ci0Jc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQogCWFu YWxvZ2l4X2RwX2JyaWRnZV9kaXNhYmxlKGRwLT5icmlkZ2UpOwogCWRwLT5jb25uZWN0b3IuZnVu Y3MtPmRlc3Ryb3koJmRwLT5jb25uZWN0b3IpOwogCWRwLT5lbmNvZGVyLT5mdW5jcy0+ZGVzdHJv eShkcC0+ZW5jb2Rlcik7CkBAIC0xNDQ5LDE2ICsxNDQyLDE0IEBAIHZvaWQgYW5hbG9naXhfZHBf dW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCX0KIAog CWRybV9kcF9hdXhfdW5yZWdpc3RlcigmZHAtPmF1eCk7Ci0JcG1fcnVudGltZV9kaXNhYmxlKGRl dik7CisJcG1fcnVudGltZV9kaXNhYmxlKGRwLT5kZXYpOwogCWNsa19kaXNhYmxlX3VucHJlcGFy ZShkcC0+Y2xvY2spOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoYW5hbG9naXhfZHBfdW5iaW5kKTsK IAogI2lmZGVmIENPTkZJR19QTQotaW50IGFuYWxvZ2l4X2RwX3N1c3BlbmQoc3RydWN0IGRldmlj ZSAqZGV2KQoraW50IGFuYWxvZ2l4X2RwX3N1c3BlbmQoc3RydWN0IGFuYWxvZ2l4X2RwX2Rldmlj ZSAqZHApCiB7Ci0Jc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsKLQogCWNsa19kaXNhYmxlX3VucHJlcGFyZShkcC0+Y2xvY2spOwogCiAJaWYgKGRw LT5wbGF0X2RhdGEtPnBhbmVsKSB7CkBAIC0xNDcwLDkgKzE0NjEsOCBAQCBpbnQgYW5hbG9naXhf ZHBfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChhbmFs b2dpeF9kcF9zdXNwZW5kKTsKIAotaW50IGFuYWxvZ2l4X2RwX3Jlc3VtZShzdHJ1Y3QgZGV2aWNl ICpkZXYpCitpbnQgYW5hbG9naXhfZHBfcmVzdW1lKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwKQogewotCXN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRh KGRldik7CiAJaW50IHJldDsKIAogCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShkcC0+Y2xvY2sp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYyBiL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwLmMKaW5kZXggMzk2MjllN2E4MGI5Li5mN2U1YjJj NDA1ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYwpAQCAtNDEsNiArNDEsNyBAQCBz dHJ1Y3QgZXh5bm9zX2RwX2RldmljZSB7CiAJc3RydWN0IGRldmljZSAgICAgICAgICAgICAgKmRl djsKIAogCXN0cnVjdCB2aWRlb21vZGUgICAgICAgICAgIHZtOworCXN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmFkcDsKIAlzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhIHBsYXRfZGF0YTsK IH07CiAKQEAgLTE1NywxMyArMTU4LDYgQEAgc3RhdGljIGludCBleHlub3NfZHBfYmluZChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRhdGE7CiAJaW50IHJldDsKIAotCS8qCi0JICogSnVz dCBsaWtlIHRoZSBwcm9iZSBmdW5jdGlvbiBzYWlkLCB3ZSBkb24ndCBuZWVkIHRoZQotCSAqIGRl dmljZSBkcnZyYXRlIGFueW1vcmUsIHdlIHNob3VsZCBsZWF2ZSB0aGUgY2hhcmdlIHRvCi0JICog YW5hbG9naXggZHAgZHJpdmVyLCBzZXQgdGhlIGRldmljZSBkcnZkYXRhIHRvIE5VTEwuCi0JICov Ci0JZGV2X3NldF9kcnZkYXRhKGRldiwgTlVMTCk7Ci0KIAlkcC0+ZGV2ID0gZGV2OwogCWRwLT5k cm1fZGV2ID0gZHJtX2RldjsKIApAQCAtMTkwLDEzICsxODQsMTkgQEAgc3RhdGljIGludCBleHlu b3NfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9p ZCAqZGF0YSkKIAogCWRwLT5wbGF0X2RhdGEuZW5jb2RlciA9IGVuY29kZXI7CiAKLQlyZXR1cm4g YW5hbG9naXhfZHBfYmluZChkZXYsIGRwLT5kcm1fZGV2LCAmZHAtPnBsYXRfZGF0YSk7CisJZHAt PmFkcCA9IGFuYWxvZ2l4X2RwX2JpbmQoZGV2LCBkcC0+ZHJtX2RldiwgJmRwLT5wbGF0X2RhdGEp OworCWlmIChJU19FUlIoZHAtPmFkcCkpCisJCXJldHVybiBQVFJfRVJSKGRwLT5hZHApOworCisJ cmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGV4eW5vc19kcF91bmJpbmQoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJCQkgICAgIHZvaWQgKmRhdGEpCiB7Ci0J cmV0dXJuIGFuYWxvZ2l4X2RwX3VuYmluZChkZXYsIG1hc3RlciwgZGF0YSk7CisJc3RydWN0IGV4 eW5vc19kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gYW5h bG9naXhfZHBfdW5iaW5kKGRwLT5hZHApOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBv bmVudF9vcHMgZXh5bm9zX2RwX29wcyA9IHsKQEAgLTI1NywxMiArMjU3LDE2IEBAIHN0YXRpYyBp bnQgZXh5bm9zX2RwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogI2lmZGVm IENPTkZJR19QTQogc3RhdGljIGludCBleHlub3NfZHBfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpk ZXYpCiB7Ci0JcmV0dXJuIGFuYWxvZ2l4X2RwX3N1c3BlbmQoZGV2KTsKKwlzdHJ1Y3QgZXh5bm9z X2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCXJldHVybiBhbmFsb2dp eF9kcF9zdXNwZW5kKGRwLT5hZHApOwogfQogCiBzdGF0aWMgaW50IGV4eW5vc19kcF9yZXN1bWUo c3RydWN0IGRldmljZSAqZGV2KQogewotCXJldHVybiBhbmFsb2dpeF9kcF9yZXN1bWUoZGV2KTsK KwlzdHJ1Y3QgZXh5bm9zX2RwX2RldmljZSAqZHAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwor CXJldHVybiBhbmFsb2dpeF9kcF9yZXN1bWUoZHAtPmFkcCk7CiB9CiAjZW5kaWYKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMgYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAuYwppbmRleCBjYjg5 NDFlOGJjZGQuLmU4YmU2Y2JjNWYzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKQEAgLTc3LDYgKzc3LDcgQEAgc3RydWN0IHJvY2tjaGlw X2RwX2RldmljZSB7CiAKIAljb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZHBfY2hpcF9kYXRhICpkYXRh OwogCisJc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqYWRwOwogCXN0cnVjdCBhbmFsb2dpeF9k cF9wbGF0X2RhdGEgcGxhdF9kYXRhOwogfTsKIApAQCAtODUsNyArODYsNyBAQCBzdGF0aWMgdm9p ZCBhbmFsb2dpeF9kcF9wc3Jfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgYm9vbCBl bmFibGVkKQogCXN0cnVjdCByb2NrY2hpcF9kcF9kZXZpY2UgKmRwID0gdG9fZHAoZW5jb2Rlcik7 CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWlmICghYW5hbG9naXhfZHBfcHNyX3N1cHBvcnRl ZChkcC0+ZGV2KSkKKwlpZiAoIWFuYWxvZ2l4X2RwX3Bzcl9zdXBwb3J0ZWQoZHAtPmFkcCkpCiAJ CXJldHVybjsKIAogCURSTV9ERVZfREVCVUcoZHAtPmRldiwgIiVzIFBTUi4uLlxuIiwgZW5hYmxl ZCA/ICJFbnRyeSIgOiAiRXhpdCIpOwpAQCAtMTE2LDkgKzExNyw5IEBAIHN0YXRpYyB2b2lkIGFu YWxvZ2l4X2RwX3Bzcl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAogCXNwaW5fbG9j a19pcnFzYXZlKCZkcC0+cHNyX2xvY2ssIGZsYWdzKTsKIAlpZiAoZHAtPnBzcl9zdGF0ZSA9PSBF RFBfVlNDX1BTUl9TVEFURV9BQ1RJVkUpCi0JCWFuYWxvZ2l4X2RwX2VuYWJsZV9wc3IoZHAtPmRl dik7CisJCWFuYWxvZ2l4X2RwX2VuYWJsZV9wc3IoZHAtPmFkcCk7CiAJZWxzZQotCQlhbmFsb2dp eF9kcF9kaXNhYmxlX3BzcihkcC0+ZGV2KTsKKwkJYW5hbG9naXhfZHBfZGlzYWJsZV9wc3IoZHAt PmFkcCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHAtPnBzcl9sb2NrLCBmbGFncyk7CiB9 CiAKQEAgLTM1MCwxMyArMzUxLDYgQEAgc3RhdGljIGludCByb2NrY2hpcF9kcF9iaW5kKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCXN0cnVjdCBkcm1fZGV2aWNl ICpkcm1fZGV2ID0gZGF0YTsKIAlpbnQgcmV0OwogCi0JLyoKLQkgKiBKdXN0IGxpa2UgdGhlIHBy b2JlIGZ1bmN0aW9uIHNhaWQsIHdlIGRvbid0IG5lZWQgdGhlCi0JICogZGV2aWNlIGRydnJhdGUg YW55bW9yZSwgd2Ugc2hvdWxkIGxlYXZlIHRoZSBjaGFyZ2UgdG8KLQkgKiBhbmFsb2dpeCBkcCBk cml2ZXIsIHNldCB0aGUgZGV2aWNlIGRydmRhdGEgdG8gTlVMTC4KLQkgKi8KLQlkZXZfc2V0X2Ry dmRhdGEoZGV2LCBOVUxMKTsKLQogCWRwX2RhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEo ZGV2KTsKIAlpZiAoIWRwX2RhdGEpCiAJCXJldHVybiAtRU5PREVWOwpAQCAtMzg3LDkgKzM4MSwx MSBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZGV2aWNlICptYXN0ZXIsCiAKIAlyb2NrY2hpcF9kcm1fcHNyX3JlZ2lzdGVyKCZkcC0+ZW5j b2RlciwgYW5hbG9naXhfZHBfcHNyX3NldCk7CiAKLQlyZXQgPSBhbmFsb2dpeF9kcF9iaW5kKGRl diwgZHAtPmRybV9kZXYsICZkcC0+cGxhdF9kYXRhKTsKLQlpZiAocmV0IDwgMCkKKwlkcC0+YWRw ID0gYW5hbG9naXhfZHBfYmluZChkZXYsIGRwLT5kcm1fZGV2LCAmZHAtPnBsYXRfZGF0YSk7CisJ aWYgKElTX0VSUihkcC0+YWRwKSkgeworCQlyZXQgPSBQVFJfRVJSKGRwLT5hZHApOwogCQlnb3Rv IGVycl91bnJlZ19wc3I7CisJfQogCXJldHVybiAwOwogCiBlcnJfdW5yZWdfcHNyOgpAQCAtNDA3 LDcgKzQwMyw3IEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2RwX3VuYmluZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAogCXJvY2tjaGlwX2RybV9wc3JfdW5yZWdp c3RlcigmZHAtPmVuY29kZXIpOwogCi0JYW5hbG9naXhfZHBfdW5iaW5kKGRldiwgbWFzdGVyLCBk YXRhKTsKKwlhbmFsb2dpeF9kcF91bmJpbmQoZHAtPmFkcCk7CiAJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKGRwLT5wY2xrKTsKIH0KIApAQCAtNDM1LDExICs0MzEsNiBAQCBzdGF0aWMgaW50IHJvY2tj aGlwX2RwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlkcC0+cGxhdF9k YXRhLnBhbmVsID0gcGFuZWw7CiAKLQkvKgotCSAqIFdlIGp1c3QgdXNlIHRoZSBkcnZkYXRhIHVu dGlsIGRyaXZlciBydW4gaW50byBjb21wb25lbnQKLQkgKiBhZGQgZnVuY3Rpb24sIGFuZCB0aGVu IHdlIHdvdWxkIHNldCBkcnZkYXRhIHRvIG51bGwsIHNvCi0JICogdGhhdCBhbmFsb2dpeCBkcCBk cml2ZXIgY291bGQgdGFrZSBjaGFyZ2Ugb2YgdGhlIGRydmRhdGEuCi0JICovCiAJcGxhdGZvcm1f c2V0X2RydmRhdGEocGRldiwgZHApOwogCiAJcmV0dXJuIGNvbXBvbmVudF9hZGQoZGV2LCAmcm9j a2NoaXBfZHBfY29tcG9uZW50X29wcyk7CkBAIC00NTIsMTAgKzQ0MywyNiBAQCBzdGF0aWMgaW50 IHJvY2tjaGlwX2RwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJldHVy biAwOwogfQogCisjaWZkZWYgQ09ORklHX1BNX1NMRUVQCitzdGF0aWMgaW50IHJvY2tjaGlwX2Rw X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCByb2NrY2hpcF9kcF9kZXZp Y2UgKmRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gYW5hbG9naXhfZHBfc3Vz cGVuZChkcC0+YWRwKTsKK30KKworc3RhdGljIGludCByb2NrY2hpcF9kcF9yZXN1bWUoc3RydWN0 IGRldmljZSAqZGV2KQoreworCXN0cnVjdCByb2NrY2hpcF9kcF9kZXZpY2UgKmRwID0gZGV2X2dl dF9kcnZkYXRhKGRldik7CisKKwlyZXR1cm4gYW5hbG9naXhfZHBfcmVzdW1lKGRwLT5hZHApOwor fQorI2VuZGlmCisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyByb2NrY2hpcF9kcF9w bV9vcHMgPSB7CiAjaWZkZWYgQ09ORklHX1BNX1NMRUVQCi0JLnN1c3BlbmQgPSBhbmFsb2dpeF9k cF9zdXNwZW5kLAotCS5yZXN1bWVfZWFybHkgPSBhbmFsb2dpeF9kcF9yZXN1bWUsCisJLnN1c3Bl bmQgPSByb2NrY2hpcF9kcF9zdXNwZW5kLAorCS5yZXN1bWVfZWFybHkgPSByb2NrY2hpcF9kcF9y ZXN1bWUsCiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2JyaWRnZS9hbmFs b2dpeF9kcC5oIGIvaW5jbHVkZS9kcm0vYnJpZGdlL2FuYWxvZ2l4X2RwLmgKaW5kZXggYzk5ZDZl YWVmMWFjLi41NTE4ZmM3NWRkNmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2JyaWRnZS9hbmFs b2dpeF9kcC5oCisrKyBiL2luY2x1ZGUvZHJtL2JyaWRnZS9hbmFsb2dpeF9kcC5oCkBAIC0xMyw2 ICsxMyw4IEBACiAKICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KIAorc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZTsKKwogZW51bSBhbmFsb2dpeF9kcF9kZXZ0eXBlIHsKIAlFWFlOT1NfRFAsCiAJ UkszMjg4X0RQLApAQCAtMzgsMTYgKzQwLDE3IEBAIHN0cnVjdCBhbmFsb2dpeF9kcF9wbGF0X2Rh dGEgewogCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yICopOwogfTsKIAotaW50IGFuYWxvZ2l4X2Rw X3Bzcl9zdXBwb3J0ZWQoc3RydWN0IGRldmljZSAqZGV2KTsKLWludCBhbmFsb2dpeF9kcF9lbmFi bGVfcHNyKHN0cnVjdCBkZXZpY2UgKmRldik7Ci1pbnQgYW5hbG9naXhfZHBfZGlzYWJsZV9wc3Io c3RydWN0IGRldmljZSAqZGV2KTsKK2ludCBhbmFsb2dpeF9kcF9wc3Jfc3VwcG9ydGVkKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKK2ludCBhbmFsb2dpeF9kcF9lbmFibGVfcHNyKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKK2ludCBhbmFsb2dpeF9kcF9kaXNhYmxlX3Bz cihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiAKLWludCBhbmFsb2dpeF9kcF9yZXN1 bWUoc3RydWN0IGRldmljZSAqZGV2KTsKLWludCBhbmFsb2dpeF9kcF9zdXNwZW5kKHN0cnVjdCBk ZXZpY2UgKmRldik7CitpbnQgYW5hbG9naXhfZHBfcmVzdW1lKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwKTsKK2ludCBhbmFsb2dpeF9kcF9zdXNwZW5kKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwKTsKIAotaW50IGFuYWxvZ2l4X2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKLQkJICAgICBzdHJ1Y3QgYW5hbG9naXhfZHBfcGxh dF9kYXRhICpwbGF0X2RhdGEpOwotdm9pZCBhbmFsb2dpeF9kcF91bmJpbmQoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpOworc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqCithbmFsb2dpeF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCisJCSBzdHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRh ICpwbGF0X2RhdGEpOwordm9pZCBhbmFsb2dpeF9kcF91bmJpbmQoc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHApOwogCiBpbnQgYW5hbG9naXhfZHBfc3RhcnRfY3JjKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpOwogaW50IGFuYWxvZ2l4X2RwX3N0b3BfY3JjKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpOwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==