From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D042E105A592 for ; Thu, 12 Mar 2026 12:09:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E21710E010; Thu, 12 Mar 2026 12:09:50 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; secure) header.d=ixit.cz header.i=@ixit.cz header.b="g79vdLK/"; dkim-atps=neutral Received: from ixit.cz (ixit.cz [185.100.197.86]) by gabe.freedesktop.org (Postfix) with ESMTPS id C691010E010 for ; Thu, 12 Mar 2026 12:09:46 +0000 (UTC) Received: from [IPV6:2a02:f000:10bd:e301::1d7] (unknown [IPv6:2a02:f000:10bd:e301::1d7]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ixit.cz (Postfix) with ESMTPSA id 3DE6B53400FD; Thu, 12 Mar 2026 13:09:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ixit.cz; s=dkim; t=1773317376; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=YgUody75rJUQE1fojs3LrS2xdVlGscbJtNJbUj3bZfA=; b=g79vdLK/m4SXw65tWgKvHxSNvFGMOw0lJYI7+UgZZJ0TZ/FUgZKPFwindidQj9m/I6HQST SCuEK93nTSxn1PH7T9hIbCAbAargB2YLJQIZGqaO5eLeGYgQIEH5q/OlSbf96hAGRCzDQJ IjD2xlEGz6yHHMdYbhVX4lJoap1lUYE= Message-ID: <1029b5b9-c2ab-42be-a0cf-71304e40e6d8@ixit.cz> Date: Thu, 12 Mar 2026 13:09:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 2/3] drm: panel: Add Samsung S6E8FCO DSI controller for M1906F9 panel To: Yedaya Katsman , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?UTF-8?Q?Kamil_Go=C5=82da?= , Bjorn Andersson , Konrad Dybcio Cc: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org References: <20260312-panel-patches-v3-0-6ed8c006d0be@gmail.com> <20260312-panel-patches-v3-2-6ed8c006d0be@gmail.com> Content-Language: en-US From: David Heidelberg Autocrypt: addr=david@ixit.cz; keydata= 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 In-Reply-To: <20260312-panel-patches-v3-2-6ed8c006d0be@gmail.com> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gMTIvMDMvMjAyNiAxMjo1NSwgWWVkYXlhIEthdHNtYW4gd3JvdGU6Cj4gQWRkIGRyaXZlciBm b3IgU2Ftc3VuZyBTNkU4RkNPIERTSSBjb250cm9sbGVyIGZvciBNMTkwNkY5IHZpZGVvIG1vZGUg cGFuZWwsCj4gZm91bmQgaW4gWGlhb21pIE1pIEEzIG1vYmlsZSBwaG9uZS4KPiAKPiBDby1kZXZl bG9wZWQtYnk6IEthbWlsIEdvxYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+Cj4gU2ln bmVkLW9mZi1ieTogS2FtaWwgR2/FgmRhIDxrYW1pbC5nb2xkYUBwcm90b25tYWlsLmNvbT4KPiBT aWduZWQtb2ZmLWJ5OiBZZWRheWEgS2F0c21hbiA8eWVkYXlhLmthQGdtYWlsLmNvbT4KPiAtLS0K PiAgIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnICAgICAgICAgICAgICAgICAg ICAgIHwgIDEzICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsKPiAgIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZl OGZjby1tMTkwNmY5LmMgIHwgMzAyICsrKysrKysrKysrKysrKysrKysrKwo+ICAgNCBmaWxlcyBj aGFuZ2VkLCAzMTcgaW5zZXJ0aW9ucygrKQo+IAoKVGhhbmtzIGZvciBzZW5kaW5nIHRoZSBwYW5l bCB1cHN0cmVhbSwKCnNlZSBmZXcgdGhvdWdodHMgYmVsb3c6Cgo+IGRpZmYgLS1naXQgYS9NQUlO VEFJTkVSUyBiL01BSU5UQUlORVJTCj4gaW5kZXggZDdhZWU4ZGFiOTAzY2Q0MmMyNDVmZWEzY2Y4 OTcxZGNkOTliMjE5Ni4uZDAwNzc1YTA5NDQ1YThhMWJkNjI2ZWNmZDI3OTAzNDcxZDA4ZDMzYSAx MDA2NDQKPiAtLS0gYS9NQUlOVEFJTkVSUwo+ICsrKyBiL01BSU5UQUlORVJTCj4gQEAgLTgxODcs NiArODE4Nyw3IEBAIERSTSBEUklWRVIgRk9SIFNBTVNVTkcgUzZFOEZDTyBQQU5FTFMKPiAgIE06 CVllZGF5YSBLYXRzbWFuIDx5ZWRheWEua2FAZ21haWwuY29tPgo+ICAgUzoJTWFpbnRhaW5lZAo+ ICAgRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvc2Ft c3VuZyxzNmU4ZmNvLW0xOTA2ZjkueWFtbAo+ICtGOglkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtc2Ftc3VuZy1zNmU4ZmNvLW0xOTA2ZjkuYwo+ICAgCj4gICBEUk0gRFJJVkVSIEZPUiBTQU1T VU5HIFNPRkVGMDAgRERJQwo+ICAgTToJRGF2aWQgSGVpZGVsYmVyZyA8ZGF2aWRAaXhpdC5jej4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvS2NvbmZpZwo+IGluZGV4IDdhODM4MDRmZWRjYTFiNjg4Y2U2ZmJlNDI5NWVj OTAwOTAwN2U2OTMuLmVlOWNjNjkzOWYyYWMxZGM0NTQyNTYzZmQ3M2Y2OGFjNWY5ZWUzNzEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+IEBAIC04OTMsNiArODkzLDE5IEBAIGNvbmZpZyBEUk1f UEFORUxfU0FNU1VOR19TNkU4QUE1WDAxX0FNUzU2MVJBMDEKPiAgIAkgIH41LjYgaW5jaCBBTU9M RUQgZGlzcGxheSwgYW5kIHRoZSBjb250cm9sbGVyIGlzIGRyaXZlbiBieSB0aGUgTUlQSQo+ICAg CSAgRFNJIHByb3RvY29sIHdpdGggNCBsYW5lcy4KPiAgIAo+ICtjb25maWcgRFJNX1BBTkVMX1NB TVNVTkdfUzZFOEZDT19NMTkwNkY5Cj4gKwl0cmlzdGF0ZSAiU2Ftc3VuZyBNMTkwNkY5IHBhbmVs IHdpdGggUzZFOEZDTyBEU0kgY29udHJvbGxlciIKCkkgYmVsaWV2ZSBoZXJlIGl0IHNob3VsZCBi ZSBvbmx5IFM2RThGQzAgbWVudGlvbmVkLCBhcyB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgCnBhbmVs cyBjYW4gZ3JvdyBpbiB0aGUgZnV0dXJlLgoKVGhlIHN1cHBvcnRlZCBwYW5lbCBzaG91bGQgYmUg ZGVmaW5pdGVseSBuYW1lZCBpbiBkZXNjcmlwdGlvbiAoaW5jbC4gd2hlcmUgZm91bmQgCmFzIHlv dSBkaWQpLCBhbHNvIHBhbmVsIHN0cnVjdHVyZSBzaG91bGQgYmUgbmFtZWQgYXMgeW91IG5hbWVk IHdob2xlIGRyaXZlci4gClJlc3Qgb2YgdGhlIG1vcmUgZ2VuZXJpYyBjYWxscyBhbmQgZnVuY3Rp b24gSSB3b3VsZCByZWNvbWVuZCB1c2luZyBvbmx5IHM2ZThmYzAgCmlkZW50aWZpY2F0aW9uLgoK ClNhbWUgdGhlIHN0cnVjdHMgbmFtaW5nIGluc2lkZSB0aGUgcGFuZWwsIGV0Yy4KCj4gKwlkZXBl bmRzIG9uIE9GCj4gKwlkZXBlbmRzIG9uIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKPiArCXNlbGVj dCBEUk1fTUlQSV9EU0kKPiArCXNlbGVjdCBWSURFT01PREVfSEVMUEVSUwo+ICsJaGVscAo+ICsJ ICBTYXkgWSBvciBNIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBT YW1zdW5nIHZpZGVvCj4gKwkgIG1vZGUgcGFuZWwgTTE5MDZGOSAoTTE5MDZGOVNIIG9yIE0xOTA2 RjlTSSksIHdoaWNoIHVzZXMgdGhlIFNhbXN1bmcKPiArCSAgUzZFOEZDTyBEU0kgY29udHJvbGxl ci4gVGhlIHBhbmVsIGhhcyBhIDYuMDkgaW5jaCBBTU9MRUQgZGlzcGxheSwKPiArCSAgd2l0aCBh IHJlc29sdXRpb24gb2YgNzIweDE1NjAuCj4gKwkgIEZvdW5kIGluIHRoZSBYaWFvbWkgTWkgQTMg c21hcnRwaG9uZSAoeGlhb21pLWxhdXJlbCkuCj4gKwo+ICAgY29uZmlnIERSTV9QQU5FTF9TQU1T VU5HX1NPRkVGMDAKPiAgIAl0cmlzdGF0ZSAiU2Ftc3VuZyBTT0ZFRjAwIERTSSBwYW5lbCBjb250 cm9sbGVyIgo+ICAgCWRlcGVuZHMgb24gT0YKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3BhbmVsL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gaW5kZXgg Yjk1NjJhNmZkY2IzOGJmZDBkZmVlOWU4YzExZTE2MTQ5YWRhNDM4Ni4uMTllMWU4OThkZmQ0YWYy ZDM0ZWFmZTdhNmRlZDVhZDc0ZmM3ZWUwNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUKPiBA QCAtOTEsNiArOTEsNyBAQCBvYmotJChDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZFODhBMF9B TVM0MjdBUDI0KSArPSBwYW5lbC1zYW1zdW5nLXM2ZTg4YTAtYW1zNAo+ICAgb2JqLSQoQ09ORklH X0RSTV9QQU5FTF9TQU1TVU5HX1M2RTg4QTBfQU1TNDUyRUYwMSkgKz0gcGFuZWwtc2Ftc3VuZy1z NmU4OGEwLWFtczQ1MmVmMDEubwo+ICAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2 RThBQTApICs9IHBhbmVsLXNhbXN1bmctczZlOGFhMC5vCj4gICBvYmotJChDT05GSUdfRFJNX1BB TkVMX1NBTVNVTkdfUzZFOEFBNVgwMV9BTVM1NjFSQTAxKSArPSBwYW5lbC1zYW1zdW5nLXM2ZThh YTV4MDEtYW1zNTYxcmEwMS5vCj4gK29iai0kKENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4 RkNPX00xOTA2RjkpICs9IHBhbmVsLXNhbXN1bmctczZlOGZjby1tMTkwNmY5Lm8KPiAgIG9iai0k KENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TT0ZFRjAwKSArPSBwYW5lbC1zYW1zdW5nLXNvZmVm MDAubwo+ICAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TRUlLT180M1dWRjFHKSArPSBwYW5lbC1z ZWlrby00M3d2ZjFnLm8KPiAgIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFEwNzlMMVNY MDEpICs9IHBhbmVsLXNoYXJwLWxxMDc5bDFzeDAxLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlOGZjby1tMTkwNmY5LmMgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4ZmNvLW0xOTA2ZjkuYwo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uY2NmMThkYTU5MjcxZGM0OTI2YTUzNmY3OTVhMzhkOGVhZTM0OWUwMAo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4ZmNvLW0x OTA2ZjkuYwo+IEBAIC0wLDAgKzEsMzAyIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkKPiArLy8gQ29weXJpZ2h0IChjKSBLYW1pbCBHb8WCZGEgPGthbWlsLmdv bGRhQHByb3Rvbm1haWwuY29tPgo+ICsvLyBDb3B5cmlnaHQgKGMpIFllZGF5YSBLYXRzbWFuIDx5 ZWRheWEua2FAZ21haWwuY29tPgo+ICsvLyBHZW5lcmF0ZWQgd2l0aCBsaW51eC1tZHNzLWRzaS1w YW5lbC1kcml2ZXItZ2VuZXJhdG9yIGZyb20gdmVuZG9yIGRldmljZSB0cmVlOgo+ICsvLyAgIENv cHlyaWdodCAoYykgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4g Kwo+ICsjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kZWxh eS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgo+ICsjaW5jbHVkZSA8bGlu dXgvbW9kX2RldmljZXRhYmxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgo+ICsKPiArI2luY2x1ZGUgPHZpZGVv L21pcGlfZGlzcGxheS5oPgo+ICsKPiArI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KPiAr I2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4K PiArI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Cj4gKwo+ICtzdHJ1Y3QgczZlOGZj b19tMTkwNmY5X2N0eCB7Cj4gKwlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOwo+ICsJc3RydWN0IG1p cGlfZHNpX2RldmljZSAqZHNpOwo+ICsJc3RydWN0IHJlZ3VsYXRvcl9idWxrX2RhdGEgKnN1cHBs aWVzOwo+ICsJc3RydWN0IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgcmVndWxhdG9yX2J1bGtfZGF0YSBzNmU4ZmNvX20xOTA2Zjlfc3VwcGxp ZXNbXSA9IHsKPiArCXsgLnN1cHBseSA9ICJ2ZGRpIiB9LAo+ICsJeyAuc3VwcGx5ID0gInZjaSIg fSwKPiArfTsKPiArCj4gK3N0YXRpYyBpbmxpbmUKPiArc3RydWN0IHM2ZThmY29fbTE5MDZmOV9j dHggKnRvX3M2ZThmY29fbTE5MDZmOV9jdHgoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gK3sK PiArCXJldHVybiBjb250YWluZXJfb2ZfY29uc3QocGFuZWwsIHN0cnVjdCBzNmU4ZmNvX20xOTA2 ZjlfY3R4LCBwYW5lbCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHM2ZThmY29fbTE5MDZmOV9y ZXNldChzdHJ1Y3QgczZlOGZjb19tMTkwNmY5X2N0eCAqY3R4KQo+ICt7Cj4gKwlncGlvZF9zZXRf dmFsdWVfY2Fuc2xlZXAoY3R4LT5yZXNldF9ncGlvLCAwKTsKPiArCXVzbGVlcF9yYW5nZSgxMjAw MCwgMTMwMDApOwo+ICsJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGN0eC0+cmVzZXRfZ3Bpbywg MSk7Cj4gKwl1c2xlZXBfcmFuZ2UoMjAwMCwgMzAwMCk7Cj4gKwlncGlvZF9zZXRfdmFsdWVfY2Fu c2xlZXAoY3R4LT5yZXNldF9ncGlvLCAwKTsKPiArCXVzbGVlcF9yYW5nZSgxMDAwMCwgMTEwMDAp Owo+ICt9Cj4gKwo+ICsjZGVmaW5lIHM2ZThmY29fbTE5MDZmOV90ZXN0X2tleV9vbl9sdmwyKGN0 eCkgXAo+ICsJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aShjdHgsIDB4ZjAsIDB4NWEsIDB4 NWEpCj4gKyNkZWZpbmUgczZlOGZjb19tMTkwNmY5X3Rlc3Rfa2V5X29mZl9sdmwyKGN0eCkgXAo+ ICsJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aShjdHgsIDB4ZjAsIDB4YTUsIDB4YTUpCj4g KyNkZWZpbmUgczZlOGZjb19tMTkwNmY5X3Rlc3Rfa2V5X29uX2x2bDMoY3R4KSBcCj4gKwltaXBp X2RzaV9kY3Nfd3JpdGVfc2VxX211bHRpKGN0eCwgMHhmYywgMHg1YSwgMHg1YSkKPiArI2RlZmlu ZSBzNmU4ZmNvX20xOTA2ZjlfdGVzdF9rZXlfb2ZmX2x2bDMoY3R4KSBcCj4gKwltaXBpX2RzaV9k Y3Nfd3JpdGVfc2VxX211bHRpKGN0eCwgMHhmYywgMHhhNSwgMHhhNSkKPiArCj4gK3N0YXRpYyBp bnQgczZlOGZjb19tMTkwNmY5X29uKHN0cnVjdCBzNmU4ZmNvX20xOTA2ZjlfY3R4ICpjdHgpCj4g K3sKPiArCXN0cnVjdCBtaXBpX2RzaV9tdWx0aV9jb250ZXh0IGRzaV9jdHggPSB7IC5kc2kgPSBj dHgtPmRzaSB9Owo+ICsKPiArCXM2ZThmY29fbTE5MDZmOV90ZXN0X2tleV9vbl9sdmwzKCZkc2lf Y3R4KTsKPiArCj4gKwltaXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlfYnJpZ2h0bmVzc19tdWx0aSgm ZHNpX2N0eCwgMHgwMDAwKTsKPiArCW1pcGlfZHNpX2Rjc193cml0ZV9zZXFfbXVsdGkoJmRzaV9j dHgsIE1JUElfRENTX1dSSVRFX0NPTlRST0xfRElTUExBWSwKPiArCQkJCSAgICAgMHgyMCk7Cj4g KwltaXBpX2RzaV9kY3NfZXhpdF9zbGVlcF9tb2RlX211bHRpKCZkc2lfY3R4KTsKPiArCW1pcGlf ZHNpX21zbGVlcCgmZHNpX2N0eCwgNTApOwo+ICsJbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X29u X211bHRpKCZkc2lfY3R4KTsKPiArCj4gKwltaXBpX2RzaV9kY3Nfd3JpdGVfc2VxX211bHRpKCZk c2lfY3R4LCAweGIwLCAweDA0LCAweGVkKTsKPiArCW1pcGlfZHNpX2Rjc193cml0ZV9zZXFfbXVs dGkoJmRzaV9jdHgsIDB4ZWQsCj4gKwkJCQkgICAgIDB4ZTQsIDB4MDgsIDB4OTYsIDB4YTQsIDB4 MmEsIDB4NzIsIDB4ZTIsCj4gKwkJCQkgICAgIDB4Y2EsIDB4MDApOwo+ICsJczZlOGZjb19tMTkw NmY5X3Rlc3Rfa2V5X29mZl9sdmwzKCZkc2lfY3R4KTsKPiArCXM2ZThmY29fbTE5MDZmOV90ZXN0 X2tleV9vbl9sdmwyKCZkc2lfY3R4KTsKPiArCXM2ZThmY29fbTE5MDZmOV90ZXN0X2tleV9vbl9s dmwzKCZkc2lfY3R4KTsKPiArCW1pcGlfZHNpX2Rjc193cml0ZV9zZXFfbXVsdGkoJmRzaV9jdHgs IDB4ZTEsIDB4OTMpOwo+ICsJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwg MHhiMCwgMHgwNSwgMHhmNCk7Cj4gKwltaXBpX2RzaV9kY3Nfd3JpdGVfc2VxX211bHRpKCZkc2lf Y3R4LCAweGY0LCAweDAzKTsKPiArCW1pcGlfZHNpX2Rjc193cml0ZV9zZXFfbXVsdGkoJmRzaV9j dHgsIDB4ZWQsIDB4MDEsIDB4ODEsIDB4MDQpOwo+ICsJczZlOGZjb19tMTkwNmY5X3Rlc3Rfa2V5 X29mZl9sdmwyKCZkc2lfY3R4KTsKPiArCXM2ZThmY29fbTE5MDZmOV90ZXN0X2tleV9vZmZfbHZs MygmZHNpX2N0eCk7Cj4gKwo+ICsJcmV0dXJuIGRzaV9jdHguYWNjdW1fZXJyOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IHM2ZThmY29fbTE5MDZmOV9vZmYoc3RydWN0IHM2ZThmY29fbTE5MDZmOV9j dHggKmN0eCkKPiArewo+ICsJc3RydWN0IG1pcGlfZHNpX211bHRpX2NvbnRleHQgZHNpX2N0eCA9 IHsgLmRzaSA9IGN0eC0+ZHNpIH07Cj4gKwo+ICsJbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X29m Zl9tdWx0aSgmZHNpX2N0eCk7Cj4gKwltaXBpX2RzaV9tc2xlZXAoJmRzaV9jdHgsIDIwKTsKPiAr CW1pcGlfZHNpX2Rjc19lbnRlcl9zbGVlcF9tb2RlX211bHRpKCZkc2lfY3R4KTsKPiArCW1pcGlf ZHNpX21zbGVlcCgmZHNpX2N0eCwgMTIwKTsKPiArCj4gKwlyZXR1cm4gZHNpX2N0eC5hY2N1bV9l cnI7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgczZlOGZjb19tMTkwNmY5X3ByZXBhcmUoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpCj4gK3sKPiArCXN0cnVjdCBzNmU4ZmNvX20xOTA2ZjlfY3R4ICpj dHggPSB0b19zNmU4ZmNvX20xOTA2ZjlfY3R4KHBhbmVsKTsKPiArCXN0cnVjdCBkZXZpY2UgKmRl diA9ICZjdHgtPmRzaS0+ZGV2Owo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSByZWd1bGF0b3Jf YnVsa19lbmFibGUoQVJSQVlfU0laRShzNmU4ZmNvX20xOTA2Zjlfc3VwcGxpZXMpLCBjdHgtPnN1 cHBsaWVzKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8g ZW5hYmxlIHJlZ3VsYXRvcnM6ICVkXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4g Kwo+ICsJczZlOGZjb19tMTkwNmY5X3Jlc2V0KGN0eCk7Cj4gKwo+ICsJcmV0ID0gczZlOGZjb19t MTkwNmY5X29uKGN0eCk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCWRldl9lcnIoZGV2LCAiRmFp bGVkIHRvIGluaXRpYWxpemUgcGFuZWw6ICVkXG4iLCByZXQpOwo+ICsJCWdwaW9kX3NldF92YWx1 ZV9jYW5zbGVlcChjdHgtPnJlc2V0X2dwaW8sIDEpOwo+ICsJCXJlZ3VsYXRvcl9idWxrX2Rpc2Fi bGUoQVJSQVlfU0laRShzNmU4ZmNvX20xOTA2Zjlfc3VwcGxpZXMpLCBjdHgtPnN1cHBsaWVzKTsK PiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IHM2ZThmY29fbTE5MDZmOV91bnByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwp Cj4gK3sKPiArCXN0cnVjdCBzNmU4ZmNvX20xOTA2ZjlfY3R4ICpjdHggPSB0b19zNmU4ZmNvX20x OTA2ZjlfY3R4KHBhbmVsKTsKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZjdHgtPmRzaS0+ZGV2 Owo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBzNmU4ZmNvX20xOTA2Zjlfb2ZmKGN0eCk7Cj4g KwlpZiAocmV0IDwgMCkKPiArCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byB1bi1pbml0aWFsaXpl IHBhbmVsOiAlZFxuIiwgcmV0KTsKPiArCj4gKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoY3R4 LT5yZXNldF9ncGlvLCAxKTsKPiArCXJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShz NmU4ZmNvX20xOTA2Zjlfc3VwcGxpZXMpLCBjdHgtPnN1cHBsaWVzKTsKPiArCj4gKwlyZXR1cm4g MDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHM2ZThm Y29fbTE5MDZmOV9zYW1zdW5ncF9tb2RlID0gewo+ICsJLmNsb2NrID0gKDcyMCArIDM1MCArIDQw ICsgMjk0KSAqICgxNTYwICsgMTcgKyAyICsgNSkgKiA2MCAvIDEwMDAsCj4gKwkuaGRpc3BsYXkg PSA3MjAsCj4gKwkuaHN5bmNfc3RhcnQgPSA3MjAgKyAzNTAsCj4gKwkuaHN5bmNfZW5kID0gNzIw ICsgMzUwICsgNDAsCj4gKwkuaHRvdGFsID0gNzIwICsgMzUwICsgNDAgKyAyOTQsCj4gKwkudmRp c3BsYXkgPSAxNTYwLAo+ICsJLnZzeW5jX3N0YXJ0ID0gMTU2MCArIDE3LAo+ICsJLnZzeW5jX2Vu ZCA9IDE1NjAgKyAxNyArIDIsCj4gKwkudnRvdGFsID0gMTU2MCArIDE3ICsgMiArIDUsCj4gKwku d2lkdGhfbW0gPSA2NSwKPiArCS5oZWlnaHRfbW0gPSAxNDAsCj4gKwkudHlwZSA9IERSTV9NT0RF X1RZUEVfRFJJVkVSLAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBzNmU4ZmNvX20xOTA2ZjlfZ2V0 X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAo+ICsJCQkJICAgICAgc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJcmV0dXJuIGRybV9jb25uZWN0b3JfaGVscGVy X2dldF9tb2Rlc19maXhlZChjb25uZWN0b3IsICZzNmU4ZmNvX20xOTA2Zjlfc2Ftc3VuZ3BfbW9k ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIHM2ZThm Y29fbTE5MDZmOV9wYW5lbF9mdW5jcyA9IHsKPiArCS5wcmVwYXJlID0gczZlOGZjb19tMTkwNmY5 X3ByZXBhcmUsCj4gKwkudW5wcmVwYXJlID0gczZlOGZjb19tMTkwNmY5X3VucHJlcGFyZSwKPiAr CS5nZXRfbW9kZXMgPSBzNmU4ZmNvX20xOTA2ZjlfZ2V0X21vZGVzLAo+ICt9Owo+ICsKPiArc3Rh dGljIGludCBzNmU4ZmNvX20xOTA2ZjlfYmxfdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgYmFja2xpZ2h0 X2RldmljZSAqYmwpCj4gK3sKPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSA9IGJsX2dl dF9kYXRhKGJsKTsKPiArCXUxNiBicmlnaHRuZXNzID0gYmFja2xpZ2h0X2dldF9icmlnaHRuZXNz KGJsKTsKPiArCWludCByZXQ7Cj4gKwo+ICsJZHNpLT5tb2RlX2ZsYWdzICY9IH5NSVBJX0RTSV9N T0RFX0xQTTsKPiArCj4gKwlyZXQgPSBtaXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlfYnJpZ2h0bmVz c19sYXJnZShkc2ksIGJyaWdodG5lc3MpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJcmV0dXJuIHJl dDsKPiArCj4gKwlkc2ktPm1vZGVfZmxhZ3MgfD0gTUlQSV9EU0lfTU9ERV9MUE07Cj4gKwo+ICsJ cmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgczZlOGZjb19tMTkwNmY5X2JsX2dldF9i cmlnaHRuZXNzKHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpibCkKPiArewo+ICsJc3RydWN0IG1p cGlfZHNpX2RldmljZSAqZHNpID0gYmxfZ2V0X2RhdGEoYmwpOwo+ICsJdTE2IGJyaWdodG5lc3M7 Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWRzaS0+bW9kZV9mbGFncyAmPSB+TUlQSV9EU0lfTU9ERV9M UE07Cj4gKwo+ICsJcmV0ID0gbWlwaV9kc2lfZGNzX2dldF9kaXNwbGF5X2JyaWdodG5lc3NfbGFy Z2UoZHNpLCAmYnJpZ2h0bmVzcyk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ ICsKPiArCWRzaS0+bW9kZV9mbGFncyB8PSBNSVBJX0RTSV9NT0RFX0xQTTsKPiArCj4gKwlyZXR1 cm4gYnJpZ2h0bmVzczsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBiYWNrbGlnaHRf b3BzIHM2ZThmY29fbTE5MDZmOV9ibF9vcHMgPSB7Cj4gKwkudXBkYXRlX3N0YXR1cyA9IHM2ZThm Y29fbTE5MDZmOV9ibF91cGRhdGVfc3RhdHVzLAo+ICsJLmdldF9icmlnaHRuZXNzID0gczZlOGZj b19tMTkwNmY5X2JsX2dldF9icmlnaHRuZXNzLAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCBi YWNrbGlnaHRfZGV2aWNlICoKPiArczZlOGZjb19tMTkwNmY5X2NyZWF0ZV9iYWNrbGlnaHQoc3Ry dWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQo+ICt7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm ZHNpLT5kZXY7Cj4gKwljb25zdCBzdHJ1Y3QgYmFja2xpZ2h0X3Byb3BlcnRpZXMgcHJvcHMgPSB7 Cj4gKwkJLnR5cGUgPSBCQUNLTElHSFRfUkFXLAo+ICsJCS5icmlnaHRuZXNzID0gNTEyLAo+ICsJ CS8vIFRoZSBkb3duc3RyZWFtIGR0cyBjbGFpbXMgMjA0NywgYnV0IHNlZW1zIHRvIGlnbm9yZSB0 aGUgTVNCLgoKSSB0aGluayB0aGlzIHR5cGUgb2YgY29tbWVudCBpcyB1c2VmdWwgZm9yIGluaXRp YWwgcmV2aWV3ZXJzIChtYXliZSBiZWxvdyB0aGUgCi0tLSBpbiBjb21taXQgbWVzc2FnZSwgYnV0 IG5vdCBtdXN0LWhhdmUgaW4gdGhlIGNvZGUgaXRzZWxmKS4KCj4gKwkJLm1heF9icmlnaHRuZXNz ID0gMTAyMywKPiArCX07Cj4gKwo+ICsJcmV0dXJuIGRldm1fYmFja2xpZ2h0X2RldmljZV9yZWdp c3RlcihkZXYsIGRldl9uYW1lKGRldiksIGRldiwgZHNpLAo+ICsJCQkJCSAgICAgICZzNmU4ZmNv X20xOTA2ZjlfYmxfb3BzLCAmcHJvcHMpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHM2ZThmY29f bTE5MDZmOV9wcm9iZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpCj4gK3sKPiArCXN0cnVj dCBkZXZpY2UgKmRldiA9ICZkc2ktPmRldjsKPiArCXN0cnVjdCBzNmU4ZmNvX20xOTA2ZjlfY3R4 ICpjdHg7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWN0eCA9IGRldm1fZHJtX3BhbmVsX2FsbG9jKGRl diwgc3RydWN0IHM2ZThmY29fbTE5MDZmOV9jdHgsIHBhbmVsLAo+ICsJCQkJICAgJnM2ZThmY29f bTE5MDZmOV9wYW5lbF9mdW5jcywKPiArCQkJCSAgIERSTV9NT0RFX0NPTk5FQ1RPUl9EU0kpOwo+ ICsJaWYgKElTX0VSUihjdHgpKQo+ICsJCXJldHVybiBQVFJfRVJSKGN0eCk7Cj4gKwo+ICsJcmV0 ID0gZGV2bV9yZWd1bGF0b3JfYnVsa19nZXRfY29uc3QoZGV2LAo+ICsJCQkJCSAgICBBUlJBWV9T SVpFKHM2ZThmY29fbTE5MDZmOV9zdXBwbGllcyksCj4gKwkJCQkJICAgIHM2ZThmY29fbTE5MDZm OV9zdXBwbGllcywKPiArCQkJCQkgICAgJmN0eC0+c3VwcGxpZXMpOwo+ICsJaWYgKHJldCA8IDAp Cj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwljdHgtPnJlc2V0X2dwaW8gPSBkZXZtX2dwaW9kX2dl dChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKPiArCWlmIChJU19FUlIoY3R4LT5yZXNl dF9ncGlvKSkKPiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoY3R4LT5yZXNl dF9ncGlvKSwKPiArCQkJCSAgICAgIkZhaWxlZCB0byBnZXQgcmVzZXQtZ3Bpb3NcbiIpOwo+ICsK PiArCWN0eC0+ZHNpID0gZHNpOwo+ICsJbWlwaV9kc2lfc2V0X2RydmRhdGEoZHNpLCBjdHgpOwo+ ICsKPiArCWRzaS0+bGFuZXMgPSA0Owo+ICsJZHNpLT5mb3JtYXQgPSBNSVBJX0RTSV9GTVRfUkdC ODg4Owo+ICsJZHNpLT5tb2RlX2ZsYWdzID0gTUlQSV9EU0lfTU9ERV9WSURFTyB8IE1JUElfRFNJ X01PREVfVklERU9fQlVSU1QgfAo+ICsJCQkgIE1JUElfRFNJX0NMT0NLX05PTl9DT05USU5VT1VT Owo+ICsKPiArCWN0eC0+cGFuZWwucHJlcGFyZV9wcmV2X2ZpcnN0ID0gdHJ1ZTsKPiArCj4gKwlj dHgtPnBhbmVsLmJhY2tsaWdodCA9IHM2ZThmY29fbTE5MDZmOV9jcmVhdGVfYmFja2xpZ2h0KGRz aSk7Cj4gKwlpZiAoSVNfRVJSKGN0eC0+cGFuZWwuYmFja2xpZ2h0KSkKPiArCQlyZXR1cm4gZGV2 X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoY3R4LT5wYW5lbC5iYWNrbGlnaHQpLAo+ICsJCQkJICAg ICAiRmFpbGVkIHRvIGNyZWF0ZSBiYWNrbGlnaHRcbiIpOwo+ICsKPiArCWRybV9wYW5lbF9hZGQo JmN0eC0+cGFuZWwpOwo+ICsKPiArCXJldCA9IG1pcGlfZHNpX2F0dGFjaChkc2kpOwo+ICsJaWYg KHJldCA8IDApIHsKPiArCQlkcm1fcGFuZWxfcmVtb3ZlKCZjdHgtPnBhbmVsKTsKPiArCQlyZXR1 cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgIkZhaWxlZCB0byBhdHRhY2ggdG8gRFNJIGhvc3Rc biIpOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBzNmU4 ZmNvX20xOTA2ZjlfcmVtb3ZlKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKPiArewo+ICsJ c3RydWN0IHM2ZThmY29fbTE5MDZmOV9jdHggKmN0eCA9IG1pcGlfZHNpX2dldF9kcnZkYXRhKGRz aSk7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IG1pcGlfZHNpX2RldGFjaChkc2kpOwo+ICsJ aWYgKHJldCA8IDApCj4gKwkJZGV2X2VycigmZHNpLT5kZXYsICJGYWlsZWQgdG8gZGV0YWNoIGZy b20gRFNJIGhvc3Q6ICVkXG4iLCByZXQpOwo+ICsKPiArCWRybV9wYW5lbF9yZW1vdmUoJmN0eC0+ cGFuZWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzYW1z dW5nX3M2ZThmY29fbTE5MDZmOV9vZl9tYXRjaFtdID0gewo+ICsJeyAuY29tcGF0aWJsZSA9ICJz YW1zdW5nLHM2ZThmY28tbTE5MDZmOSIgfSwKPiArCXsgLyogc2VudGluZWwgKi8gfQo+ICt9Owo+ ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzYW1zdW5nX3M2ZThmY29fbTE5MDZmOV9vZl9tYXRj aCk7Cj4gKwo+ICtzdGF0aWMgc3RydWN0IG1pcGlfZHNpX2RyaXZlciBzNmU4ZmNvX20xOTA2Zjlf ZHJpdmVyID0gewo+ICsJLnByb2JlID0gczZlOGZjb19tMTkwNmY5X3Byb2JlLAo+ICsJLnJlbW92 ZSA9IHM2ZThmY29fbTE5MDZmOV9yZW1vdmUsCj4gKwkuZHJpdmVyID0gewo+ICsJCS5uYW1lID0g InBhbmVsLXNhbXN1bmctczZlOGZjby1tMTkwNmY5IiwKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBz YW1zdW5nX3M2ZThmY29fbTE5MDZmOV9vZl9tYXRjaCwKPiArCX0sCj4gK307Cj4gK21vZHVsZV9t aXBpX2RzaV9kcml2ZXIoczZlOGZjb19tMTkwNmY5X2RyaXZlcik7Cj4gKwo+ICtNT0RVTEVfQVVU SE9SKCJLYW1pbCBHb8WCZGEgPGthbWlsLmdvbGRhQHByb3Rvbm1haWwuY29tPiIpOwo+ICtNT0RV TEVfREVTQ1JJUFRJT04oIkRSTSBkcml2ZXIgZm9yIFNhbXN1Ym5nIHM2ZThmY28gRFNJIGNvbnRy b2xsZXIgZm9yIG0xOTA2ZjkgYW1vbGVkIHZpZGVvIG1vZGUgcGFuZWwiKTsKCnR5cG8gaW4gU2Ft c3VuZywgYWxzbyBoZXJlIGZlZWwgZnJlZSB0byBkcm9wICJmb3IgbTE5MC4uLiIgcGFydAoKRXhj ZXB0IHRoZSBuaXRwaWNrcywgbG9va3MgcmVhbGx5IGdvb2QuCgpEYXZpZAoKPiArTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOwo+IAoKLS0gCkRhdmlkIEhlaWRlbGJlcmcKCg==