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 A902F109878D for ; Fri, 20 Mar 2026 14:41:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 16A9E10EADC; Fri, 20 Mar 2026 14:41:57 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="VKEZ1TEn"; dkim-atps=neutral Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3B5F810EAD9 for ; Fri, 20 Mar 2026 14:41:53 +0000 (UTC) Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-486fc4725f0so14951575e9.1 for ; Fri, 20 Mar 2026 07:41:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774017712; x=1774622512; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+5xcFtTNrk4QtZoMt8edG461cos6zx14+RTgaJwHE4g=; b=VKEZ1TEnKGaTSulSeXL0Pb2UpXlSZpYkDmzaTrjQY/Y8dgHcDIXCLqSNvTCNiKSq/q 1SbKkrbIHzWzYRRFd9+++kFE5P83xmnZXFMrAUUsoTXPq/snEbPUSP7oC+MRvRlp5tcw GW3vh/oMrC4Si2B9uqA0e/MQmwBy4GQv9lfRU2KpLB+BgmAcunjk8pt+ymOKkhMb5GzN kRUeo44R/CjVeND05aBKrTPT4u+FpSDI/SWEa3JnPwVJDspeUbJnjy03SkuvO+aNuVFa IhUNL9xFxPdm303Z5r8iQxZbNJ5I5TwyaaKrtQHhTPXTmAJcU6ct2+jNKqRsab3hx4k6 LbNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774017712; x=1774622512; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+5xcFtTNrk4QtZoMt8edG461cos6zx14+RTgaJwHE4g=; b=XjpYJE0hZZoi+wsV6VKemYEDANNnGVvfjNNCFxIunVpeb/UiZipcUYemSpBhhw1eGX 5Glx5WclP44QMsXD/XGMtRx6gQsgzaTg2P0WmSiNyaXqMQguFiSmcwKpEkKDvxXStrlV y4c9M+i5rIwR8ptRoydIOvsuUTbM0AByVZxHIbivp537qka8QVvgk9DAAtF2JXxFuBFC +QhjzelSh7abZT7i5kjL4ho3/Uyjrd52ctccCyneg+SBI2KV9m2geYPqv+FpzIa1S/lC nP3JbbPRxCWgKD8pRrotbEgZxScrQ2uRRkjDyhq16ukDSaP9ipvjX6qLi4x8ihREoFgF ZCJQ== X-Forwarded-Encrypted: i=1; AJvYcCV3pN7CsaocbRlLAL+7ei+8sg9IizuWacS9KKhZXUSeibWXa7FmvRnTxfKSiSFMV2N9d+abxfCqNvo=@lists.freedesktop.org X-Gm-Message-State: AOJu0YzR1OnFaCMr2RrJPLKOfkqzrA/uXDf/rwtfFlnzCT7+MATKYwkc WtrODGLUcENEm+KyCABX58+Nx9fbwgV6t3Y75585Cwp/nl1NgmsQjjQX X-Gm-Gg: ATEYQzwq5+nVKWvNT/l6rdg9tLpEO/g9dV3H9mKlAP45u/6MDqsNh5XoeWdpZifU4wR 8hFDndXcbAnsNMhyW6docnMV9hfLKf7pGUMs1pgpLJLrO6vEKCLQ/uWD72PimLWS87La2YIKow1 S4EHgLLeUiSC3E4p9SfiZwcZtR32musfaAotWx/NV5xCYicwK6j0GUXUc5U7WTOYwthBgS33dJR 4zhGnsJ2b5Uwqy3HC6wMS+3VHptXe0N3poybEZQ8bnGR+wl/KkLkiGTN5bCOR/XRtQYxEwCB6uA ZW3re7ZlsAooY+5TE/TWOuLkAj/Hi7NCufMVdLhPQeirJuHqX2jyF0YOX5hxOxxPfAAt0EUIyrN O4ZdwgZlQnrVS37p7PKsDM4bP2kKejjNHxkU1TiQ4T5HoUZg6k2ZMsMA2UWiv+3B+gIZ/qc4vLI KFl2TPohas78kwhtvo6k5t3G6y7x73cFjKyhSS3LVrfP6LTPgSiGOTT0careZ2COc= X-Received: by 2002:a05:600c:3105:b0:485:3c11:de84 with SMTP id 5b1f17b1804b1-486fe8f08cbmr54454135e9.14.1774017711338; Fri, 20 Mar 2026 07:41:51 -0700 (PDT) Received: from [10.100.102.17] (89-139-129-65.bb.netvision.net.il. [89.139.129.65]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f8b1fe65sm130648835e9.5.2026.03.20.07.41.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 07:41:50 -0700 (PDT) From: Yedaya Katsman Date: Fri, 20 Mar 2026 16:41:39 +0200 Subject: [PATCH v7 2/3] drm: panel: Add Samsung S6E8FC0 DSI controller for M1906F9 panel MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260320-panel-patches-v7-2-3eaefc4b3878@gmail.com> References: <20260320-panel-patches-v7-0-3eaefc4b3878@gmail.com> In-Reply-To: <20260320-panel-patches-v7-0-3eaefc4b3878@gmail.com> To: 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 , Kaustabh Chakraborty 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, Yedaya Katsman , David Heidelberg , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774017703; l=12551; i=yedaya.ka@gmail.com; s=20260113; h=from:subject:message-id; bh=i/Q8sdbsLHcpGQ/lpjPZPlniCxLtmmiIoObotBave+E=; b=pj1UNK1kajivYKgXJMi2KW9mYHWrw2Wuotser/6jo+0pcTrzOjzgQke9qVfpo9T2PYrFsuwoN EIPqV7RmAULBvH1lT+wLpo+f/aiDe2WvRntfZRPdaUnr0NJes6pLFf6 X-Developer-Key: i=yedaya.ka@gmail.com; a=ed25519; pk=CgNmxD3tYSws5dZfpmJfc6re/bV/f47veVijddHLytk= 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" QWRkIGRyaXZlciBmb3IgU2Ftc3VuZyBTNkU4RkMwIERTSSBjb250cm9sbGVyIGZvciBNMTkwNkY5 IHZpZGVvIG1vZGUgcGFuZWwsCmZvdW5kIGluIFhpYW9taSBNaSBBMyBtb2JpbGUgcGhvbmUuCgpD by1kZXZlbG9wZWQtYnk6IEthbWlsIEdvxYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IEthbWlsIEdvxYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+ ClJldmlld2VkLWJ5OiBEYXZpZCBIZWlkZWxiZXJnIDxkYXZpZEBpeGl0LmN6PgpSZXZpZXdlZC1i eTogRG1pdHJ5IEJhcnlzaGtvdiA8ZG1pdHJ5LmJhcnlzaGtvdkBvc3MucXVhbGNvbW0uY29tPgpT aWduZWQtb2ZmLWJ5OiBZZWRheWEgS2F0c21hbiA8eWVkYXlhLmthQGdtYWlsLmNvbT4KLS0tCgpU aGUgZG93bnN0cmVhbSBkdHMgY2xhaW1zIGEgbWF4IGJyaWdodG5lc3Mgb2YgMjA0NywgYnV0IHNl ZW1zIHRvIGlnbm9yZSB0aGUKTVNCLgotLS0KIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29u ZmlnICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsKIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNhbXN1bmctczZlOGZjMC1tMTkwNmY5LmMgIHwgMzAxICsrKysrKysrKysrKysrKysrKysr KwogNCBmaWxlcyBjaGFuZ2VkLCAzMjAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL01BSU5U QUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggZTA4NzY3MzIzNzYzNjI2ODM0Njk3OWRkYzI3MGY4 Y2YwOTA1YzcyMi4uZDU3ZDRjMTI4Y2RkN2ZkZTgyYmE5YzY4YjVmMWI2ZDg4M2EzNjg2MCAxMDA2 NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTgxODMsNiArODE4Mywx MSBAQCBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv ZGlzcGxheS9wYW5lbC9zYW1zdW5nLHM2ZTNoYTgueWFtbAogRjoJZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNhbXN1bmctczZlM2hhOC5jCiAKK0RSTSBEUklWRVIgRk9SIFNBTVNVTkcgUzZF OEZDMCBQQU5FTFMKK006CVllZGF5YSBLYXRzbWFuIDx5ZWRheWEua2FAZ21haWwuY29tPgorUzoJ TWFpbnRhaW5lZAorRjoJZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlOGZj MC1tMTkwNmY5LmMKKwogRFJNIERSSVZFUiBGT1IgU0FNU1VORyBTT0ZFRjAwIERESUMKIE06CURh dmlkIEhlaWRlbGJlcmcgPGRhdmlkQGl4aXQuY3o+CiBNOglDYXNleSBDb25ub2xseSA8Y2FzZXku Y29ubm9sbHlAbGluYXJvLm9yZz4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9L Y29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKaW5kZXggN2E4MzgwNGZlZGNh MWI2ODhjZTZmYmU0Mjk1ZWM5MDA5MDA3ZTY5My4uZmVkMTViN2MwOGJhNTc5YTBhMDkxMDhiY2Ex NjQ2YjQ4MjFmOTRjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKQEAgLTg5Myw2ICs4OTMsMTkgQEAg Y29uZmlnIERSTV9QQU5FTF9TQU1TVU5HX1M2RThBQTVYMDFfQU1TNTYxUkEwMQogCSAgfjUuNiBp bmNoIEFNT0xFRCBkaXNwbGF5LCBhbmQgdGhlIGNvbnRyb2xsZXIgaXMgZHJpdmVuIGJ5IHRoZSBN SVBJCiAJICBEU0kgcHJvdG9jb2wgd2l0aCA0IGxhbmVzLgogCitjb25maWcgRFJNX1BBTkVMX1NB TVNVTkdfUzZFOEZDMAorCXRyaXN0YXRlICJTYW1zdW5nIFM2RThGQzAgRFNJIGNvbnRyb2xsZXIi CisJZGVwZW5kcyBvbiBPRgorCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQorCXNl bGVjdCBEUk1fTUlQSV9EU0kKKwloZWxwCisJICBTYXkgWSBvciBNIGhlcmUgaWYgeW91IHdhbnQg dG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBTYW1zdW5nCisJICBTNkU4RkMwIERTSSBjb250cm9s bGVyIGFuZCBjb25uZWN0ZWQgcGFuZWwuCisJICBDdXJyZW50bHkgc3VwcG9ydGVkIHBhbmVsczoK KworCSAgICBNMTkwNkY5IChNMTkwNkY5U0ggb3IgTTE5MDZGOVNJKSwgNi4wOSBpbmNoIDcyMHgx NTYwLCBmb3VuZAorCSAgICBpbiB0aGUgWGlhb21pIE1pIEEzIHNtYXJ0cGhvbmUgKHhpYW9taS1s YXVyZWwpLgorCiBjb25maWcgRFJNX1BBTkVMX1NBTVNVTkdfU09GRUYwMAogCXRyaXN0YXRlICJT YW1zdW5nIFNPRkVGMDAgRFNJIHBhbmVsIGNvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBPRgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL01ha2VmaWxlCmluZGV4IGI5NTYyYTZmZGNiMzhiZmQwZGZlZTllOGMxMWUxNjE0OWFk YTQzODYuLmJmMmIxNzhmNTA3YmExYzExNzNkMmI2YTQ2OGM1ZmU1ZDIzOTc3YjYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvTWFrZWZpbGUKQEAgLTkxLDYgKzkxLDcgQEAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9T QU1TVU5HX1M2RTg4QTBfQU1TNDI3QVAyNCkgKz0gcGFuZWwtc2Ftc3VuZy1zNmU4OGEwLWFtczQK IG9iai0kKENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4OEEwX0FNUzQ1MkVGMDEpICs9IHBh bmVsLXNhbXN1bmctczZlODhhMC1hbXM0NTJlZjAxLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxf U0FNU1VOR19TNkU4QUEwKSArPSBwYW5lbC1zYW1zdW5nLXM2ZThhYTAubwogb2JqLSQoQ09ORklH X0RSTV9QQU5FTF9TQU1TVU5HX1M2RThBQTVYMDFfQU1TNTYxUkEwMSkgKz0gcGFuZWwtc2Ftc3Vu Zy1zNmU4YWE1eDAxLWFtczU2MXJhMDEubworb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5H X1M2RThGQzApICs9IHBhbmVsLXNhbXN1bmctczZlOGZjMC1tMTkwNmY5Lm8KIG9iai0kKENPTkZJ R19EUk1fUEFORUxfU0FNU1VOR19TT0ZFRjAwKSArPSBwYW5lbC1zYW1zdW5nLXNvZmVmMDAubwog b2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TRUlLT180M1dWRjFHKSArPSBwYW5lbC1zZWlrby00M3d2 ZjFnLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFEwNzlMMVNYMDEpICs9IHBhbmVs LXNoYXJwLWxxMDc5bDFzeDAxLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zYW1zdW5nLXM2ZThmYzAtbTE5MDZmOS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNhbXN1bmctczZlOGZjMC1tMTkwNmY5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk5ZmY5OWVmZDc4OTVm NWYyNmJmOGY3NzdlYmQ3OWRiMDFiYWZmZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZThmYzAtbTE5MDZmOS5jCkBAIC0wLDAgKzEsMzAx IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvLyBDb3B5cmln aHQgKGMpIEthbWlsIEdvxYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+CisvLyBDb3B5 cmlnaHQgKGMpIFllZGF5YSBLYXRzbWFuIDx5ZWRheWEua2FAZ21haWwuY29tPgorLy8gR2VuZXJh dGVkIHdpdGggbGludXgtbWRzcy1kc2ktcGFuZWwtZHJpdmVyLWdlbmVyYXRvciBmcm9tIHZlbmRv ciBkZXZpY2UgdHJlZToKKy8vICAgQ29weXJpZ2h0IChjKSBUaGUgTGludXggRm91bmRhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC4KKworI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgorI2lu Y2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgor I2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorCisjaW5jbHVkZSA8 dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+Cisj aW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KKyNp bmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorCitzdHJ1Y3QgczZlOGZjMF9jdHggewor CXN0cnVjdCBkcm1fcGFuZWwgcGFuZWw7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpOwor CXN0cnVjdCByZWd1bGF0b3JfYnVsa19kYXRhICpzdXBwbGllczsKKwlzdHJ1Y3QgZ3Bpb19kZXNj ICpyZXNldF9ncGlvOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCByZWd1bGF0b3JfYnVsa19k YXRhIHM2ZThmYzBfc3VwcGxpZXNbXSA9IHsKKwl7IC5zdXBwbHkgPSAidmRkIiB9LAorCXsgLnN1 cHBseSA9ICJ2Y2kiIH0sCit9OworCitzdGF0aWMgaW5saW5lCitzdHJ1Y3QgczZlOGZjMF9jdHgg KnRvX3M2ZThmYzBfY3R4KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXJldHVybiBjb250 YWluZXJfb2ZfY29uc3QocGFuZWwsIHN0cnVjdCBzNmU4ZmMwX2N0eCwgcGFuZWwpOworfQorCitz dGF0aWMgdm9pZCBzNmU4ZmMwX20xOTA2ZjlfcmVzZXQoc3RydWN0IHM2ZThmYzBfY3R4ICpjdHgp Cit7CisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGN0eC0+cmVzZXRfZ3BpbywgMCk7CisJdXNs ZWVwX3JhbmdlKDEyMDAwLCAxMzAwMCk7CisJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGN0eC0+ cmVzZXRfZ3BpbywgMSk7CisJdXNsZWVwX3JhbmdlKDIwMDAsIDMwMDApOworCWdwaW9kX3NldF92 YWx1ZV9jYW5zbGVlcChjdHgtPnJlc2V0X2dwaW8sIDApOworCXVzbGVlcF9yYW5nZSgxMDAwMCwg MTEwMDApOworfQorCisjZGVmaW5lIHM2ZThmYzBfdGVzdF9rZXlfb25fbHZsMihjdHgpIFwKKwlt aXBpX2RzaV9kY3Nfd3JpdGVfc2VxX211bHRpKGN0eCwgMHhmMCwgMHg1YSwgMHg1YSkKKyNkZWZp bmUgczZlOGZjMF90ZXN0X2tleV9vZmZfbHZsMihjdHgpIFwKKwltaXBpX2RzaV9kY3Nfd3JpdGVf c2VxX211bHRpKGN0eCwgMHhmMCwgMHhhNSwgMHhhNSkKKyNkZWZpbmUgczZlOGZjMF90ZXN0X2tl eV9vbl9sdmwzKGN0eCkgXAorCW1pcGlfZHNpX2Rjc193cml0ZV9zZXFfbXVsdGkoY3R4LCAweGZj LCAweDVhLCAweDVhKQorI2RlZmluZSBzNmU4ZmMwX3Rlc3Rfa2V5X29mZl9sdmwzKGN0eCkgXAor CW1pcGlfZHNpX2Rjc193cml0ZV9zZXFfbXVsdGkoY3R4LCAweGZjLCAweGE1LCAweGE1KQorCitz dGF0aWMgaW50IHM2ZThmYzBfbTE5MDZmOV9vbihzdHJ1Y3QgczZlOGZjMF9jdHggKmN0eCkKK3sK KwlzdHJ1Y3QgbWlwaV9kc2lfbXVsdGlfY29udGV4dCBkc2lfY3R4ID0geyAuZHNpID0gY3R4LT5k c2kgfTsKKworCXM2ZThmYzBfdGVzdF9rZXlfb25fbHZsMygmZHNpX2N0eCk7CisKKwltaXBpX2Rz aV9kY3Nfc2V0X2Rpc3BsYXlfYnJpZ2h0bmVzc19tdWx0aSgmZHNpX2N0eCwgMHgwMDAwKTsKKwlt aXBpX2RzaV9kY3Nfd3JpdGVfc2VxX211bHRpKCZkc2lfY3R4LCBNSVBJX0RDU19XUklURV9DT05U Uk9MX0RJU1BMQVksCisJCQkJICAgICAweDIwKTsKKwltaXBpX2RzaV9kY3NfZXhpdF9zbGVlcF9t b2RlX211bHRpKCZkc2lfY3R4KTsKKwltaXBpX2RzaV9tc2xlZXAoJmRzaV9jdHgsIDUwKTsKKwlt aXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlfb25fbXVsdGkoJmRzaV9jdHgpOworCisJbWlwaV9kc2lf ZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhiMCwgMHgwNCwgMHhlZCk7CisJbWlwaV9k c2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhlZCwKKwkJCQkgICAgIDB4ZTQsIDB4 MDgsIDB4OTYsIDB4YTQsIDB4MmEsIDB4NzIsIDB4ZTIsCisJCQkJICAgICAweGNhLCAweDAwKTsK KwlzNmU4ZmMwX3Rlc3Rfa2V5X29mZl9sdmwzKCZkc2lfY3R4KTsKKwlzNmU4ZmMwX3Rlc3Rfa2V5 X29uX2x2bDIoJmRzaV9jdHgpOworCXM2ZThmYzBfdGVzdF9rZXlfb25fbHZsMygmZHNpX2N0eCk7 CisJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhlMSwgMHg5Myk7CisJ bWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhiMCwgMHgwNSwgMHhmNCk7 CisJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhmNCwgMHgwMyk7CisJ bWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhlZCwgMHgwMSwgMHg4MSwg MHgwNCk7CisJczZlOGZjMF90ZXN0X2tleV9vZmZfbHZsMigmZHNpX2N0eCk7CisJczZlOGZjMF90 ZXN0X2tleV9vZmZfbHZsMygmZHNpX2N0eCk7CisKKwlyZXR1cm4gZHNpX2N0eC5hY2N1bV9lcnI7 Cit9CisKK3N0YXRpYyBpbnQgczZlOGZjMF9tMTkwNmY5X29mZihzdHJ1Y3QgczZlOGZjMF9jdHgg KmN0eCkKK3sKKwlzdHJ1Y3QgbWlwaV9kc2lfbXVsdGlfY29udGV4dCBkc2lfY3R4ID0geyAuZHNp ID0gY3R4LT5kc2kgfTsKKworCW1pcGlfZHNpX2Rjc19zZXRfZGlzcGxheV9vZmZfbXVsdGkoJmRz aV9jdHgpOworCW1pcGlfZHNpX21zbGVlcCgmZHNpX2N0eCwgMjApOworCW1pcGlfZHNpX2Rjc19l bnRlcl9zbGVlcF9tb2RlX211bHRpKCZkc2lfY3R4KTsKKwltaXBpX2RzaV9tc2xlZXAoJmRzaV9j dHgsIDEyMCk7CisKKwlyZXR1cm4gZHNpX2N0eC5hY2N1bV9lcnI7Cit9CisKK3N0YXRpYyBpbnQg czZlOGZjMF9tMTkwNmY5X3ByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3Ry dWN0IHM2ZThmYzBfY3R4ICpjdHggPSB0b19zNmU4ZmMwX2N0eChwYW5lbCk7CisJc3RydWN0IGRl dmljZSAqZGV2ID0gJmN0eC0+ZHNpLT5kZXY7CisJaW50IHJldDsKKworCXJldCA9IHJlZ3VsYXRv cl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKHM2ZThmYzBfc3VwcGxpZXMpLCBjdHgtPnN1cHBsaWVz KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBlbmFibGUgcmVn dWxhdG9yczogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJczZlOGZjMF9tMTkw NmY5X3Jlc2V0KGN0eCk7CisKKwlyZXQgPSBzNmU4ZmMwX20xOTA2Zjlfb24oY3R4KTsKKwlpZiAo cmV0IDwgMCkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBpbml0aWFsaXplIHBhbmVsOiAl ZFxuIiwgcmV0KTsKKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGN0eC0+cmVzZXRfZ3Bpbywg MSk7CisJCXJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShzNmU4ZmMwX3N1cHBsaWVz KSwgY3R4LT5zdXBwbGllcyk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBpbnQgczZlOGZjMF9tMTkwNmY5X3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3sKKwlzdHJ1Y3QgczZlOGZjMF9jdHggKmN0eCA9IHRvX3M2ZThmYzBfY3R4KHBhbmVs KTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmY3R4LT5kc2ktPmRldjsKKwlpbnQgcmV0OworCisJ cmV0ID0gczZlOGZjMF9tMTkwNmY5X29mZihjdHgpOworCWlmIChyZXQgPCAwKQorCQlkZXZfZXJy KGRldiwgIkZhaWxlZCB0byB1bi1pbml0aWFsaXplIHBhbmVsOiAlZFxuIiwgcmV0KTsKKworCWdw aW9kX3NldF92YWx1ZV9jYW5zbGVlcChjdHgtPnJlc2V0X2dwaW8sIDEpOworCXJlZ3VsYXRvcl9i dWxrX2Rpc2FibGUoQVJSQVlfU0laRShzNmU4ZmMwX3N1cHBsaWVzKSwgY3R4LT5zdXBwbGllcyk7 CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl IHM2ZThmYzBfbTE5MDZmOV9zYW1zdW5ncF9tb2RlID0geworCS5jbG9jayA9ICg3MjAgKyAzNTAg KyA0MCArIDI5NCkgKiAoMTU2MCArIDE3ICsgMiArIDUpICogNjAgLyAxMDAwLAorCS5oZGlzcGxh eSA9IDcyMCwKKwkuaHN5bmNfc3RhcnQgPSA3MjAgKyAzNTAsCisJLmhzeW5jX2VuZCA9IDcyMCAr IDM1MCArIDQwLAorCS5odG90YWwgPSA3MjAgKyAzNTAgKyA0MCArIDI5NCwKKwkudmRpc3BsYXkg PSAxNTYwLAorCS52c3luY19zdGFydCA9IDE1NjAgKyAxNywKKwkudnN5bmNfZW5kID0gMTU2MCAr IDE3ICsgMiwKKwkudnRvdGFsID0gMTU2MCArIDE3ICsgMiArIDUsCisJLndpZHRoX21tID0gNjUs CisJLmhlaWdodF9tbSA9IDE0MCwKKwkudHlwZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJN X01PREVfVFlQRV9QUkVGRVJSRUQsCit9OworCitzdGF0aWMgaW50IHM2ZThmYzBfbTE5MDZmOV9n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAgICAgc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlyZXR1cm4gZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZ2V0 X21vZGVzX2ZpeGVkKGNvbm5lY3RvciwgJnM2ZThmYzBfbTE5MDZmOV9zYW1zdW5ncF9tb2RlKTsK K30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxfZnVuY3MgczZlOGZjMF9tMTkwNmY5 X3BhbmVsX2Z1bmNzID0geworCS5wcmVwYXJlID0gczZlOGZjMF9tMTkwNmY5X3ByZXBhcmUsCisJ LnVucHJlcGFyZSA9IHM2ZThmYzBfbTE5MDZmOV91bnByZXBhcmUsCisJLmdldF9tb2RlcyA9IHM2 ZThmYzBfbTE5MDZmOV9nZXRfbW9kZXMsCit9OworCitzdGF0aWMgaW50IHM2ZThmYzBfYmxfdXBk YXRlX3N0YXR1cyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmwpCit7CisJc3RydWN0IG1pcGlf ZHNpX2RldmljZSAqZHNpID0gYmxfZ2V0X2RhdGEoYmwpOworCXUxNiBicmlnaHRuZXNzID0gYmFj a2xpZ2h0X2dldF9icmlnaHRuZXNzKGJsKTsKKwlpbnQgcmV0OworCisJZHNpLT5tb2RlX2ZsYWdz ICY9IH5NSVBJX0RTSV9NT0RFX0xQTTsKKworCXJldCA9IG1pcGlfZHNpX2Rjc19zZXRfZGlzcGxh eV9icmlnaHRuZXNzX2xhcmdlKGRzaSwgYnJpZ2h0bmVzcyk7CisJaWYgKHJldCA8IDApCisJCXJl dHVybiByZXQ7CisKKwlkc2ktPm1vZGVfZmxhZ3MgfD0gTUlQSV9EU0lfTU9ERV9MUE07CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzNmU4ZmMwX2JsX2dldF9icmlnaHRuZXNzKHN0cnVj dCBiYWNrbGlnaHRfZGV2aWNlICpibCkKK3sKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kg PSBibF9nZXRfZGF0YShibCk7CisJdTE2IGJyaWdodG5lc3M7CisJaW50IHJldDsKKworCWRzaS0+ bW9kZV9mbGFncyAmPSB+TUlQSV9EU0lfTU9ERV9MUE07CisKKwlyZXQgPSBtaXBpX2RzaV9kY3Nf Z2V0X2Rpc3BsYXlfYnJpZ2h0bmVzc19sYXJnZShkc2ksICZicmlnaHRuZXNzKTsKKwlpZiAocmV0 IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWRzaS0+bW9kZV9mbGFncyB8PSBNSVBJX0RTSV9NT0RF X0xQTTsKKworCXJldHVybiBicmlnaHRuZXNzOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGJh Y2tsaWdodF9vcHMgczZlOGZjMF9ibF9vcHMgPSB7CisJLnVwZGF0ZV9zdGF0dXMgPSBzNmU4ZmMw X2JsX3VwZGF0ZV9zdGF0dXMsCisJLmdldF9icmlnaHRuZXNzID0gczZlOGZjMF9ibF9nZXRfYnJp Z2h0bmVzcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqCitzNmU4ZmMw X20xOTA2ZjlfY3JlYXRlX2JhY2tsaWdodChzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpCit7 CisJc3RydWN0IGRldmljZSAqZGV2ID0gJmRzaS0+ZGV2OworCWNvbnN0IHN0cnVjdCBiYWNrbGln aHRfcHJvcGVydGllcyBwcm9wcyA9IHsKKwkJLnR5cGUgPSBCQUNLTElHSFRfUkFXLAorCQkuYnJp Z2h0bmVzcyA9IDUxMiwKKwkJLm1heF9icmlnaHRuZXNzID0gMTAyMywKKwl9OworCisJcmV0dXJu IGRldm1fYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcihkZXYsIGRldl9uYW1lKGRldiksIGRldiwg ZHNpLAorCQkJCQkgICAgICAmczZlOGZjMF9ibF9vcHMsICZwcm9wcyk7Cit9CisKK3N0YXRpYyBp bnQgczZlOGZjMF9tMTkwNmY5X3Byb2JlKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKK3sK KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmZHNpLT5kZXY7CisJc3RydWN0IHM2ZThmYzBfY3R4ICpj dHg7CisJaW50IHJldDsKKworCWN0eCA9IGRldm1fZHJtX3BhbmVsX2FsbG9jKGRldiwgc3RydWN0 IHM2ZThmYzBfY3R4LCBwYW5lbCwKKwkJCQkgICAmczZlOGZjMF9tMTkwNmY5X3BhbmVsX2Z1bmNz LAorCQkJCSAgIERSTV9NT0RFX0NPTk5FQ1RPUl9EU0kpOworCWlmIChJU19FUlIoY3R4KSkKKwkJ cmV0dXJuIFBUUl9FUlIoY3R4KTsKKworCXJldCA9IGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2Nv bnN0KGRldiwKKwkJCQkJICAgIEFSUkFZX1NJWkUoczZlOGZjMF9zdXBwbGllcyksCisJCQkJCSAg ICBzNmU4ZmMwX3N1cHBsaWVzLAorCQkJCQkgICAgJmN0eC0+c3VwcGxpZXMpOworCWlmIChyZXQg PCAwKQorCQlyZXR1cm4gcmV0OworCisJY3R4LT5yZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXQo ZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUihjdHgtPnJlc2V0X2dw aW8pKQorCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoY3R4LT5yZXNldF9ncGlv KSwKKwkJCQkgICAgICJGYWlsZWQgdG8gZ2V0IHJlc2V0LWdwaW9zXG4iKTsKKworCWN0eC0+ZHNp ID0gZHNpOworCW1pcGlfZHNpX3NldF9kcnZkYXRhKGRzaSwgY3R4KTsKKworCWRzaS0+bGFuZXMg PSA0OworCWRzaS0+Zm9ybWF0ID0gTUlQSV9EU0lfRk1UX1JHQjg4ODsKKwlkc2ktPm1vZGVfZmxh Z3MgPSBNSVBJX0RTSV9NT0RFX1ZJREVPIHwgTUlQSV9EU0lfTU9ERV9WSURFT19CVVJTVCB8CisJ CQkgIE1JUElfRFNJX0NMT0NLX05PTl9DT05USU5VT1VTOworCisJY3R4LT5wYW5lbC5wcmVwYXJl X3ByZXZfZmlyc3QgPSB0cnVlOworCisJY3R4LT5wYW5lbC5iYWNrbGlnaHQgPSBzNmU4ZmMwX20x OTA2ZjlfY3JlYXRlX2JhY2tsaWdodChkc2kpOworCWlmIChJU19FUlIoY3R4LT5wYW5lbC5iYWNr bGlnaHQpKQorCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoY3R4LT5wYW5lbC5i YWNrbGlnaHQpLAorCQkJCSAgICAgIkZhaWxlZCB0byBjcmVhdGUgYmFja2xpZ2h0XG4iKTsKKwor CWRybV9wYW5lbF9hZGQoJmN0eC0+cGFuZWwpOworCisJcmV0ID0gbWlwaV9kc2lfYXR0YWNoKGRz aSk7CisJaWYgKHJldCA8IDApIHsKKwkJZHJtX3BhbmVsX3JlbW92ZSgmY3R4LT5wYW5lbCk7CisJ CXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiRmFpbGVkIHRvIGF0dGFjaCB0byBEU0kg aG9zdFxuIik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHM2ZThmYzBfcmVt b3ZlKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKK3sKKwlzdHJ1Y3QgczZlOGZjMF9jdHgg KmN0eCA9IG1pcGlfZHNpX2dldF9kcnZkYXRhKGRzaSk7CisJaW50IHJldDsKKworCXJldCA9IG1p cGlfZHNpX2RldGFjaChkc2kpOworCWlmIChyZXQgPCAwKQorCQlkZXZfZXJyKCZkc2ktPmRldiwg IkZhaWxlZCB0byBkZXRhY2ggZnJvbSBEU0kgaG9zdDogJWRcbiIsIHJldCk7CisKKwlkcm1fcGFu ZWxfcmVtb3ZlKCZjdHgtPnBhbmVsKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZp Y2VfaWQgc2Ftc3VuZ19zNmU4ZmMwX29mX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJz YW1zdW5nLHM2ZThmYzAtbTE5MDZmOSIgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CitNT0RV TEVfREVWSUNFX1RBQkxFKG9mLCBzYW1zdW5nX3M2ZThmYzBfb2ZfbWF0Y2gpOworCitzdGF0aWMg c3RydWN0IG1pcGlfZHNpX2RyaXZlciBzNmU4ZmMwX2RyaXZlciA9IHsKKwkucHJvYmUgPSBzNmU4 ZmMwX20xOTA2ZjlfcHJvYmUsCisJLnJlbW92ZSA9IHM2ZThmYzBfcmVtb3ZlLAorCS5kcml2ZXIg PSB7CisJCS5uYW1lID0gInBhbmVsLXNhbXN1bmctczZlOGZjMC1tMTkwNmY5IiwKKwkJLm9mX21h dGNoX3RhYmxlID0gc2Ftc3VuZ19zNmU4ZmMwX29mX21hdGNoLAorCX0sCit9OworbW9kdWxlX21p cGlfZHNpX2RyaXZlcihzNmU4ZmMwX2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1IoIkthbWlsIEdv xYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04o IkRSTSBkcml2ZXIgZm9yIFNhbXN1bmcgczZlOGZjMCBEU0kgY29udHJvbGxlciIpOworTU9EVUxF X0xJQ0VOU0UoIkdQTCIpOwoKLS0gCjIuNTMuMAoK