From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH 21/60] drm/panel: Add driver for the Sharp LS037V7DW01 panel Date: Mon, 8 Jul 2019 21:44:52 +0200 Message-ID: <20190708194452.GA5192@ravnborg.org> References: <20190707180852.5512-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-18-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from asavdk3.altibox.net (asavdk3.altibox.net [109.247.116.14]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6B47C89E50 for ; Mon, 8 Jul 2019 19:45:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190707181937.6250-18-laurent.pinchart@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart Cc: Maxime Ripard , Sebastian Reichel , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Thierry Reding , Sean Paul List-Id: dri-devel@lists.freedesktop.org SGkgTGF1cmVudC4KClRoaXJkIHBhbmVsIGRyaXZlciBpbiBsaW5lIGZvciByZXZpZXcuClJldmll dyBjb21tZW50cyB0aGF0IGFyZSBkdXBsaWNhdGVzIGZyb20gdGhlIGZpcnN0IHR3byB3aWxsIGhh dmUgb25seSBhCmJyaWVmIHJlbWFyayAtIGlmIGFueS4KCk9uIFN1biwgSnVsIDA3LCAyMDE5IGF0 IDA5OjE4OjU4UE0gKzAzMDAsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gVGhpcyBwYW5lbCBp cyB1c2VkIG9uIHRoZSBTRFAzNDMwLgpBZGQgYSBsaXR0bGUgbW9yZSBjb250ZXh0IGFuZCBwdXQg aXQgaW4gS2NvbmZpZyBoZWxwLgpNYXliZSB0aGlzIGlzIHRoZSBUSSBib2FyZCwgYW5kIG1heWJl IGl0IGlzIHNvbWV0aGluZyBlbHNlLgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNo YXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9wYW5lbC9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAgNyArCj4gIGRyaXZlcnMv Z3B1L2RybS9wYW5lbC9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAgMSArCj4gIC4uLi9ncHUv ZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMgICB8IDIzMSArKysrKysrKysrKysr KysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAyMzkgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+IGluZGV4IGRhNjEzYzA0YjgzNS4uMDRmZDE1MmVmZTRj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKPiBAQCAtMjcxLDYgKzI3MSwxMyBAQCBjb25maWcg RFJNX1BBTkVMX1NIQVJQX0xTMDQzVDFMRTAxCj4gIAkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQg dG8gZW5hYmxlIHN1cHBvcnQgZm9yIFNoYXJwIExTMDQzVDFMRTAxIHFIRAo+ICAJICAoNTQweDk2 MCkgRFNJIHBhbmVsIGFzIGZvdW5kIG9uIHRoZSBRdWFsY29tbSBBUFE4MDc0IERyYWdvbmJvYXJk Cj4gIAo+ICtjb25maWcgRFJNX1BBTkVMX1NIQVJQX0xTMDM3VjdEVzAxCj4gKwl0cmlzdGF0ZSAi U2hhcnAgTFMwMzdWN0RXMDEgVkdBIExDRCBwYW5lbCIKPiArCWRlcGVuZHMgb24gR1BJT0xJQiAm JiBPRiAmJiBSRUdVTEFUT1IKPiArCWhlbHAKPiArCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0 byBlbmFibGUgc3VwcG9ydCBmb3IgU2hhcnAgTFMwMzdWN0RXMDEgVkdBCj4gKwkgICg0ODB4NjQw KSBMQ0QgcGFuZWwuCj4gKwpBbHBoYWJldGljYWwgb3JkZXIsIHNvIGl0IGNvbWVzIGJlZm9yZSBE Uk1fUEFORUxfU0hBUlBfTFMwNDNUMUxFMDEKCj4gIGNvbmZpZyBEUk1fUEFORUxfU0lUUk9OSVhf U1Q3NzAxCj4gIAl0cmlzdGF0ZSAiU2l0cm9uaXggU1Q3NzAxIHBhbmVsIGRyaXZlciIKPiAgCWRl cGVuZHMgb24gT0YKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxl IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gaW5kZXggZTgxZWQxNTM1MDI0Li4x MmRjZDc2ZWI4N2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxl Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gQEAgLTI3LDYgKzI3LDcg QEAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzTTApICs9IHBhbmVsLXNhbXN1 bmctczZlNjNtMC5vCj4gIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4QUEwKSAr PSBwYW5lbC1zYW1zdW5nLXM2ZThhYTAubwo+ICBvYmotJChDT05GSUdfRFJNX1BBTkVMX1NFSUtP XzQzV1ZGMUcpICs9IHBhbmVsLXNlaWtvLTQzd3ZmMWcubwo+ICBvYmotJChDT05GSUdfRFJNX1BB TkVMX1NIQVJQX0xRMTAxUjFTWDAxKSArPSBwYW5lbC1zaGFycC1scTEwMXIxc3gwMS5vCj4gK29i ai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwMzdWN0RXMDEpICs9IHBhbmVsLXNoYXJwLWxz MDM3djdkdzAxLm8KPiAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUzA0M1QxTEUwMSkg Kz0gcGFuZWwtc2hhcnAtbHMwNDN0MWxlMDEubwpBbmQgaGVyZSBpdCBpcyByaWdodC4KCj4gLS0t IC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAz N3Y3ZHcwMS5jCj4gQEAgLTAsMCArMSwyMzEgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAKPiArLyoKPiArICogU2hhcnAgTFMwMzdWN0RXMDEgTENEIFBhbmVsIERyaXZl cgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTkgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jw b3JhdGVkCj4gKyAqCj4gKyAqIEJhc2VkIG9uIHRoZSBvbWFwZHJtLXNwZWNpZmljIHBhbmVsLXNo YXJwLWxzMDM3djdkdzAxIGRyaXZlcgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGV4 YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkCj4gKyAqIEF1dGhvcjogVG9taSBWYWxrZWluZW4g PHRvbWkudmFsa2VpbmVuQHRpLmNvbT4KQWRkIHlvdXIgY29weXJpZ2h0PwoKPiArc3RydWN0IGxz MDM3djdkdzAxX2RldmljZSB7Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOwo+ICsJc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldjsKPiArCj4gKwlzdHJ1Y3QgcmVndWxhdG9yICp2Y2M7ClRo ZSBwcm9wZXJ0eSBpcyBuYW1lZCBlbnZkZCAtIHNob3VsZCB0aGV5IHVzZSB0aGUgc2FtZSBuYW1l PwoKPiArCXN0cnVjdCBncGlvX2Rlc2MgKnJlc2JfZ3BpbzsJLyogbG93ID0gcmVzZXQgYWN0aXZl IG1pbiAyMCB1cyAqLwo+ICsJc3RydWN0IGdwaW9fZGVzYyAqaW5pX2dwaW87CS8qIGhpZ2ggPSBw b3dlciBvbiAqLwo+ICsJc3RydWN0IGdwaW9fZGVzYyAqbW9fZ3BpbzsJLyogbG93ID0gNDgweDY0 MCwgaGlnaCA9IDI0MHgzMjAgKi8KPiArCXN0cnVjdCBncGlvX2Rlc2MgKmxyX2dwaW87CS8qIGhp Z2ggPSBjb252ZW50aW9uYWwgaG9yaXpvbnRhbCBzY2FubmluZyAqLwo+ICsJc3RydWN0IGdwaW9f ZGVzYyAqdWRfZ3BpbzsJLyogaGlnaCA9IGNvbnZlbnRpb25hbCB2ZXJ0aWNhbCBzY2FubmluZyAq Lwo+ICt9OwpkZXZpY2UgdmVyc3VzIHBhbmVsLCBidXQgYmlrZXNoZWRkaW5nLCBzbyBmZWVsIGZy ZWUgdG8gaWdub3JlLgoKPiArCj4gK3N0YXRpYyBpbnQgbHMwMzd2N2R3MDFfZGlzYWJsZShzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiArewo+ICsJc3RydWN0IGxzMDM3djdkdzAxX2RldmljZSAq bGNkID0gdG9fbHMwMzd2N2R3MDFfZGV2aWNlKHBhbmVsKTsKPiArCj4gKwlncGlvZF9zZXRfdmFs dWVfY2Fuc2xlZXAobGNkLT5pbmlfZ3BpbywgMCk7Cj4gKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xl ZXAobGNkLT5yZXNiX2dwaW8sIDApOwo+ICsKPiArCS8qIFdhaXQgYXQgbGVhc3QgNSB2c3luY3Mg YWZ0ZXIgZGlzYWJsaW5nIHRoZSBMQ0QuICovCj4gKwltc2xlZXAoMTAwKTsKPiArCj4gKwlyZXR1 cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBsczAzN3Y3ZHcwMV91bnByZXBhcmUoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpCj4gK3sKPiArCXN0cnVjdCBsczAzN3Y3ZHcwMV9kZXZpY2UgKmxj ZCA9IHRvX2xzMDM3djdkdzAxX2RldmljZShwYW5lbCk7Cj4gKwo+ICsJaWYgKGxjZC0+dmNjKQo+ ICsJCXJlZ3VsYXRvcl9kaXNhYmxlKGxjZC0+dmNjKTsKV2h5IGlzIHRoZSBpZiAobGNkLXZjYykg bmVlZGVkPwpJZiBJIHJlYWQgdGhlIHByb2JlIGNvZGUgY29ycmVjdCB0aGVuIHdlIGVpdGhlciBn ZXQgYSByZWd1bGF0b3Igb3Igd2UKZXJyb3Igb3V0LgoKU2FtZSBnb2VzIGZvciBhbGwgb3RoZXIg Y2hlY2tzIG9mIGxjZC0+dmNjCgo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgbHMwMzd2N2R3MDFfbW9kZSA9IHsKPiArCS5jbG9jayA9IDE5MjAwLAo+ICsJLmhkaXNwbGF5 ID0gNDgwLAo+ICsJLmhzeW5jX3N0YXJ0ID0gNDgwICsgMSwKPiArCS5oc3luY19lbmQgPSA0ODAg KyAxICsgMiwKPiArCS5odG90YWwgPSA0ODAgKyAxICsgMiArIDI4LAo+ICsJLnZkaXNwbGF5ID0g NjQwLAo+ICsJLnZzeW5jX3N0YXJ0ID0gNjQwICsgMSwKPiArCS52c3luY19lbmQgPSA2NDAgKyAx ICsgMSwKPiArCS52dG90YWwgPSA2NDAgKyAxICsgMSArIDEsCj4gKwkudnJlZnJlc2ggPSA1OCwK PiArCS50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJF RCwKPiArCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZ TkMsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IGxzMDM3djdkdzAxX2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCkKPiArewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9IHBhbmVsLT5jb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK PiArCj4gKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZsczAzN3Y3ZHcw MV9tb2RlKTsKPiArCWlmICghbW9kZSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlkcm1f bW9kZV9zZXRfbmFtZShtb2RlKTsKPiArCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBt b2RlKTsKPiArCj4gKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDU2Owo+ICsJ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gNzU7Cj4gKwkvKgo+ICsJICogRklY TUU6IEFjY29yZGluZyB0byB0aGUgZGF0YXNoZWV0IHBpeGVsIGRhdGEgaXMgc2FtcGxlZCBvbiB0 aGUKPiArCSAqIHJpc2luZyBlZGdlIG9mIHRoZSBjbG9jaywgYnV0IHRoZSBjb2RlIHJ1bm5pbmcg b24gdGhlIFNEUDM0MzAKPiArCSAqIGluZGljYXRlcyBzYW1wbGluZyBvbiB0aGUgbmVnYXRpdmUg ZWRnZS4gVGhpcyBzaG91bGQgYmUgdGVzdGVkIG9uIGEKPiArCSAqIHJlYWwgZGV2aWNlLgo+ICsJ ICovCj4gKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdf REVfSElHSAo+ICsJCQkJCSAgfCBEUk1fQlVTX0ZMQUdfU1lOQ19TQU1QTEVfUE9TRURHRQo+ICsJ CQkJCSAgfCBEUk1fQlVTX0ZMQUdfUElYREFUQV9TQU1QTEVfTkVHRURHRTsKPiArCj4gKwlyZXR1 cm4gMTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxfZnVuY3MgbHMw Mzd2N2R3MDFfZnVuY3MgPSB7Cj4gKwkuZGlzYWJsZSA9IGxzMDM3djdkdzAxX2Rpc2FibGUsCj4g KwkudW5wcmVwYXJlID0gbHMwMzd2N2R3MDFfdW5wcmVwYXJlLAo+ICsJLnByZXBhcmUgPSBsczAz N3Y3ZHcwMV9wcmVwYXJlLAo+ICsJLmVuYWJsZSA9IGxzMDM3djdkdzAxX2VuYWJsZSwKPiArCS5n ZXRfbW9kZXMgPSBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50 IGxzMDM3djdkdzAxX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiAr CXN0cnVjdCBsczAzN3Y3ZHcwMV9kZXZpY2UgKmxjZDsKPiArCj4gKwlsY2QgPSBkZXZtX2t6YWxs b2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpsY2QpLCBHRlBfS0VSTkVMKTsKPiArCWlmIChsY2QgPT0g TlVMTCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShw ZGV2LCBsY2QpOwo+ICsJbGNkLT5wZGV2ID0gcGRldjsKPiArCj4gKwlsY2QtPnZjYyA9IGRldm1f cmVndWxhdG9yX2dldCgmcGRldi0+ZGV2LCAiZW52ZGQiKTsKPiArCWlmIChJU19FUlIobGNkLT52 Y2MpKSB7Cj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCByZWd1bGF0b3Jc biIpOwo+ICsJCXJldHVybiBQVFJfRVJSKGxjZC0+dmNjKTsKPiArCX0KPiArCj4gKwlsY2QtPmlu aV9ncGlvID0gZGV2bV9ncGlvZF9nZXRfaW5kZXgoJnBkZXYtPmRldiwgImVuYWJsZSIsIDAsCj4g KwkJCQkJICAgIEdQSU9EX09VVF9MT1cpOwo+ICsJaWYgKElTX0VSUihsY2QtPmluaV9ncGlvKSkg ewo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgZW5hYmxlIGdwaW9cbiIp Owo+ICsJCXJldHVybiBQVFJfRVJSKGxjZC0+aW5pX2dwaW8pOwo+ICsJfQpJIGZhaWwgdG8gc2Vl IHdoeSB0aGUgX2luZGV4KCkgdmFyaWFudCBpcyB1c2VkIGhlcmUuCkJ1dCB0aGVuIEkgZGlkIG5v dCBjaGVjayB0aGUgYmluZGluZywgc28gaXQgbWF5IG9yaWdpbmF0ZSBmcm9tIHRoYXQuClNhbWUg Z29lcyBmb3IgaXJlc2V0IGdwaW8KCj4gKwo+ICsJbGNkLT5yZXNiX2dwaW8gPSBkZXZtX2dwaW9k X2dldF9pbmRleCgmcGRldi0+ZGV2LCAicmVzZXQiLCAwLAo+ICsJCQkJCSAgICAgR1BJT0RfT1VU X0xPVyk7Cj4gKwlpZiAoSVNfRVJSKGxjZC0+cmVzYl9ncGlvKSkgewo+ICsJCWRldl9lcnIoJnBk ZXYtPmRldiwgImZhaWxlZCB0byBnZXQgcmVzZXQgZ3Bpb1xuIik7Cj4gKwkJcmV0dXJuIFBUUl9F UlIobGNkLT5yZXNiX2dwaW8pOwo+ICsJfQo+ICsKPiArCWxjZC0+bW9fZ3BpbyA9IGRldm1fZ3Bp b2RfZ2V0X2luZGV4KCZwZGV2LT5kZXYsICJtb2RlIiwgMCwKPiArCQkJCQkgICBHUElPRF9PVVRf TE9XKTsKPiArCWlmIChJU19FUlIobGNkLT5tb19ncGlvKSkgewo+ICsJCWRldl9lcnIoJnBkZXYt PmRldiwgImZhaWxlZCB0byBnZXQgbW9kZVswXSBncGlvXG4iKTsKPiArCQlyZXR1cm4gUFRSX0VS UihsY2QtPm1vX2dwaW8pOwo+ICsJfQo+ICsKPiArCWxjZC0+bHJfZ3BpbyA9IGRldm1fZ3Bpb2Rf Z2V0X2luZGV4KCZwZGV2LT5kZXYsICJtb2RlIiwgMSwKPiArCQkJCQkgICBHUElPRF9PVVRfTE9X KTsKPiArCWlmIChJU19FUlIobGNkLT5scl9ncGlvKSkgewo+ICsJCWRldl9lcnIoJnBkZXYtPmRl diwgImZhaWxlZCB0byBnZXQgbW9kZVsxXSBncGlvXG4iKTsKPiArCQlyZXR1cm4gUFRSX0VSUihs Y2QtPmxyX2dwaW8pOwo+ICsJfQo+ICsKPiArCWxjZC0+dWRfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0 X2luZGV4KCZwZGV2LT5kZXYsICJtb2RlIiwgMiwKPiArCQkJCQkgICBHUElPRF9PVVRfTE9XKTsK PiArCWlmIChJU19FUlIobGNkLT51ZF9ncGlvKSkgewo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwg ImZhaWxlZCB0byBnZXQgbW9kZVsyXSBncGlvXG4iKTsKPiArCQlyZXR1cm4gUFRSX0VSUihsY2Qt PnVkX2dwaW8pOwo+ICsJfQpEbyB3ZSBzZXQgbW8sIGxyICx1ZCBncGlvIHdoZW4gd2UgY2FsbCBk ZXZtX2dwaW9kX2dldCwgb3IgYXJlIHRoZXkKdW51c2VkPwoKPiArCj4gKwlkcm1fcGFuZWxfaW5p dCgmbGNkLT5wYW5lbCk7Cj4gKwlsY2QtPnBhbmVsLmRldiA9ICZwZGV2LT5kZXY7Cj4gKwlsY2Qt PnBhbmVsLmZ1bmNzID0gJmxzMDM3djdkdzAxX2Z1bmNzOwo+ICsKPiArCXJldHVybiBkcm1fcGFu ZWxfYWRkKCZsY2QtPnBhbmVsKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBsczAzN3Y3ZHcwMV9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsJc3RydWN0IGxzMDM3 djdkdzAxX2RldmljZSAqbGNkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Cj4gKwo+ICsJ ZHJtX3BhbmVsX3JlbW92ZSgmbGNkLT5wYW5lbCk7Cj4gKwlsczAzN3Y3ZHcwMV9kaXNhYmxlKCZs Y2QtPnBhbmVsKTsKPiArCWxzMDM3djdkdzAxX3VucHJlcGFyZSgmbGNkLT5wYW5lbCk7ClVzZSBk cm1fcGFuZWxfZGlzYWJsZSgpLCBkcm1fcGFuZWxfdW5wcmVwYXJlKCkKCj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGxzMDM3djdk dzAxX29mX21hdGNoW10gPSB7Cj4gKwl7IC5jb21wYXRpYmxlID0gInNoYXJwLGxzMDM3djdkdzAx IiwgfSwKPiArCXt9LAp7IC8qIHNlbnRpbmVsICovIH0sCgo+ICt9Owo+ICsKPiArTU9EVUxFX0RF VklDRV9UQUJMRShvZiwgbHMwMzd2N2R3MDFfb2ZfbWF0Y2gpOwo+ICsKPiArc3RhdGljIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgbHMwMzd2N2R3MDFfZHJpdmVyID0gewo+ICsJLnByb2JlCQk9IGxz MDM3djdkdzAxX3Byb2JlLAo+ICsJLnJlbW92ZQkJPSBfX2V4aXRfcChsczAzN3Y3ZHcwMV9yZW1v dmUpLAo+ICsJLmRyaXZlcgkJPSB7Cj4gKwkJLm5hbWUgPSAicGFuZWwtc2hhcnAtbHMwMzd2N2R3 MDEiLAo+ICsJCS5vZl9tYXRjaF90YWJsZSA9IGxzMDM3djdkdzAxX29mX21hdGNoLAo+ICsJfSwK PiArfTsKPiArCj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobHMwMzd2N2R3MDFfZHJpdmVyKTsK PiArCj4gK01PRFVMRV9BVVRIT1IoIlRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5j b20+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiU2hhcnAgTFMwMzdWN0RXMDEgUGFuZWwgRHJp dmVyIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIkdQTCB2MiI/CgoJU2FtCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==