From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH v2 5/9] drm/panel: Add driver for the NEC NL8048HL11 panel Date: Sun, 11 Aug 2019 19:10:05 +0200 Message-ID: <20190811171005.GG14660@ravnborg.org> References: <20190810231048.1921-1-laurent.pinchart@ideasonboard.com> <20190810231048.1921-6-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 B3E086E34C for ; Sun, 11 Aug 2019 17:10:08 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190810231048.1921-6-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: Thierry Reding , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgTGF1cmVudC4KCk9uIFN1biwgQXVnIDExLCAyMDE5IGF0IDAyOjEwOjQ0QU0gKzAzMDAsIExh dXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gVGhpcyBwYW5lbCBpcyB1c2VkIG9uIHRoZSBab29tMi8z LzM2MzAgU0RQIGJvYXJkcy4KPiAKPiBUaGUgY29kZSBpcyBiYXNlZCBvbiB0aGUgb21hcGRybS1z cGVjaWZpYyBwYW5lbC1uZWMtbmw4MDQ4aGwxMSBkcml2ZXIKPiAKPiBTaWduZWQtb2ZmLWJ5OiBM YXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+Cj4gLS0t Cj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAKPiAtIE1lbnRpb24gYm9hcmRzIHVzaW5nIHRoZSBwYW5l bCBpbiBLY29uZmlnCj4gLSBSZW5hbWVkIG5sODA0OF9kZXZpY2UgdG8gbmw4MDQ4X3BhbmVsCj4g LSBDb21tZW50cyB1cGRhdGVzCj4gLSBTdG9yZSB3aWR0aF9tbSBhbmQgaGVpZ2h0X21tIGluIGRy bV9kaXNwbGF5X21vZGUKPiAtIFVzZSBkcm1fcGFuZWxfZGlzYWJsZSgpIGluIC5yZW1vdmUoKSBo YW5kbGVyCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnICAgICAgICAgICAg ICAgIHwgICA4ICsKPiAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlICAgICAgICAgICAg ICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEu YyB8IDI0NyArKysrKysrKysrKysrKysrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjU2IGluc2Vy dGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5l bC1uZWMtbmw4MDQ4aGwxMS5jCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKPiBpbmRleCA4N2NkYzMz MDY3MmIuLmQyODEzM2M2YWEwYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv S2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCj4gQEAgLTExOSw2 ICsxMTksMTQgQEAgY29uZmlnIERSTV9QQU5FTF9MR19MRzQ1NzMKPiAgCSAgU2F5IFkgaGVyZSBp ZiB5b3Ugd2FudCB0byBlbmFibGUgc3VwcG9ydCBmb3IgTEc0NTczIFJHQiBwYW5lbC4KPiAgCSAg VG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4KPiAgCj4g K2NvbmZpZyBEUk1fUEFORUxfTkVDX05MODA0OEhMMTEKPiArCXRyaXN0YXRlICJORUMgTkw4MDQ4 SEwxMSBSR0IgcGFuZWwiCj4gKwlkZXBlbmRzIG9uIEdQSU9MSUIgJiYgT0YgJiYgU1BJCj4gKwlo ZWxwCj4gKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRo ZSBORUMgTkw4MDQ4SEwxMSBSR0IKPiArCSAgcGFuZWwgKGZvdW5kIG9uIHRoZSBab29tMi8zLzM2 MzAgU0RQIGJvYXJkcykuIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIKPiArCSAgYXMgYSBtb2R1bGUs IGNob29zZSBNIGhlcmUuCj4gKwo+ICBjb25maWcgRFJNX1BBTkVMX05PVkFURUtfTlQzOTAxNgo+ ICAJdHJpc3RhdGUgIk5vdmF0ZWsgTlQzOTAxNiBSR0IvU1BJIHBhbmVsIgo+ICAJZGVwZW5kcyBv biBPRiAmJiBTUEkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxl IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gaW5kZXggOWJjNmYzYzViZjk2Li44 MDUyZjlhN2FkNjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxl Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gQEAgLTEwLDYgKzEwLDcg QEAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1MDAwKSArPSBwYW5lbC1qZGkt bHQwNzBtZTA1MDAwLm8KPiAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9LSU5HRElTUExBWV9LRDA5 N0QwNCkgKz0gcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQubwo+ICBvYmotJChDT05GSUdfRFJN X1BBTkVMX0xHX0xCMDM1UTAyKSArPSBwYW5lbC1sZy1sYjAzNXEwMi5vCj4gIG9iai0kKENPTkZJ R19EUk1fUEFORUxfTEdfTEc0NTczKSArPSBwYW5lbC1sZy1sZzQ1NzMubwo+ICtvYmotJChDT05G SUdfRFJNX1BBTkVMX05FQ19OTDgwNDhITDExKSArPSBwYW5lbC1uZWMtbmw4MDQ4aGwxMS5vCj4g IG9iai0kKENPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM5MDE2KSArPSBwYW5lbC1ub3ZhdGVr LW50MzkwMTYubwo+ICBvYmotJChDT05GSUdfRFJNX1BBTkVMX09MSU1FWF9MQ0RfT0xJTlVYSU5P KSArPSBwYW5lbC1vbGltZXgtbGNkLW9saW51eGluby5vCj4gIG9iai0kKENPTkZJR19EUk1fUEFO RUxfT1JJU0VURUNIX09UTTgwMDlBKSArPSBwYW5lbC1vcmlzZXRlY2gtb3RtODAwOWEubwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjdjMWI3N2EwYjAyNAo+IC0tLSAvZGV2 L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEu Ywo+IEBAIC0wLDAgKzEsMjQ3IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wKwo+ICsvKgo+ICsgKiBORUMgTkw4MDQ4SEwxMSBQYW5lbCBEcml2ZXIKPiArICoKPiArICog Q29weXJpZ2h0IChDKSAyMDE5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZAo+ICsgKgo+ ICsgKiBCYXNlZCBvbiB0aGUgb21hcGRybS1zcGVjaWZpYyBwYW5lbC1uZWMtbmw4MDQ4aGwxMSBk cml2ZXIKPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDEwIFRleGFzIEluc3RydW1lbnRzIElu Y29ycG9yYXRlZAo+ICsgKiBBdXRob3I6IEVyaWsgR2lsbGluZyA8a29ua2Vyc0BhbmRyb2lkLmNv bT4KPiArICovCj4gKwo+ICsjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPiArI2luY2x1ZGUgPGxp bnV4L2dwaW8vY29uc3VtZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsjaW5j bHVkZSA8bGludXgvcG0uaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KPiArCj4gKyNp bmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5o Pgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+ICsKPiArc3RydWN0IG5sODA0OF9wYW5l bCB7Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOwo+ICsKPiArCXN0cnVjdCBzcGlfZGV2aWNl ICpzcGk7Cj4gKwlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXNldF9ncGlvOwo+ICt9Owo+ICsKPiArI2Rl ZmluZSB0b19ubDgwNDhfZGV2aWNlKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3Qgbmw4MDQ4X3Bh bmVsLCBwYW5lbCkKPiArCj4gK3N0YXRpYyBpbnQgbmw4MDQ4X3dyaXRlKHN0cnVjdCBubDgwNDhf cGFuZWwgKmxjZCwgdW5zaWduZWQgY2hhciBhZGRyLAo+ICsJCQl1bnNpZ25lZCBjaGFyIHZhbHVl KQo+ICt7Cj4gKwl1OCBkYXRhWzRdID0geyB2YWx1ZSwgMHgwMSwgYWRkciwgMHgwMCB9Owo+ICsJ aW50IHJldDsKPiArCj4gKwlyZXQgPSBzcGlfd3JpdGUobGNkLT5zcGksIGRhdGEsIHNpemVvZihk YXRhKSk7Cj4gKwlpZiAocmV0KQo+ICsJCWRldl9lcnIoJmxjZC0+c3BpLT5kZXYsICJTUEkgd3Jp dGUgdG8gJXUgZmFpbGVkOiAlZFxuIiwKPiArCQkJYWRkciwgcmV0KTsKPiArCj4gKwlyZXR1cm4g cmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG5sODA0OF9pbml0KHN0cnVjdCBubDgwNDhfcGFu ZWwgKmxjZCkKPiArewo+ICsJc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gKwkJdW5zaWduZWQgY2hh ciBhZGRyOwo+ICsJCXVuc2lnbmVkIGNoYXIgZGF0YTsKPiArCX0gbmw4MDQ4X2luaXRfc2VxW10g PSB7Cj4gKwkJeyAgIDMsIDB4MDEgfSwgeyAgIDAsIDB4MDAgfSwgeyAgIDEsIDB4MDEgfSwgeyAg IDQsIDB4MDAgfSwKPiArCQl7ICAgNSwgMHgxNCB9LCB7ICAgNiwgMHgyNCB9LCB7ICAxNiwgMHhk NyB9LCB7ICAxNywgMHgwMCB9LAo+ICsJCXsgIDE4LCAweDAwIH0sIHsgIDE5LCAweDU1IH0sIHsg IDIwLCAweDAxIH0sIHsgIDIxLCAweDcwIH0sCj4gKwkJeyAgMjIsIDB4MWUgfSwgeyAgMjMsIDB4 MjUgfSwgeyAgMjQsIDB4MjUgfSwgeyAgMjUsIDB4MDIgfSwKPiArCQl7ICAyNiwgMHgwMiB9LCB7 ICAyNywgMHhhMCB9LCB7ICAzMiwgMHgyZiB9LCB7ICAzMywgMHgwZiB9LAo+ICsJCXsgIDM0LCAw eDBmIH0sIHsgIDM1LCAweDBmIH0sIHsgIDM2LCAweDBmIH0sIHsgIDM3LCAweDBmIH0sCj4gKwkJ eyAgMzgsIDB4MGYgfSwgeyAgMzksIDB4MDAgfSwgeyAgNDAsIDB4MDIgfSwgeyAgNDEsIDB4MDIg fSwKPiArCQl7ICA0MiwgMHgwMiB9LCB7ICA0MywgMHgwZiB9LCB7ICA0NCwgMHgwZiB9LCB7ICA0 NSwgMHgwZiB9LAo+ICsJCXsgIDQ2LCAweDBmIH0sIHsgIDQ3LCAweDBmIH0sIHsgIDQ4LCAweDBm IH0sIHsgIDQ5LCAweDBmIH0sCj4gKwkJeyAgNTAsIDB4MDAgfSwgeyAgNTEsIDB4MDIgfSwgeyAg NTIsIDB4MDIgfSwgeyAgNTMsIDB4MDIgfSwKPiArCQl7ICA4MCwgMHgwYyB9LCB7ICA4MywgMHg0 MiB9LCB7ICA4NCwgMHg0MiB9LCB7ICA4NSwgMHg0MSB9LAo+ICsJCXsgIDg2LCAweDE0IH0sIHsg IDg5LCAweDg4IH0sIHsgIDkwLCAweDAxIH0sIHsgIDkxLCAweDAwIH0sCj4gKwkJeyAgOTIsIDB4 MDIgfSwgeyAgOTMsIDB4MGMgfSwgeyAgOTQsIDB4MWMgfSwgeyAgOTUsIDB4MjcgfSwKPiArCQl7 ICA5OCwgMHg0OSB9LCB7ICA5OSwgMHgyNyB9LCB7IDEwMiwgMHg3NiB9LCB7IDEwMywgMHgyNyB9 LAo+ICsJCXsgMTEyLCAweDAxIH0sIHsgMTEzLCAweDBlIH0sIHsgMTE0LCAweDAyIH0sIHsgMTE1 LCAweDBjIH0sCj4gKwkJeyAxMTgsIDB4MGMgfSwgeyAxMjEsIDB4MzAgfSwgeyAxMzAsIDB4MDAg fSwgeyAxMzEsIDB4MDAgfSwKPiArCQl7IDEzMiwgMHhmYyB9LCB7IDEzNCwgMHgwMCB9LCB7IDEz NiwgMHgwMCB9LCB7IDEzOCwgMHgwMCB9LAo+ICsJCXsgMTM5LCAweDAwIH0sIHsgMTQwLCAweDAw IH0sIHsgMTQxLCAweGZjIH0sIHsgMTQzLCAweDAwIH0sCj4gKwkJeyAxNDUsIDB4MDAgfSwgeyAx NDcsIDB4MDAgfSwgeyAxNDgsIDB4MDAgfSwgeyAxNDksIDB4MDAgfSwKPiArCQl7IDE1MCwgMHhm YyB9LCB7IDE1MiwgMHgwMCB9LCB7IDE1NCwgMHgwMCB9LCB7IDE1NiwgMHgwMCB9LAo+ICsJCXsg MTU3LCAweDAwIH0sCj4gKwl9Owo+ICsKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJaW50IHJldDsK PiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShubDgwNDhfaW5pdF9zZXEpOyArK2kp IHsKPiArCQlyZXQgPSBubDgwNDhfd3JpdGUobGNkLCBubDgwNDhfaW5pdF9zZXFbaV0uYWRkciwK PiArCQkJCSAgIG5sODA0OF9pbml0X3NlcVtpXS5kYXRhKTsKPiArCQlpZiAocmV0IDwgMCkKPiAr CQkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwl1ZGVsYXkoMjApOwo+ICsKPiArCXJldHVybiBu bDgwNDhfd3JpdGUobGNkLCAyLCAweDAwKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBubDgwNDhf ZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiArewo+ICsJc3RydWN0IG5sODA0OF9w YW5lbCAqbGNkID0gdG9fbmw4MDQ4X2RldmljZShwYW5lbCk7Cj4gKwo+ICsJZ3Bpb2Rfc2V0X3Zh bHVlX2NhbnNsZWVwKGxjZC0+cmVzZXRfZ3BpbywgMCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgbmw4MDQ4X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK PiArewo+ICsJc3RydWN0IG5sODA0OF9wYW5lbCAqbGNkID0gdG9fbmw4MDQ4X2RldmljZShwYW5l bCk7Cj4gKwo+ICsJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGxjZC0+cmVzZXRfZ3BpbywgMSk7 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSBubDgwNDhfbW9kZSA9IHsKPiArCS8qICBORUMgUElYIENsb2NrIFJhdGluZ3Mg TUlOOjIxLjhNSHogVFlQOjIzLjhNSHogTUFYOjI1LjdNSHogKi8KPiArCS5jbG9jawk9IDIzODAw LAo+ICsJLmhkaXNwbGF5ID0gODAwLAo+ICsJLmhzeW5jX3N0YXJ0ID0gODAwICsgNiwKPiArCS5o c3luY19lbmQgPSA4MDAgKyA2ICsgMSwKPiArCS5odG90YWwgPSA4MDAgKyA2ICsgMSArIDQsCj4g KwkudmRpc3BsYXkgPSA0ODAsCj4gKwkudnN5bmNfc3RhcnQgPSA0ODAgKyAzLAo+ICsJLnZzeW5j X2VuZCA9IDQ4MCArIDMgKyAxLAo+ICsJLnZ0b3RhbCA9IDQ4MCArIDMgKyAxICsgNCwKPiArCS52 cmVmcmVzaCA9IDYwLAo+ICsJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RF X1RZUEVfUFJFRkVSUkVELAo+ICsJLmZsYWdzID0gRFJNX01PREVfRkxBR19OSFNZTkMgfCBEUk1f TU9ERV9GTEFHX05WU1lOQywKPiArCS53aWR0aF9tbSA9IDg5LAo+ICsJLmhlaWdodF9tbSA9IDUz LAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBubDgwNDhfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFu ZWwtPmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+ICsKPiAr CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJm5sODA0OF9tb2RlKTsKPiAr CWlmICghbW9kZSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlkcm1fbW9kZV9zZXRfbmFt ZShtb2RlKTsKPiArCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKPiArCj4g Kwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IG5sODA0OF9tb2RlLndpZHRoX21t Owo+ICsJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbmw4MDQ4X21vZGUuaGVp Z2h0X21tOwo+ICsJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gRFJNX0JVU19G TEFHX0RFX0hJR0gKPiArCQkJCQkgIHwgRFJNX0JVU19GTEFHX1NZTkNfU0FNUExFX05FR0VER0UK PiArCQkJCQkgIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfU0FNUExFX05FR0VER0U7Cj4gKwo+ICsJ cmV0dXJuIDE7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNz IG5sODA0OF9mdW5jcyA9IHsKPiArCS5kaXNhYmxlID0gbmw4MDQ4X2Rpc2FibGUsCj4gKwkuZW5h YmxlID0gbmw4MDQ4X2VuYWJsZSwKPiArCS5nZXRfbW9kZXMgPSBubDgwNDhfZ2V0X21vZGVzLAo+ ICt9Owo+ICsKPiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBubDgwNDhfc3VzcGVuZChzdHJ1 Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBubDgwNDhfcGFuZWwgKmxjZCA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArCW5sODA0OF93cml0ZShsY2QsIDIsIDB4MDEpOwo+ICsJ bXNsZWVwKDQwKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBfX21h eWJlX3VudXNlZCBubDgwNDhfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3Ry dWN0IG5sODA0OF9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ICsJLyog UmVpbml0aWFsaXplIHRoZSBwYW5lbC4gKi8KPiArCXNwaV9zZXR1cChsY2QtPnNwaSk7Cj4gKwlu bDgwNDhfd3JpdGUobGNkLCAyLCAweDAwKTsKPiArCW5sODA0OF9pbml0KGxjZCk7Cj4gKwo+ICsJ cmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhubDgwNDhfcG1f b3BzLCBubDgwNDhfc3VzcGVuZCwgbmw4MDQ4X3Jlc3VtZSk7Cj4gKwo+ICtzdGF0aWMgaW50IG5s ODA0OF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQo+ICt7Cj4gKwlzdHJ1Y3Qgbmw4MDQ4 X3BhbmVsICpsY2Q7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWxjZCA9IGRldm1fa3phbGxvYygmc3Bp LT5kZXYsIHNpemVvZigqbGNkKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAobGNkID09IE5VTEwpCj4g KwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJc3BpX3NldF9kcnZkYXRhKHNwaSwgbGNkKTsKPiAr CWxjZC0+c3BpID0gc3BpOwo+ICsKPiArCWxjZC0+cmVzZXRfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0 KCZzcGktPmRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0xPVyk7Cj4gKwlpZiAoSVNfRVJSKGxjZC0+ cmVzZXRfZ3BpbykpIHsKPiArCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBwYXJzZSBy ZXNldCBncGlvXG4iKTsKPiArCQlyZXR1cm4gUFRSX0VSUihsY2QtPnJlc2V0X2dwaW8pOwo+ICsJ fQo+ICsKPiArCXNwaS0+bW9kZSA9IFNQSV9NT0RFXzA7Cj4gKwlzcGktPmJpdHNfcGVyX3dvcmQg PSAzMjsKPiArCj4gKwlyZXQgPSBzcGlfc2V0dXAoc3BpKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4g KwkJZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gc2V0dXAgU1BJOiAlZFxuIiwgcmV0KTsK PiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IG5sODA0OF9pbml0KGxjZCk7Cj4g KwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWRybV9wYW5lbF9pbml0KCZs Y2QtPnBhbmVsKTsKPiArCWxjZC0+cGFuZWwuZGV2ID0gJmxjZC0+c3BpLT5kZXY7Cj4gKwlsY2Qt PnBhbmVsLmZ1bmNzID0gJm5sODA0OF9mdW5jczsKPiArCj4gKwlyZXR1cm4gZHJtX3BhbmVsX2Fk ZCgmbGNkLT5wYW5lbCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbmw4MDQ4X3JlbW92ZShzdHJ1 Y3Qgc3BpX2RldmljZSAqc3BpKQo+ICt7Cj4gKwlzdHJ1Y3Qgbmw4MDQ4X3BhbmVsICpsY2QgPSBz cGlfZ2V0X2RydmRhdGEoc3BpKTsKPiArCj4gKwlkcm1fcGFuZWxfcmVtb3ZlKCZsY2QtPnBhbmVs KTsKPiArCWRybV9wYW5lbF9kaXNhYmxlKCZsY2QtPnBhbmVsKTsKV2UgYXJlIG1pc3NpbmcgYSBk cm1fcGFuZWxfdW5wcmVwYXJlKCkgaGVyZS4KVGhpcyBpcyByZXF1aXJlZCBieSB0aGUgY29yZSAt IGJ1dCBub3QgYnkgdGhpcyBkcml2ZXIuCihBdCBsZWFzdCB3aXRoIHRoZSBwYXRjaCBJIGhhdmUg aW4gdGhlIHdvcmtzKS4KClRoZW4gYWdhaW46CgogICAgJCBnaXQgZ3JlcCAtQyAzIGRybV9wYW5l bF9yZW1vdmUKCnRlbGwgYSBzdG9yeSB0aGF0IG1hbnkgdXNlcnMgb2YgZHJtX3BhbmVsX3JlbW92 ZSBkbyBNT1QKY2FsbCBkcm1fcGFuZWxfZGlzYWJsZSgpIC8gZHJtX3BhbmVsX3VucHJlcGFyZSgp IGFmdGVyCmRybV9wYW5lbF9yZW1vdmUoKQoKTWF5YmUgd2Ugc2hvdWxkIGp1c3QgYWRkIGl0IHRv IHRoZSBjb3JlIHNvIGRpc2FibGUvdW5wcmVwYXJlCmlzIGRvbmUgYnkgdGhlIGNvcmUgd2hlbiBh IHBhbmVsIGlzIHJlbW92ZWQ/CgoJU2FtCgo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBubDgwNDhfb2ZfbWF0Y2hbXSA9IHsKPiAr CXsgLmNvbXBhdGlibGUgPSAibmVjLG5sODA0OGhsMTEiLCB9LAo+ICsJeyAvKiBzZW50aW5lbCAq LyB9LAo+ICt9Owo+ICsKPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbmw4MDQ4X29mX21hdGNo KTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBubDgwNDhfZHJpdmVyID0gewo+ICsJ LnByb2JlCQk9IG5sODA0OF9wcm9iZSwKPiArCS5yZW1vdmUJCT0gbmw4MDQ4X3JlbW92ZSwKPiAr CS5kcml2ZXIJCT0gewo+ICsJCS5uYW1lCT0gInBhbmVsLW5lYy1ubDgwNDhobDExIiwKPiArCQku cG0JPSAmbmw4MDQ4X3BtX29wcywKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBubDgwNDhfb2ZfbWF0 Y2gsCj4gKwl9LAo+ICt9Owo+ICsKPiArbW9kdWxlX3NwaV9kcml2ZXIobmw4MDQ4X2RyaXZlcik7 Cj4gKwo+ICtNT0RVTEVfQUxJQVMoInNwaTpuZWMsbmw4MDQ4aGwxMSIpOwo+ICtNT0RVTEVfQVVU SE9SKCJFcmlrIEdpbGxpbmcgPGtvbmtlcnNAYW5kcm9pZC5jb20+Iik7Cj4gK01PRFVMRV9ERVND UklQVElPTigiTkVDLU5MODA0OEhMMTEgRHJpdmVyIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwi KTsKPiAtLSAKPiBSZWdhcmRzLAo+IAo+IExhdXJlbnQgUGluY2hhcnQKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs