From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Ujfalusi Subject: [PATCH v2 4/4] drm/panel: Add OSD101T2587-53TS driver Date: Fri, 22 Feb 2019 15:16:18 +0200 Message-ID: <20190222131618.20520-5-peter.ujfalusi@ti.com> References: <20190222131618.20520-1-peter.ujfalusi@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190222131618.20520-1-peter.ujfalusi@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: thierry.reding@gmail.com, airlied@linux.ie, daniel@ffwll.ch Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, robh+dt@kernel.org, tomi.valkeinen@ti.com, dri-devel@lists.freedesktop.org, sam@ravnborg.org List-Id: devicetree@vger.kernel.org VGhlIHBhbmVsIGlzIHNpbWlsYXIgdG8gT1NEMTAxVDIwNDUtNTNUUyAod2hpY2ggaXMgaGFuZGxl ZCBieSBwYW5lbC1zaW1wbGUpCndpdGggb25lIGJpZyBkaWZmZXJlbmNlOiBvc2QxMDF0MjU4Ny01 M3RzIG5lZWRzIE1JUElfRFNJX1RVUk5fT05fUEVSSVBIRVJBTAptZXNzYWdlIHRvIGJlIHNlbnQg ZnJvbSB0aGUgaG9zdCB0byBiZSBvcGVyYXRpb25hbCBhbmQgdGh1cyBjYW4gbm90IGJlCmhhbmRs ZWQgYnkgcGFuZWwtc2ltcGxlLgoKU2lnbmVkLW9mZi1ieTogUGV0ZXIgVWpmYWx1c2kgPHBldGVy LnVqZmFsdXNpQHRpLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZyAgICAg ICAgICAgICAgICAgfCAgIDYgKwogZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlICAgICAg ICAgICAgICAgIHwgICAxICsKIC4uLi9kcm0vcGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUz dHMuYyAgICB8IDI1NCArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjYxIGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKaW5kZXggM2UwNzAx NTNlZjIxLi4zNTE2NjE5MjA4MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9L Y29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCkBAIC0xMjIsNiArMTIy LDEyIEBAIGNvbmZpZyBEUk1fUEFORUxfT1JJU0VURUNIX09UTTgwMDlBCiAJICBTYXkgWSBoZXJl IGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBPcmlzZSBUZWNobm9sb2d5CiAJICBv dG04MDA5YSA0ODB4ODAwIGRzaSAyZGwgcGFuZWwuCiAKK2NvbmZpZyBEUk1fUEFORUxfT1NEX09T RDEwMVQyNTg3XzUzVFMKKwl0cmlzdGF0ZSAiT1NEIE9TRDEwMVQyNTg3LTUzVFMgRFNJIDE5MjB4 MTIwMCB2aWRlbyBtb2RlIHBhbmVsIgorCWRlcGVuZHMgb24gT0YKKwlkZXBlbmRzIG9uIERSTV9N SVBJX0RTSQorCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQorCiBjb25maWcgRFJN X1BBTkVMX1BBTkFTT05JQ19WVlgxMEYwMzROMDAKIAl0cmlzdGF0ZSAiUGFuYXNvbmljIFZWWDEw RjAzNE4wMCAxOTIweDEyMDAgdmlkZW8gbW9kZSBwYW5lbCIKIAlkZXBlbmRzIG9uIE9GCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvTWFrZWZpbGUKaW5kZXggZTdhYjcxOTY4YmJmLi5kOWQ5OTk1NmRiMGMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvTWFrZWZpbGUKQEAgLTEwLDYgKzEwLDcgQEAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9L SU5HRElTUExBWV9LRDA5N0QwNCkgKz0gcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQubwogb2Jq LSQoQ09ORklHX0RSTV9QQU5FTF9MR19MRzQ1NzMpICs9IHBhbmVsLWxnLWxnNDU3My5vCiBvYmot JChDT05GSUdfRFJNX1BBTkVMX09MSU1FWF9MQ0RfT0xJTlVYSU5PKSArPSBwYW5lbC1vbGltZXgt bGNkLW9saW51eGluby5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX09SSVNFVEVDSF9PVE04MDA5 QSkgKz0gcGFuZWwtb3Jpc2V0ZWNoLW90bTgwMDlhLm8KK29iai0kKENPTkZJR19EUk1fUEFORUxf T1NEX09TRDEwMVQyNTg3XzUzVFMpICs9IHBhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLm8KIG9i ai0kKENPTkZJR19EUk1fUEFORUxfUEFOQVNPTklDX1ZWWDEwRjAzNE4wMCkgKz0gcGFuZWwtcGFu YXNvbmljLXZ2eDEwZjAzNG4wMC5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX1JBU1BCRVJSWVBJ X1RPVUNIU0NSRUVOKSArPSBwYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5vCiBvYmotJChD T05GSUdfRFJNX1BBTkVMX1JBWURJVU1fUk02ODIwMCkgKz0gcGFuZWwtcmF5ZGl1bS1ybTY4MjAw Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1vc2Qtb3NkMTAxdDI1 ODctNTN0cy5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01 M3RzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xOTZhMmE4ODNk MTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3NkLW9z ZDEwMXQyNTg3LTUzdHMuYwpAQCAtMCwwICsxLDI1NCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE5IFRleGFzIEluc3RydW1l bnRzIEluY29ycG9yYXRlZCAtIGh0dHA6Ly93d3cudGkuY29tCisgKiAgQXV0aG9yOiBQZXRlciBV amZhbHVzaSA8cGV0ZXIudWpmYWx1c2lAdGkuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9i YWNrbGlnaHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9v Zi5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorCisjaW5jbHVkZSA8 ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxk cm0vZHJtX21pcGlfZHNpLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorCisjaW5jbHVk ZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisKK3N0cnVjdCBvc2QxMDF0MjU4N19wYW5lbCB7CisJ c3RydWN0IGRybV9wYW5lbCBiYXNlOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaTsKKwor CXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiYWNrbGlnaHQ7CisJc3RydWN0IHJlZ3VsYXRvciAq c3VwcGx5OworCisJYm9vbCBwcmVwYXJlZDsKKwlib29sIGVuYWJsZWQ7CisKKwljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVmYXVsdF9tb2RlOworfTsKKworc3RhdGljIGlubGluZSBz dHJ1Y3Qgb3NkMTAxdDI1ODdfcGFuZWwgKnRvX29zZDEwMXQyNTg3X3BhbmVsKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsKQoreworCXJldHVybiBjb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBvc2Qx MDF0MjU4N19wYW5lbCwgYmFzZSk7Cit9CisKK3N0YXRpYyBpbnQgb3NkMTAxdDI1ODdfcGFuZWxf ZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3Qgb3NkMTAxdDI1ODdf cGFuZWwgKm9zZDEwMXQyNTg3ID0gdG9fb3NkMTAxdDI1ODdfcGFuZWwocGFuZWwpOworCWludCBy ZXQ7CisKKwlpZiAoIW9zZDEwMXQyNTg3LT5lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCWJhY2ts aWdodF9kaXNhYmxlKG9zZDEwMXQyNTg3LT5iYWNrbGlnaHQpOworCisJcmV0ID0gbWlwaV9kc2lf c2h1dGRvd25fcGVyaXBoZXJhbChvc2QxMDF0MjU4Ny0+ZHNpKTsKKworCW9zZDEwMXQyNTg3LT5l bmFibGVkID0gZmFsc2U7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IG9zZDEwMXQy NTg3X3BhbmVsX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3Qg b3NkMTAxdDI1ODdfcGFuZWwgKm9zZDEwMXQyNTg3ID0gdG9fb3NkMTAxdDI1ODdfcGFuZWwocGFu ZWwpOworCisJaWYgKCFvc2QxMDF0MjU4Ny0+cHJlcGFyZWQpCisJCXJldHVybiAwOworCisJcmVn dWxhdG9yX2Rpc2FibGUob3NkMTAxdDI1ODctPnN1cHBseSk7CisJb3NkMTAxdDI1ODctPnByZXBh cmVkID0gZmFsc2U7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBvc2QxMDF0MjU4N19w YW5lbF9wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBvc2QxMDF0 MjU4N19wYW5lbCAqb3NkMTAxdDI1ODcgPSB0b19vc2QxMDF0MjU4N19wYW5lbChwYW5lbCk7CisJ aW50IHJldDsKKworCWlmIChvc2QxMDF0MjU4Ny0+cHJlcGFyZWQpCisJCXJldHVybiAwOworCisJ cmV0ID0gcmVndWxhdG9yX2VuYWJsZShvc2QxMDF0MjU4Ny0+c3VwcGx5KTsKKwlpZiAoIXJldCkK KwkJb3NkMTAxdDI1ODctPnByZXBhcmVkID0gdHJ1ZTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0 YXRpYyBpbnQgb3NkMTAxdDI1ODdfcGFuZWxfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs KQoreworCXN0cnVjdCBvc2QxMDF0MjU4N19wYW5lbCAqb3NkMTAxdDI1ODcgPSB0b19vc2QxMDF0 MjU4N19wYW5lbChwYW5lbCk7CisJaW50IHJldDsKKworCWlmIChvc2QxMDF0MjU4Ny0+ZW5hYmxl ZCkKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSBtaXBpX2RzaV90dXJuX29uX3BlcmlwaGVyYWwob3Nk MTAxdDI1ODctPmRzaSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWJhY2tsaWdodF9l bmFibGUob3NkMTAxdDI1ODctPmJhY2tsaWdodCk7CisKKwlvc2QxMDF0MjU4Ny0+ZW5hYmxlZCA9 IHRydWU7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgZGVmYXVsdF9tb2RlX29zZDEwMXQyNTg3ID0geworCS5jbG9jayA9IDE2NDQwMCwK KwkuaGRpc3BsYXkgPSAxOTIwLAorCS5oc3luY19zdGFydCA9IDE5MjAgKyAxNTIsCisJLmhzeW5j X2VuZCA9IDE5MjAgKyAxNTIgKyA1MiwKKwkuaHRvdGFsID0gMTkyMCArIDE1MiArIDUyICsgMjAs CisJLnZkaXNwbGF5ID0gMTIwMCwKKwkudnN5bmNfc3RhcnQgPSAxMjAwICsgMjQsCisJLnZzeW5j X2VuZCA9IDEyMDAgKyAyNCArIDYsCisJLnZ0b3RhbCA9IDEyMDAgKyAyNCArIDYgKyA0OCwKKwku dnJlZnJlc2ggPSA2MCwKKwkuZmxhZ3MgPSBEUk1fTU9ERV9GTEFHX05IU1lOQyB8IERSTV9NT0RF X0ZMQUdfTlZTWU5DLAorfTsKKworc3RhdGljIGludCBvc2QxMDF0MjU4N19wYW5lbF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IG9zZDEwMXQyNTg3X3BhbmVs ICpvc2QxMDF0MjU4NyA9IHRvX29zZDEwMXQyNTg3X3BhbmVsKHBhbmVsKTsKKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZTsKKworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwt PmRybSwgb3NkMTAxdDI1ODctPmRlZmF1bHRfbW9kZSk7CisJaWYgKCFtb2RlKSB7CisJCWRldl9l cnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwKKwkJ CW9zZDEwMXQyNTg3LT5kZWZhdWx0X21vZGUtPmhkaXNwbGF5LAorCQkJb3NkMTAxdDI1ODctPmRl ZmF1bHRfbW9kZS0+dmRpc3BsYXksCisJCQlvc2QxMDF0MjU4Ny0+ZGVmYXVsdF9tb2RlLT52cmVm cmVzaCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWRybV9tb2RlX3NldF9uYW1lKG1vZGUp OworCisJZHJtX21vZGVfcHJvYmVkX2FkZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKworCXBh bmVsLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDIxNzsKKwlwYW5lbC0+Y29u bmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTM2OworCisJcmV0dXJuIDE7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIG9zZDEwMXQyNTg3X3BhbmVsX2Z1 bmNzID0geworCS5kaXNhYmxlID0gb3NkMTAxdDI1ODdfcGFuZWxfZGlzYWJsZSwKKwkudW5wcmVw YXJlID0gb3NkMTAxdDI1ODdfcGFuZWxfdW5wcmVwYXJlLAorCS5wcmVwYXJlID0gb3NkMTAxdDI1 ODdfcGFuZWxfcHJlcGFyZSwKKwkuZW5hYmxlID0gb3NkMTAxdDI1ODdfcGFuZWxfZW5hYmxlLAor CS5nZXRfbW9kZXMgPSBvc2QxMDF0MjU4N19wYW5lbF9nZXRfbW9kZXMsCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvc2QxMDF0MjU4N19vZl9tYXRjaFtdID0geworCXsK KwkJLmNvbXBhdGlibGUgPSAib3NkLG9zZDEwMXQyNTg3LTUzdHMiLAorCQkuZGF0YSA9ICZkZWZh dWx0X21vZGVfb3NkMTAxdDI1ODcsCisJfSwgeworCQkvKiBzZW50aW5lbCAqLworCX0KK307CitN T0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvc2QxMDF0MjU4N19vZl9tYXRjaCk7CisKK3N0YXRpYyBp bnQgb3NkMTAxdDI1ODdfcGFuZWxfYWRkKHN0cnVjdCBvc2QxMDF0MjU4N19wYW5lbCAqb3NkMTAx dDI1ODcpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJm9zZDEwMXQyNTg3LT5kc2ktPmRldjsK KworCW9zZDEwMXQyNTg3LT5zdXBwbHkgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoZGV2LCAicG93ZXIi KTsKKwlpZiAoSVNfRVJSKG9zZDEwMXQyNTg3LT5zdXBwbHkpKQorCQlyZXR1cm4gUFRSX0VSUihv c2QxMDF0MjU4Ny0+c3VwcGx5KTsKKworCW9zZDEwMXQyNTg3LT5iYWNrbGlnaHQgPSBkZXZtX29m X2ZpbmRfYmFja2xpZ2h0KGRldik7CisJaWYgKElTX0VSUihvc2QxMDF0MjU4Ny0+YmFja2xpZ2h0 KSkKKwkJcmV0dXJuIFBUUl9FUlIob3NkMTAxdDI1ODctPmJhY2tsaWdodCk7CisKKwlkcm1fcGFu ZWxfaW5pdCgmb3NkMTAxdDI1ODctPmJhc2UpOworCW9zZDEwMXQyNTg3LT5iYXNlLmZ1bmNzID0g Jm9zZDEwMXQyNTg3X3BhbmVsX2Z1bmNzOworCW9zZDEwMXQyNTg3LT5iYXNlLmRldiA9ICZvc2Qx MDF0MjU4Ny0+ZHNpLT5kZXY7CisKKwlyZXR1cm4gZHJtX3BhbmVsX2FkZCgmb3NkMTAxdDI1ODct PmJhc2UpOworfQorCitzdGF0aWMgaW50IG9zZDEwMXQyNTg3X3BhbmVsX3Byb2JlKHN0cnVjdCBt aXBpX2RzaV9kZXZpY2UgKmRzaSkKK3sKKwlzdHJ1Y3Qgb3NkMTAxdDI1ODdfcGFuZWwgKm9zZDEw MXQyNTg3OworCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKmlkOworCWludCByZXQ7CisKKwlp ZCA9IG9mX21hdGNoX25vZGUob3NkMTAxdDI1ODdfb2ZfbWF0Y2gsIGRzaS0+ZGV2Lm9mX25vZGUp OworCWlmICghaWQpCisJCXJldHVybiAtRU5PREVWOworCisJZHNpLT5sYW5lcyA9IDQ7CisJZHNp LT5mb3JtYXQgPSBNSVBJX0RTSV9GTVRfUkdCODg4OworCWRzaS0+bW9kZV9mbGFncyA9IE1JUElf RFNJX01PREVfVklERU8gfAorCQkJICBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNUIHwKKwkJCSAg TUlQSV9EU0lfTU9ERV9WSURFT19TWU5DX1BVTFNFIHwKKwkJCSAgTUlQSV9EU0lfTU9ERV9FT1Rf UEFDS0VUOworCisJb3NkMTAxdDI1ODcgPSBkZXZtX2t6YWxsb2MoJmRzaS0+ZGV2LCBzaXplb2Yo Km9zZDEwMXQyNTg3KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFvc2QxMDF0MjU4NykKKwkJcmV0dXJu IC1FTk9NRU07CisKKwltaXBpX2RzaV9zZXRfZHJ2ZGF0YShkc2ksIG9zZDEwMXQyNTg3KTsKKwor CW9zZDEwMXQyNTg3LT5kc2kgPSBkc2k7CisJb3NkMTAxdDI1ODctPmRlZmF1bHRfbW9kZSA9IGlk LT5kYXRhOworCisJcmV0ID0gb3NkMTAxdDI1ODdfcGFuZWxfYWRkKG9zZDEwMXQyNTg3KTsKKwlp ZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IG1pcGlfZHNpX2F0dGFjaChkc2kp OworCWlmIChyZXQpCisJCWRybV9wYW5lbF9yZW1vdmUoJm9zZDEwMXQyNTg3LT5iYXNlKTsKKwor CXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgb3NkMTAxdDI1ODdfcGFuZWxfcmVtb3ZlKHN0 cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKK3sKKwlzdHJ1Y3Qgb3NkMTAxdDI1ODdfcGFuZWwg Km9zZDEwMXQyNTg3ID0gbWlwaV9kc2lfZ2V0X2RydmRhdGEoZHNpKTsKKwlpbnQgcmV0OworCisJ cmV0ID0gb3NkMTAxdDI1ODdfcGFuZWxfZGlzYWJsZSgmb3NkMTAxdDI1ODctPmJhc2UpOworCWlm IChyZXQgPCAwKQorCQlkZXZfd2FybigmZHNpLT5kZXYsICJmYWlsZWQgdG8gZGlzYWJsZSBwYW5l bFxuIik7CisKKwlvc2QxMDF0MjU4N19wYW5lbF91bnByZXBhcmUoJm9zZDEwMXQyNTg3LT5iYXNl KTsKKworCWRybV9wYW5lbF9yZW1vdmUoJm9zZDEwMXQyNTg3LT5iYXNlKTsKKworCXJldCA9IG1p cGlfZHNpX2RldGFjaChkc2kpOworCWlmIChyZXQgPCAwKQorCQlkZXZfd2FybigmZHNpLT5kZXYs ICJmYWlsZWQgdG8gZGV0YWNoIGZyb20gRFNJIGhvc3RcbiIpOworCisJcmV0dXJuIHJldDsKK30K Kworc3RhdGljIHZvaWQgb3NkMTAxdDI1ODdfcGFuZWxfc2h1dGRvd24oc3RydWN0IG1pcGlfZHNp X2RldmljZSAqZHNpKQoreworCXN0cnVjdCBvc2QxMDF0MjU4N19wYW5lbCAqb3NkMTAxdDI1ODcg PSBtaXBpX2RzaV9nZXRfZHJ2ZGF0YShkc2kpOworCisJb3NkMTAxdDI1ODdfcGFuZWxfZGlzYWJs ZSgmb3NkMTAxdDI1ODctPmJhc2UpOworCW9zZDEwMXQyNTg3X3BhbmVsX3VucHJlcGFyZSgmb3Nk MTAxdDI1ODctPmJhc2UpOworfQorCitzdGF0aWMgc3RydWN0IG1pcGlfZHNpX2RyaXZlciBvc2Qx MDF0MjU4N19wYW5lbF9kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAicGFuZWwt b3NkLW9zZDEwMXQyNTg3LTUzdHMiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBvc2QxMDF0MjU4N19v Zl9tYXRjaCwKKwl9LAorCS5wcm9iZSA9IG9zZDEwMXQyNTg3X3BhbmVsX3Byb2JlLAorCS5yZW1v dmUgPSBvc2QxMDF0MjU4N19wYW5lbF9yZW1vdmUsCisJLnNodXRkb3duID0gb3NkMTAxdDI1ODdf cGFuZWxfc2h1dGRvd24sCit9OworbW9kdWxlX21pcGlfZHNpX2RyaXZlcihvc2QxMDF0MjU4N19w YW5lbF9kcml2ZXIpOworCitNT0RVTEVfQVVUSE9SKCJQZXRlciBVamZhbHVzaSA8cGV0ZXIudWpm YWx1c2lAdGkuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJPU0QxMDFUMjU4Ny01M1RTIERT SSBwYW5lbCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotLSAKUGV0ZXIKClRleGFzIElu c3RydW1lbnRzIEZpbmxhbmQgT3ksIFBvcmtrYWxhbmthdHUgMjIsIDAwMTgwIEhlbHNpbmtpLgpZ LXR1bm51cy9CdXNpbmVzcyBJRDogMDYxNTUyMS00LiBLb3RpcGFpa2thL0RvbWljaWxlOiBIZWxz aW5raQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs