From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH v3 5/9] drm/panel: Add driver for the NEC NL8048HL11 panel Date: Tue, 13 Aug 2019 18:54:10 +0200 Message-ID: <20190813165410.GA30320@ravnborg.org> References: <20190813133311.26441-1-laurent.pinchart@ideasonboard.com> <20190813133311.26441-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 226656E112 for ; Tue, 13 Aug 2019 16:54:15 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190813133311.26441-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 T24gVHVlLCBBdWcgMTMsIDIwMTkgYXQgMDQ6MzM6MDdQTSArMDMwMCwgTGF1cmVudCBQaW5jaGFy dCB3cm90ZToKPiBUaGlzIHBhbmVsIGlzIHVzZWQgb24gdGhlIFpvb20yLzMvMzYzMCBTRFAgYm9h cmRzLgo+IAo+IFRoZSBjb2RlIGlzIGJhc2VkIG9uIHRoZSBvbWFwZHJtLXNwZWNpZmljIHBhbmVs LW5lYy1ubDgwNDhobDExIGRyaXZlcgo+IAo+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hh cnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KUmV2aWV3ZWQtYnk6IFNhbSBS YXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4KCj4gLS0tCj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAK PiAtIENhbGwgZHJtX3BhbmVsX3VucHJlcGFyZSgpIGluIC5yZW1vdmUoKSBoYW5kbGVyCj4gCj4g Q2hhbmdlcyBzaW5jZSB2MToKPiAKPiAtIE1lbnRpb24gYm9hcmRzIHVzaW5nIHRoZSBwYW5lbCBp biBLY29uZmlnCj4gLSBSZW5hbWVkIG5sODA0OF9kZXZpY2UgdG8gbmw4MDQ4X3BhbmVsCj4gLSBD b21tZW50cyB1cGRhdGVzCj4gLSBTdG9yZSB3aWR0aF9tbSBhbmQgaGVpZ2h0X21tIGluIGRybV9k aXNwbGF5X21vZGUKPiAtIFVzZSBkcm1fcGFuZWxfZGlzYWJsZSgpIGluIC5yZW1vdmUoKSBoYW5k bGVyCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnICAgICAgICAgICAgICAg IHwgICA4ICsKPiAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlICAgICAgICAgICAgICAg fCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYyB8 IDI0OCArKysrKysrKysrKysrKysrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjU3IGluc2VydGlv bnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1u ZWMtbmw4MDQ4aGwxMS5jCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9L Y29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKPiBpbmRleCA4N2NkYzMzMDY3 MmIuLmQyODEzM2M2YWEwYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2Nv bmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCj4gQEAgLTExOSw2ICsx MTksMTQgQEAgY29uZmlnIERSTV9QQU5FTF9MR19MRzQ1NzMKPiAgCSAgU2F5IFkgaGVyZSBpZiB5 b3Ugd2FudCB0byBlbmFibGUgc3VwcG9ydCBmb3IgTEc0NTczIFJHQiBwYW5lbC4KPiAgCSAgVG8g Y29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4KPiAgCj4gK2Nv bmZpZyBEUk1fUEFORUxfTkVDX05MODA0OEhMMTEKPiArCXRyaXN0YXRlICJORUMgTkw4MDQ4SEwx MSBSR0IgcGFuZWwiCj4gKwlkZXBlbmRzIG9uIEdQSU9MSUIgJiYgT0YgJiYgU1BJCj4gKwloZWxw Cj4gKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBO RUMgTkw4MDQ4SEwxMSBSR0IKPiArCSAgcGFuZWwgKGZvdW5kIG9uIHRoZSBab29tMi8zLzM2MzAg U0RQIGJvYXJkcykuIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIKPiArCSAgYXMgYSBtb2R1bGUsIGNo b29zZSBNIGhlcmUuCj4gKwo+ICBjb25maWcgRFJNX1BBTkVMX05PVkFURUtfTlQzOTAxNgo+ICAJ dHJpc3RhdGUgIk5vdmF0ZWsgTlQzOTAxNiBSR0IvU1BJIHBhbmVsIgo+ICAJZGVwZW5kcyBvbiBP RiAmJiBTUEkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gaW5kZXggOWJjNmYzYzViZjk2Li44MDUy ZjlhN2FkNjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gQEAgLTEwLDYgKzEwLDcgQEAg b2JqLSQoQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1MDAwKSArPSBwYW5lbC1qZGktbHQw NzBtZTA1MDAwLm8KPiAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9LSU5HRElTUExBWV9LRDA5N0Qw NCkgKz0gcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQubwo+ICBvYmotJChDT05GSUdfRFJNX1BB TkVMX0xHX0xCMDM1UTAyKSArPSBwYW5lbC1sZy1sYjAzNXEwMi5vCj4gIG9iai0kKENPTkZJR19E Uk1fUEFORUxfTEdfTEc0NTczKSArPSBwYW5lbC1sZy1sZzQ1NzMubwo+ICtvYmotJChDT05GSUdf RFJNX1BBTkVMX05FQ19OTDgwNDhITDExKSArPSBwYW5lbC1uZWMtbmw4MDQ4aGwxMS5vCj4gIG9i ai0kKENPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM5MDE2KSArPSBwYW5lbC1ub3ZhdGVrLW50 MzkwMTYubwo+ICBvYmotJChDT05GSUdfRFJNX1BBTkVMX09MSU1FWF9MQ0RfT0xJTlVYSU5PKSAr PSBwYW5lbC1vbGltZXgtbGNkLW9saW51eGluby5vCj4gIG9iai0kKENPTkZJR19EUk1fUEFORUxf T1JJU0VURUNIX09UTTgwMDlBKSArPSBwYW5lbC1vcmlzZXRlY2gtb3RtODAwOWEubwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjIxYmFlMmQwYTIzYQo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYwo+ IEBAIC0wLDAgKzEsMjQ4IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w Kwo+ICsvKgo+ICsgKiBORUMgTkw4MDQ4SEwxMSBQYW5lbCBEcml2ZXIKPiArICoKPiArICogQ29w eXJpZ2h0IChDKSAyMDE5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZAo+ICsgKgo+ICsg KiBCYXNlZCBvbiB0aGUgb21hcGRybS1zcGVjaWZpYyBwYW5lbC1uZWMtbmw4MDQ4aGwxMSBkcml2 ZXIKPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDEwIFRleGFzIEluc3RydW1lbnRzIEluY29y cG9yYXRlZAo+ICsgKiBBdXRob3I6IEVyaWsgR2lsbGluZyA8a29ua2Vyc0BhbmRyb2lkLmNvbT4K PiArICovCj4gKwo+ICsjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L2dwaW8vY29uc3VtZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsjaW5jbHVk ZSA8bGludXgvcG0uaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KPiArCj4gKyNpbmNs dWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgo+ ICsjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+ICsKPiArc3RydWN0IG5sODA0OF9wYW5lbCB7 Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOwo+ICsKPiArCXN0cnVjdCBzcGlfZGV2aWNlICpz cGk7Cj4gKwlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXNldF9ncGlvOwo+ICt9Owo+ICsKPiArI2RlZmlu ZSB0b19ubDgwNDhfZGV2aWNlKHApIGNvbnRhaW5lcl9vZihwLCBzdHJ1Y3Qgbmw4MDQ4X3BhbmVs LCBwYW5lbCkKPiArCj4gK3N0YXRpYyBpbnQgbmw4MDQ4X3dyaXRlKHN0cnVjdCBubDgwNDhfcGFu ZWwgKmxjZCwgdW5zaWduZWQgY2hhciBhZGRyLAo+ICsJCQl1bnNpZ25lZCBjaGFyIHZhbHVlKQo+ ICt7Cj4gKwl1OCBkYXRhWzRdID0geyB2YWx1ZSwgMHgwMSwgYWRkciwgMHgwMCB9Owo+ICsJaW50 IHJldDsKPiArCj4gKwlyZXQgPSBzcGlfd3JpdGUobGNkLT5zcGksIGRhdGEsIHNpemVvZihkYXRh KSk7Cj4gKwlpZiAocmV0KQo+ICsJCWRldl9lcnIoJmxjZC0+c3BpLT5kZXYsICJTUEkgd3JpdGUg dG8gJXUgZmFpbGVkOiAlZFxuIiwKPiArCQkJYWRkciwgcmV0KTsKPiArCj4gKwlyZXR1cm4gcmV0 Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG5sODA0OF9pbml0KHN0cnVjdCBubDgwNDhfcGFuZWwg KmxjZCkKPiArewo+ICsJc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gKwkJdW5zaWduZWQgY2hhciBh ZGRyOwo+ICsJCXVuc2lnbmVkIGNoYXIgZGF0YTsKPiArCX0gbmw4MDQ4X2luaXRfc2VxW10gPSB7 Cj4gKwkJeyAgIDMsIDB4MDEgfSwgeyAgIDAsIDB4MDAgfSwgeyAgIDEsIDB4MDEgfSwgeyAgIDQs IDB4MDAgfSwKPiArCQl7ICAgNSwgMHgxNCB9LCB7ICAgNiwgMHgyNCB9LCB7ICAxNiwgMHhkNyB9 LCB7ICAxNywgMHgwMCB9LAo+ICsJCXsgIDE4LCAweDAwIH0sIHsgIDE5LCAweDU1IH0sIHsgIDIw LCAweDAxIH0sIHsgIDIxLCAweDcwIH0sCj4gKwkJeyAgMjIsIDB4MWUgfSwgeyAgMjMsIDB4MjUg fSwgeyAgMjQsIDB4MjUgfSwgeyAgMjUsIDB4MDIgfSwKPiArCQl7ICAyNiwgMHgwMiB9LCB7ICAy NywgMHhhMCB9LCB7ICAzMiwgMHgyZiB9LCB7ICAzMywgMHgwZiB9LAo+ICsJCXsgIDM0LCAweDBm IH0sIHsgIDM1LCAweDBmIH0sIHsgIDM2LCAweDBmIH0sIHsgIDM3LCAweDBmIH0sCj4gKwkJeyAg MzgsIDB4MGYgfSwgeyAgMzksIDB4MDAgfSwgeyAgNDAsIDB4MDIgfSwgeyAgNDEsIDB4MDIgfSwK PiArCQl7ICA0MiwgMHgwMiB9LCB7ICA0MywgMHgwZiB9LCB7ICA0NCwgMHgwZiB9LCB7ICA0NSwg MHgwZiB9LAo+ICsJCXsgIDQ2LCAweDBmIH0sIHsgIDQ3LCAweDBmIH0sIHsgIDQ4LCAweDBmIH0s IHsgIDQ5LCAweDBmIH0sCj4gKwkJeyAgNTAsIDB4MDAgfSwgeyAgNTEsIDB4MDIgfSwgeyAgNTIs IDB4MDIgfSwgeyAgNTMsIDB4MDIgfSwKPiArCQl7ICA4MCwgMHgwYyB9LCB7ICA4MywgMHg0MiB9 LCB7ICA4NCwgMHg0MiB9LCB7ICA4NSwgMHg0MSB9LAo+ICsJCXsgIDg2LCAweDE0IH0sIHsgIDg5 LCAweDg4IH0sIHsgIDkwLCAweDAxIH0sIHsgIDkxLCAweDAwIH0sCj4gKwkJeyAgOTIsIDB4MDIg fSwgeyAgOTMsIDB4MGMgfSwgeyAgOTQsIDB4MWMgfSwgeyAgOTUsIDB4MjcgfSwKPiArCQl7ICA5 OCwgMHg0OSB9LCB7ICA5OSwgMHgyNyB9LCB7IDEwMiwgMHg3NiB9LCB7IDEwMywgMHgyNyB9LAo+ ICsJCXsgMTEyLCAweDAxIH0sIHsgMTEzLCAweDBlIH0sIHsgMTE0LCAweDAyIH0sIHsgMTE1LCAw eDBjIH0sCj4gKwkJeyAxMTgsIDB4MGMgfSwgeyAxMjEsIDB4MzAgfSwgeyAxMzAsIDB4MDAgfSwg eyAxMzEsIDB4MDAgfSwKPiArCQl7IDEzMiwgMHhmYyB9LCB7IDEzNCwgMHgwMCB9LCB7IDEzNiwg MHgwMCB9LCB7IDEzOCwgMHgwMCB9LAo+ICsJCXsgMTM5LCAweDAwIH0sIHsgMTQwLCAweDAwIH0s IHsgMTQxLCAweGZjIH0sIHsgMTQzLCAweDAwIH0sCj4gKwkJeyAxNDUsIDB4MDAgfSwgeyAxNDcs IDB4MDAgfSwgeyAxNDgsIDB4MDAgfSwgeyAxNDksIDB4MDAgfSwKPiArCQl7IDE1MCwgMHhmYyB9 LCB7IDE1MiwgMHgwMCB9LCB7IDE1NCwgMHgwMCB9LCB7IDE1NiwgMHgwMCB9LAo+ICsJCXsgMTU3 LCAweDAwIH0sCj4gKwl9Owo+ICsKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJaW50IHJldDsKPiAr Cj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShubDgwNDhfaW5pdF9zZXEpOyArK2kpIHsK PiArCQlyZXQgPSBubDgwNDhfd3JpdGUobGNkLCBubDgwNDhfaW5pdF9zZXFbaV0uYWRkciwKPiAr CQkJCSAgIG5sODA0OF9pbml0X3NlcVtpXS5kYXRhKTsKPiArCQlpZiAocmV0IDwgMCkKPiArCQkJ cmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwl1ZGVsYXkoMjApOwo+ICsKPiArCXJldHVybiBubDgw NDhfd3JpdGUobGNkLCAyLCAweDAwKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBubDgwNDhfZGlz YWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiArewo+ICsJc3RydWN0IG5sODA0OF9wYW5l bCAqbGNkID0gdG9fbmw4MDQ4X2RldmljZShwYW5lbCk7Cj4gKwo+ICsJZ3Bpb2Rfc2V0X3ZhbHVl X2NhbnNsZWVwKGxjZC0+cmVzZXRfZ3BpbywgMCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgbmw4MDQ4X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiAr ewo+ICsJc3RydWN0IG5sODA0OF9wYW5lbCAqbGNkID0gdG9fbmw4MDQ4X2RldmljZShwYW5lbCk7 Cj4gKwo+ICsJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGxjZC0+cmVzZXRfZ3BpbywgMSk7Cj4g Kwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSBubDgwNDhfbW9kZSA9IHsKPiArCS8qICBORUMgUElYIENsb2NrIFJhdGluZ3MgTUlO OjIxLjhNSHogVFlQOjIzLjhNSHogTUFYOjI1LjdNSHogKi8KPiArCS5jbG9jawk9IDIzODAwLAo+ ICsJLmhkaXNwbGF5ID0gODAwLAo+ICsJLmhzeW5jX3N0YXJ0ID0gODAwICsgNiwKPiArCS5oc3lu Y19lbmQgPSA4MDAgKyA2ICsgMSwKPiArCS5odG90YWwgPSA4MDAgKyA2ICsgMSArIDQsCj4gKwku dmRpc3BsYXkgPSA0ODAsCj4gKwkudnN5bmNfc3RhcnQgPSA0ODAgKyAzLAo+ICsJLnZzeW5jX2Vu ZCA9IDQ4MCArIDMgKyAxLAo+ICsJLnZ0b3RhbCA9IDQ4MCArIDMgKyAxICsgNCwKPiArCS52cmVm cmVzaCA9IDYwLAo+ICsJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZ UEVfUFJFRkVSUkVELAo+ICsJLmZsYWdzID0gRFJNX01PREVfRkxBR19OSFNZTkMgfCBEUk1fTU9E RV9GTEFHX05WU1lOQywKPiArCS53aWR0aF9tbSA9IDg5LAo+ICsJLmhlaWdodF9tbSA9IDUzLAo+ ICt9Owo+ICsKPiArc3RhdGljIGludCBubDgwNDhfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwt PmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+ICsKPiArCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJm5sODA0OF9tb2RlKTsKPiArCWlm ICghbW9kZSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlkcm1fbW9kZV9zZXRfbmFtZSht b2RlKTsKPiArCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKPiArCj4gKwlj b25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IG5sODA0OF9tb2RlLndpZHRoX21tOwo+ ICsJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbmw4MDQ4X21vZGUuaGVpZ2h0 X21tOwo+ICsJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gRFJNX0JVU19GTEFH X0RFX0hJR0gKPiArCQkJCQkgIHwgRFJNX0JVU19GTEFHX1NZTkNfU0FNUExFX05FR0VER0UKPiAr CQkJCQkgIHwgRFJNX0JVU19GTEFHX1BJWERBVEFfU0FNUExFX05FR0VER0U7Cj4gKwo+ICsJcmV0 dXJuIDE7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIG5s ODA0OF9mdW5jcyA9IHsKPiArCS5kaXNhYmxlID0gbmw4MDQ4X2Rpc2FibGUsCj4gKwkuZW5hYmxl ID0gbmw4MDQ4X2VuYWJsZSwKPiArCS5nZXRfbW9kZXMgPSBubDgwNDhfZ2V0X21vZGVzLAo+ICt9 Owo+ICsKPiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBubDgwNDhfc3VzcGVuZChzdHJ1Y3Qg ZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBubDgwNDhfcGFuZWwgKmxjZCA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOwo+ICsKPiArCW5sODA0OF93cml0ZShsY2QsIDIsIDB4MDEpOwo+ICsJbXNs ZWVwKDQwKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBfX21heWJl X3VudXNlZCBubDgwNDhfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0 IG5sODA0OF9wYW5lbCAqbGNkID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ICsJLyogUmVp bml0aWFsaXplIHRoZSBwYW5lbC4gKi8KPiArCXNwaV9zZXR1cChsY2QtPnNwaSk7Cj4gKwlubDgw NDhfd3JpdGUobGNkLCAyLCAweDAwKTsKPiArCW5sODA0OF9pbml0KGxjZCk7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhubDgwNDhfcG1fb3Bz LCBubDgwNDhfc3VzcGVuZCwgbmw4MDQ4X3Jlc3VtZSk7Cj4gKwo+ICtzdGF0aWMgaW50IG5sODA0 OF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQo+ICt7Cj4gKwlzdHJ1Y3Qgbmw4MDQ4X3Bh bmVsICpsY2Q7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWxjZCA9IGRldm1fa3phbGxvYygmc3BpLT5k ZXYsIHNpemVvZigqbGNkKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAobGNkID09IE5VTEwpCj4gKwkJ cmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJc3BpX3NldF9kcnZkYXRhKHNwaSwgbGNkKTsKPiArCWxj ZC0+c3BpID0gc3BpOwo+ICsKPiArCWxjZC0+cmVzZXRfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0KCZz cGktPmRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0xPVyk7Cj4gKwlpZiAoSVNfRVJSKGxjZC0+cmVz ZXRfZ3BpbykpIHsKPiArCQlkZXZfZXJyKCZzcGktPmRldiwgImZhaWxlZCB0byBwYXJzZSByZXNl dCBncGlvXG4iKTsKPiArCQlyZXR1cm4gUFRSX0VSUihsY2QtPnJlc2V0X2dwaW8pOwo+ICsJfQo+ ICsKPiArCXNwaS0+bW9kZSA9IFNQSV9NT0RFXzA7Cj4gKwlzcGktPmJpdHNfcGVyX3dvcmQgPSAz MjsKPiArCj4gKwlyZXQgPSBzcGlfc2V0dXAoc3BpKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJ ZGV2X2Vycigmc3BpLT5kZXYsICJmYWlsZWQgdG8gc2V0dXAgU1BJOiAlZFxuIiwgcmV0KTsKPiAr CQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IG5sODA0OF9pbml0KGxjZCk7Cj4gKwlp ZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWRybV9wYW5lbF9pbml0KCZsY2Qt PnBhbmVsKTsKPiArCWxjZC0+cGFuZWwuZGV2ID0gJmxjZC0+c3BpLT5kZXY7Cj4gKwlsY2QtPnBh bmVsLmZ1bmNzID0gJm5sODA0OF9mdW5jczsKPiArCj4gKwlyZXR1cm4gZHJtX3BhbmVsX2FkZCgm bGNkLT5wYW5lbCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbmw4MDQ4X3JlbW92ZShzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpKQo+ICt7Cj4gKwlzdHJ1Y3Qgbmw4MDQ4X3BhbmVsICpsY2QgPSBzcGlf Z2V0X2RydmRhdGEoc3BpKTsKPiArCj4gKwlkcm1fcGFuZWxfcmVtb3ZlKCZsY2QtPnBhbmVsKTsK PiArCWRybV9wYW5lbF9kaXNhYmxlKCZsY2QtPnBhbmVsKTsKPiArCWRybV9wYW5lbF91bnByZXBh cmUoJmxjZC0+cGFuZWwpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBubDgwNDhfb2ZfbWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBh dGlibGUgPSAibmVjLG5sODA0OGhsMTEiLCB9LAo+ICsJeyAvKiBzZW50aW5lbCAqLyB9LAo+ICt9 Owo+ICsKPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbmw4MDQ4X29mX21hdGNoKTsKPiArCj4g K3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBubDgwNDhfZHJpdmVyID0gewo+ICsJLnByb2JlCQk9 IG5sODA0OF9wcm9iZSwKPiArCS5yZW1vdmUJCT0gbmw4MDQ4X3JlbW92ZSwKPiArCS5kcml2ZXIJ CT0gewo+ICsJCS5uYW1lCT0gInBhbmVsLW5lYy1ubDgwNDhobDExIiwKPiArCQkucG0JPSAmbmw4 MDQ4X3BtX29wcywKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBubDgwNDhfb2ZfbWF0Y2gsCj4gKwl9 LAo+ICt9Owo+ICsKPiArbW9kdWxlX3NwaV9kcml2ZXIobmw4MDQ4X2RyaXZlcik7Cj4gKwo+ICtN T0RVTEVfQUxJQVMoInNwaTpuZWMsbmw4MDQ4aGwxMSIpOwo+ICtNT0RVTEVfQVVUSE9SKCJFcmlr IEdpbGxpbmcgPGtvbmtlcnNAYW5kcm9pZC5jb20+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigi TkVDLU5MODA0OEhMMTEgRHJpdmVyIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKPiAtLSAK PiBSZWdhcmRzLAo+IAo+IExhdXJlbnQgUGluY2hhcnQKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVs