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 ABBC1D58B1B for ; Sun, 15 Mar 2026 11:21:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id ED11810E570; Sun, 15 Mar 2026 11:21:32 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="i2FKZoAU"; dkim-atps=neutral Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 44B0D10E18E for ; Sat, 14 Mar 2026 21:46:33 +0000 (UTC) Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-48534b59cf3so29557495e9.2 for ; Sat, 14 Mar 2026 14:46:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773524792; x=1774129592; 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=t4dcDIIqWjuCuDIw/EKfyfSSct6pSLR9IhCmDMZcgFo=; b=i2FKZoAUVhEETPj2+dnJrOWUE1XKBWKc1VKduWKgrmvCfwWHuLQyNMnVF8HGPMKZW1 4DHiKxOwjIPnWhVgI1zQ6iIUkzuZyn9qXVq7A5GHJXQTZUHRIEkS/BLo9UK4/5Q1ZjR9 ofShglHxyUrkWtj1P7NPxVTOLrB6/RKndD7Tnt2oxoW8lwKl9gy6wKnef9CBABPPiyLx XiEJ5E22L5+ba+wSCETT5Bl2wpDzc3dozE0dh8+FwUIY6npN2hjs9nINh4fiBCVRYcVq 5Adj/3oTU8YUqFuVG4epF+AsU/Kd7Dg4mLclN+eILEXNTW+PgJl8i95bWf3jfyHDZ7UC OClg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773524792; x=1774129592; 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=t4dcDIIqWjuCuDIw/EKfyfSSct6pSLR9IhCmDMZcgFo=; b=N4AlRTWhnoWYTZvLO3sr1AwlUsJmyuaCxOAxFReovW3+whYVeFSPcyuJ2lLpAzDFOO wbSrHrCG9r1jnlrsPLk1AS19fccWJoEFjYHchKyx9sBKxqBr2O0fmNucA06NluEGM2l4 QuvnbSiWUdfm0YIkfAXDqw8hEGmXsePCB/qGdOz3F1plmakB0yc0UuXsHQ2GGIWa95uX mAF5ooPnZcyXOgMKVqcmcZDt4ilMnwOlHJAiluprOxGct4EZ3MulXzXVjrEzKEU51MM+ hcwXm6Ovp/ZMnz+PJ5GCqR6t08N8K3xHxNv0LRRcxugD836EGMEx/9YCAZd2F3V2z3gc erOA== X-Forwarded-Encrypted: i=1; AJvYcCWO4C5/5HOZBxt0SZU7Urd8SWYU/60lFNvg4ymzIPuCKW+Qves/db3sLHR65Df2bUco20spz3eXWkI=@lists.freedesktop.org X-Gm-Message-State: AOJu0YyibpaZxlOb2eDDFHv3w0nAQztNbBIDM7ymaIZPAITP554d5qeY j41sS43BCi7Irol7+eUgr805VsIJzxKRvlO0y1qj+hJOXYmrXkSJRUQ8 X-Gm-Gg: ATEYQzyw+zrhGQSw37luzdMX6EOzAElitKFoqWNxiMIYPVORvwfGt1sDZ6NILh7Z4pu STroksXOQIEuRVd61ftzDv02VYaCZRjr9yyriifZ8ZGG0zvXQR9fkVmm1Pg/7PqWpibcWP6Oo3U 8uS0Qub01l5g3nr41BqizLS7gDvIvguHE8SymVLNJBYuKMOuqY1y4lBPS2LUHs1GmKFaJ0Tom4U Q6XIK5r3EJdDHb8RM/IU03Kj3UIKkkDgwz011xIQhab/MhP50zxA5NFS3RjJ7/4LUbpej0QUMq+ LPen84nqfeZ5+TFUdb061++7Uhn05CrJHjmh1IcX/hzCC3/SGiiqgL9jm3qu+jfnd8UjpoUdkdv RMZcAHRxioq49z1J1bRrYimB5Yp6i3yFt/ZOZLDtmPxPM1Sn3rRT1WN9zMY7i4peOYCD45QAdFs JTp/oh3r2uXAj5fOAiJof7O2c6aP5K/ZJPkx6NLSmhG9A1zznlVy22LjXyYdTuUXw= X-Received: by 2002:a05:600c:3552:b0:485:1878:7b8c with SMTP id 5b1f17b1804b1-485567028b2mr128325555e9.18.1773524791465; Sat, 14 Mar 2026 14:46:31 -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 ffacd0b85a97d-439fe19aec5sm28756221f8f.4.2026.03.14.14.46.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Mar 2026 14:46:31 -0700 (PDT) From: Yedaya Katsman Date: Sat, 14 Mar 2026 23:46:22 +0200 Subject: [PATCH v4 2/3] drm: panel: Add Samsung S6E8FCO DSI controller for M1906F9 panel MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260314-panel-patches-v4-2-1ecbb2c0c3c8@gmail.com> References: <20260314-panel-patches-v4-0-1ecbb2c0c3c8@gmail.com> In-Reply-To: <20260314-panel-patches-v4-0-1ecbb2c0c3c8@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 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1773524784; l=12581; i=yedaya.ka@gmail.com; s=20260113; h=from:subject:message-id; bh=7QWXwQae0M3nfvVtdUe9fsLhIDOP/YC+Hs++mWbyNjU=; b=NnI0t3ib6ozAfw0oattCqPISiDzJyiVkEB94+5zVdFfiGqlIrYX1jDLcO3QneYa6iFcEbqzY5 h2YTW3rpW5gAQK5FXGxx25Z8lj+wZ8nmJXCORPrM0+POjCjBjM2mKC0 X-Developer-Key: i=yedaya.ka@gmail.com; a=ed25519; pk=CgNmxD3tYSws5dZfpmJfc6re/bV/f47veVijddHLytk= X-Mailman-Approved-At: Sun, 15 Mar 2026 11:20:58 +0000 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" QWRkIGRyaXZlciBmb3IgU2Ftc3VuZyBTNkU4RkNPIERTSSBjb250cm9sbGVyIGZvciBNMTkwNkY5 IHZpZGVvIG1vZGUgcGFuZWwsCmZvdW5kIGluIFhpYW9taSBNaSBBMyBtb2JpbGUgcGhvbmUuCgpD by1kZXZlbG9wZWQtYnk6IEthbWlsIEdvxYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IEthbWlsIEdvxYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IFllZGF5YSBLYXRzbWFuIDx5ZWRheWEua2FAZ21haWwuY29tPgoKLS0t CgpUaGUgZG93bnN0cmVhbSBkdHMgY2xhaW1zIGEgbWF4IGJyaWdodG5lc3Mgb2YgMjA0NywgYnV0 IHNlZW1zIHRvIGlnbm9yZSB0aGUKTVNCLgotLS0KIE1BSU5UQUlORVJTICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9L Y29uZmlnICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsKIGRyaXZlcnMvZ3B1L2RybS9wYW5l bC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9ncHUvZHJtL3BhbmVs L3BhbmVsLXNhbXN1bmctczZlOGZjby1tMTkwNmY5LmMgIHwgMzAxICsrKysrKysrKysrKysrKysr KysrKwogNCBmaWxlcyBjaGFuZ2VkLCAzMjAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL01B SU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggZTA4NzY3MzIzNzYzNjI2ODM0Njk3OWRkYzI3 MGY4Y2YwOTA1YzcyMi4uMGM4MzVkNDMyY2VkOGNjMWM4NDk0NTk2YmMxYzJhMzZlYWRkNmZlOCAx MDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTgxODMsNiArODE4 MywxMSBAQCBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvZGlzcGxheS9wYW5lbC9zYW1zdW5nLHM2ZTNoYTgueWFtbAogRjoJZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hhOC5jCiAKK0RSTSBEUklWRVIgRk9SIFNBTVNVTkcg UzZFOEZDTyBQQU5FTFMKK006CVllZGF5YSBLYXRzbWFuIDx5ZWRheWEua2FAZ21haWwuY29tPgor UzoJTWFpbnRhaW5lZAorRjoJZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZl OGZjby1tMTkwNmY5LmMKKwogRFJNIERSSVZFUiBGT1IgU0FNU1VORyBTT0ZFRjAwIERESUMKIE06 CURhdmlkIEhlaWRlbGJlcmcgPGRhdmlkQGl4aXQuY3o+CiBNOglDYXNleSBDb25ub2xseSA8Y2Fz ZXkuY29ubm9sbHlAbGluYXJvLm9yZz4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKaW5kZXggN2E4MzgwNGZl ZGNhMWI2ODhjZTZmYmU0Mjk1ZWM5MDA5MDA3ZTY5My4uNDdhOGEyZDI1MzVmM2ZhNDZmYzQ1NDVh ZTMwZjdlMGI2YjNkMmUxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25m aWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKQEAgLTg5Myw2ICs4OTMsMTkg QEAgY29uZmlnIERSTV9QQU5FTF9TQU1TVU5HX1M2RThBQTVYMDFfQU1TNTYxUkEwMQogCSAgfjUu NiBpbmNoIEFNT0xFRCBkaXNwbGF5LCBhbmQgdGhlIGNvbnRyb2xsZXIgaXMgZHJpdmVuIGJ5IHRo ZSBNSVBJCiAJICBEU0kgcHJvdG9jb2wgd2l0aCA0IGxhbmVzLgogCitjb25maWcgRFJNX1BBTkVM X1NBTVNVTkdfUzZFOEZDTworCXRyaXN0YXRlICJTYW1zdW5nIFM2RThGQ08gRFNJIGNvbnRyb2xs ZXIiCisJZGVwZW5kcyBvbiBPRgorCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRQor CXNlbGVjdCBEUk1fTUlQSV9EU0kKKwloZWxwCisJICBTYXkgWSBvciBNIGhlcmUgaWYgeW91IHdh bnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBTYW1zdW5nCisJICBTNkU4RkNPIERTSSBjb250 cm9sbGVyIGFuZCBjb25uZWN0ZWQgcGFuZWwuCisJICBDdXJyZW50bHkgc3VwcG9ydGVkIHBhbmVs czoKKworCSAgICBNMTkwNkY5IChNMTkwNkY5U0ggb3IgTTE5MDZGOVNJKSwgNi4wOSBpbmNoIDcy MHgxNTYwLCBmb3VuZAorCSAgICBpbiB0aGUgWGlhb21pIE1pIEEzIHNtYXJ0cGhvbmUgKHhpYW9t aS1sYXVyZWwpLgorCiBjb25maWcgRFJNX1BBTkVMX1NBTVNVTkdfU09GRUYwMAogCXRyaXN0YXRl ICJTYW1zdW5nIFNPRkVGMDAgRFNJIHBhbmVsIGNvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBPRgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL01ha2VmaWxlCmluZGV4IGI5NTYyYTZmZGNiMzhiZmQwZGZlZTllOGMxMWUxNjE0 OWFkYTQzODYuLjBjZjdmMGZiNDY1NGViM2RjNjdiMmYxNTI5NGVhNDYwMTVhOWJjZGMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9k cm0vcGFuZWwvTWFrZWZpbGUKQEAgLTkxLDYgKzkxLDcgQEAgb2JqLSQoQ09ORklHX0RSTV9QQU5F TF9TQU1TVU5HX1M2RTg4QTBfQU1TNDI3QVAyNCkgKz0gcGFuZWwtc2Ftc3VuZy1zNmU4OGEwLWFt czQKIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4OEEwX0FNUzQ1MkVGMDEpICs9 IHBhbmVsLXNhbXN1bmctczZlODhhMC1hbXM0NTJlZjAxLm8KIG9iai0kKENPTkZJR19EUk1fUEFO RUxfU0FNU1VOR19TNkU4QUEwKSArPSBwYW5lbC1zYW1zdW5nLXM2ZThhYTAubwogb2JqLSQoQ09O RklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RThBQTVYMDFfQU1TNTYxUkEwMSkgKz0gcGFuZWwtc2Ft c3VuZy1zNmU4YWE1eDAxLWFtczU2MXJhMDEubworb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TQU1T VU5HX1M2RThGQ08pICs9IHBhbmVsLXNhbXN1bmctczZlOGZjby1tMTkwNmY5Lm8KIG9iai0kKENP TkZJR19EUk1fUEFORUxfU0FNU1VOR19TT0ZFRjAwKSArPSBwYW5lbC1zYW1zdW5nLXNvZmVmMDAu bwogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TRUlLT180M1dWRjFHKSArPSBwYW5lbC1zZWlrby00 M3d2ZjFnLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0hBUlBfTFEwNzlMMVNYMDEpICs9IHBh bmVsLXNoYXJwLWxxMDc5bDFzeDAxLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zYW1zdW5nLXM2ZThmY28tbTE5MDZmOS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNhbXN1bmctczZlOGZjby1tMTkwNmY5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZhYmZlMTliNTcy ODYxMmFiMmEyNTE4YThhMTAwZTcwMTBiMWQwYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZThmY28tbTE5MDZmOS5jCkBAIC0wLDAgKzEs MzAxIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvLyBDb3B5 cmlnaHQgKGMpIEthbWlsIEdvxYJkYSA8a2FtaWwuZ29sZGFAcHJvdG9ubWFpbC5jb20+CisvLyBD b3B5cmlnaHQgKGMpIFllZGF5YSBLYXRzbWFuIDx5ZWRheWEua2FAZ21haWwuY29tPgorLy8gR2Vu ZXJhdGVkIHdpdGggbGludXgtbWRzcy1kc2ktcGFuZWwtZHJpdmVyLWdlbmVyYXRvciBmcm9tIHZl bmRvciBkZXZpY2UgdHJlZToKKy8vICAgQ29weXJpZ2h0IChjKSBUaGUgTGludXggRm91bmRhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgor I2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5o PgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgorCisjaW5jbHVk ZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+ CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgorCitzdHJ1Y3QgczZlOGZjb19jdHgg eworCXN0cnVjdCBkcm1fcGFuZWwgcGFuZWw7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNp OworCXN0cnVjdCByZWd1bGF0b3JfYnVsa19kYXRhICpzdXBwbGllczsKKwlzdHJ1Y3QgZ3Bpb19k ZXNjICpyZXNldF9ncGlvOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCByZWd1bGF0b3JfYnVs a19kYXRhIHM2ZThmY29fbTE5MDZmOV9zdXBwbGllc1tdID0geworCXsgLnN1cHBseSA9ICJ2ZGQi IH0sCisJeyAuc3VwcGx5ID0gInZjaSIgfSwKK307CisKK3N0YXRpYyBpbmxpbmUKK3N0cnVjdCBz NmU4ZmNvX2N0eCAqdG9fczZlOGZjb19jdHgoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJ cmV0dXJuIGNvbnRhaW5lcl9vZl9jb25zdChwYW5lbCwgc3RydWN0IHM2ZThmY29fY3R4LCBwYW5l bCk7Cit9CisKK3N0YXRpYyB2b2lkIHM2ZThmY29fbTE5MDZmOV9yZXNldChzdHJ1Y3QgczZlOGZj b19jdHggKmN0eCkKK3sKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoY3R4LT5yZXNldF9ncGlv LCAwKTsKKwl1c2xlZXBfcmFuZ2UoMTIwMDAsIDEzMDAwKTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fu c2xlZXAoY3R4LT5yZXNldF9ncGlvLCAxKTsKKwl1c2xlZXBfcmFuZ2UoMjAwMCwgMzAwMCk7CisJ Z3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGN0eC0+cmVzZXRfZ3BpbywgMCk7CisJdXNsZWVwX3Jh bmdlKDEwMDAwLCAxMTAwMCk7Cit9CisKKyNkZWZpbmUgczZlOGZjb19tMTkwNmY5X3Rlc3Rfa2V5 X29uX2x2bDIoY3R4KSBcCisJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aShjdHgsIDB4ZjAs IDB4NWEsIDB4NWEpCisjZGVmaW5lIHM2ZThmY29fbTE5MDZmOV90ZXN0X2tleV9vZmZfbHZsMihj dHgpIFwKKwltaXBpX2RzaV9kY3Nfd3JpdGVfc2VxX211bHRpKGN0eCwgMHhmMCwgMHhhNSwgMHhh NSkKKyNkZWZpbmUgczZlOGZjb19tMTkwNmY5X3Rlc3Rfa2V5X29uX2x2bDMoY3R4KSBcCisJbWlw aV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aShjdHgsIDB4ZmMsIDB4NWEsIDB4NWEpCisjZGVmaW5l IHM2ZThmY29fbTE5MDZmOV90ZXN0X2tleV9vZmZfbHZsMyhjdHgpIFwKKwltaXBpX2RzaV9kY3Nf d3JpdGVfc2VxX211bHRpKGN0eCwgMHhmYywgMHhhNSwgMHhhNSkKKworc3RhdGljIGludCBzNmU4 ZmNvX20xOTA2Zjlfb24oc3RydWN0IHM2ZThmY29fY3R4ICpjdHgpCit7CisJc3RydWN0IG1pcGlf ZHNpX211bHRpX2NvbnRleHQgZHNpX2N0eCA9IHsgLmRzaSA9IGN0eC0+ZHNpIH07CisKKwlzNmU4 ZmNvX20xOTA2ZjlfdGVzdF9rZXlfb25fbHZsMygmZHNpX2N0eCk7CisKKwltaXBpX2RzaV9kY3Nf c2V0X2Rpc3BsYXlfYnJpZ2h0bmVzc19tdWx0aSgmZHNpX2N0eCwgMHgwMDAwKTsKKwltaXBpX2Rz aV9kY3Nfd3JpdGVfc2VxX211bHRpKCZkc2lfY3R4LCBNSVBJX0RDU19XUklURV9DT05UUk9MX0RJ U1BMQVksCisJCQkJICAgICAweDIwKTsKKwltaXBpX2RzaV9kY3NfZXhpdF9zbGVlcF9tb2RlX211 bHRpKCZkc2lfY3R4KTsKKwltaXBpX2RzaV9tc2xlZXAoJmRzaV9jdHgsIDUwKTsKKwltaXBpX2Rz aV9kY3Nfc2V0X2Rpc3BsYXlfb25fbXVsdGkoJmRzaV9jdHgpOworCisJbWlwaV9kc2lfZGNzX3dy aXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhiMCwgMHgwNCwgMHhlZCk7CisJbWlwaV9kc2lfZGNz X3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwgMHhlZCwKKwkJCQkgICAgIDB4ZTQsIDB4MDgsIDB4 OTYsIDB4YTQsIDB4MmEsIDB4NzIsIDB4ZTIsCisJCQkJICAgICAweGNhLCAweDAwKTsKKwlzNmU4 ZmNvX20xOTA2ZjlfdGVzdF9rZXlfb2ZmX2x2bDMoJmRzaV9jdHgpOworCXM2ZThmY29fbTE5MDZm OV90ZXN0X2tleV9vbl9sdmwyKCZkc2lfY3R4KTsKKwlzNmU4ZmNvX20xOTA2ZjlfdGVzdF9rZXlf b25fbHZsMygmZHNpX2N0eCk7CisJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0 eCwgMHhlMSwgMHg5Myk7CisJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwg MHhiMCwgMHgwNSwgMHhmNCk7CisJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0 eCwgMHhmNCwgMHgwMyk7CisJbWlwaV9kc2lfZGNzX3dyaXRlX3NlcV9tdWx0aSgmZHNpX2N0eCwg MHhlZCwgMHgwMSwgMHg4MSwgMHgwNCk7CisJczZlOGZjb19tMTkwNmY5X3Rlc3Rfa2V5X29mZl9s dmwyKCZkc2lfY3R4KTsKKwlzNmU4ZmNvX20xOTA2ZjlfdGVzdF9rZXlfb2ZmX2x2bDMoJmRzaV9j dHgpOworCisJcmV0dXJuIGRzaV9jdHguYWNjdW1fZXJyOworfQorCitzdGF0aWMgaW50IHM2ZThm Y29fbTE5MDZmOV9vZmYoc3RydWN0IHM2ZThmY29fY3R4ICpjdHgpCit7CisJc3RydWN0IG1pcGlf ZHNpX211bHRpX2NvbnRleHQgZHNpX2N0eCA9IHsgLmRzaSA9IGN0eC0+ZHNpIH07CisKKwltaXBp X2RzaV9kY3Nfc2V0X2Rpc3BsYXlfb2ZmX211bHRpKCZkc2lfY3R4KTsKKwltaXBpX2RzaV9tc2xl ZXAoJmRzaV9jdHgsIDIwKTsKKwltaXBpX2RzaV9kY3NfZW50ZXJfc2xlZXBfbW9kZV9tdWx0aSgm ZHNpX2N0eCk7CisJbWlwaV9kc2lfbXNsZWVwKCZkc2lfY3R4LCAxMjApOworCisJcmV0dXJuIGRz aV9jdHguYWNjdW1fZXJyOworfQorCitzdGF0aWMgaW50IHM2ZThmY29fbTE5MDZmOV9wcmVwYXJl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBzNmU4ZmNvX2N0eCAqY3R4ID0g dG9fczZlOGZjb19jdHgocGFuZWwpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZjdHgtPmRzaS0+ ZGV2OworCWludCByZXQ7CisKKwlyZXQgPSByZWd1bGF0b3JfYnVsa19lbmFibGUoQVJSQVlfU0la RShzNmU4ZmNvX20xOTA2Zjlfc3VwcGxpZXMpLCBjdHgtPnN1cHBsaWVzKTsKKwlpZiAocmV0IDwg MCkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBlbmFibGUgcmVndWxhdG9yczogJWRcbiIs IHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJczZlOGZjb19tMTkwNmY5X3Jlc2V0KGN0eCk7 CisKKwlyZXQgPSBzNmU4ZmNvX20xOTA2Zjlfb24oY3R4KTsKKwlpZiAocmV0IDwgMCkgeworCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCB0byBpbml0aWFsaXplIHBhbmVsOiAlZFxuIiwgcmV0KTsKKwkJ Z3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGN0eC0+cmVzZXRfZ3BpbywgMSk7CisJCXJlZ3VsYXRv cl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShzNmU4ZmNvX20xOTA2Zjlfc3VwcGxpZXMpLCBjdHgt PnN1cHBsaWVzKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBzNmU4ZmNvX20xOTA2ZjlfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQor eworCXN0cnVjdCBzNmU4ZmNvX2N0eCAqY3R4ID0gdG9fczZlOGZjb19jdHgocGFuZWwpOworCXN0 cnVjdCBkZXZpY2UgKmRldiA9ICZjdHgtPmRzaS0+ZGV2OworCWludCByZXQ7CisKKwlyZXQgPSBz NmU4ZmNvX20xOTA2Zjlfb2ZmKGN0eCk7CisJaWYgKHJldCA8IDApCisJCWRldl9lcnIoZGV2LCAi RmFpbGVkIHRvIHVuLWluaXRpYWxpemUgcGFuZWw6ICVkXG4iLCByZXQpOworCisJZ3Bpb2Rfc2V0 X3ZhbHVlX2NhbnNsZWVwKGN0eC0+cmVzZXRfZ3BpbywgMSk7CisJcmVndWxhdG9yX2J1bGtfZGlz YWJsZShBUlJBWV9TSVpFKHM2ZThmY29fbTE5MDZmOV9zdXBwbGllcyksIGN0eC0+c3VwcGxpZXMp OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSBzNmU4ZmNvX20xOTA2Zjlfc2Ftc3VuZ3BfbW9kZSA9IHsKKwkuY2xvY2sgPSAoNzIwICsgMzUw ICsgNDAgKyAyOTQpICogKDE1NjAgKyAxNyArIDIgKyA1KSAqIDYwIC8gMTAwMCwKKwkuaGRpc3Bs YXkgPSA3MjAsCisJLmhzeW5jX3N0YXJ0ID0gNzIwICsgMzUwLAorCS5oc3luY19lbmQgPSA3MjAg KyAzNTAgKyA0MCwKKwkuaHRvdGFsID0gNzIwICsgMzUwICsgNDAgKyAyOTQsCisJLnZkaXNwbGF5 ID0gMTU2MCwKKwkudnN5bmNfc3RhcnQgPSAxNTYwICsgMTcsCisJLnZzeW5jX2VuZCA9IDE1NjAg KyAxNyArIDIsCisJLnZ0b3RhbCA9IDE1NjAgKyAxNyArIDIgKyA1LAorCS53aWR0aF9tbSA9IDY1 LAorCS5oZWlnaHRfbW0gPSAxNDAsCisJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiwKK307 CisKK3N0YXRpYyBpbnQgczZlOGZjb19tMTkwNmY5X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorewor CXJldHVybiBkcm1fY29ubmVjdG9yX2hlbHBlcl9nZXRfbW9kZXNfZml4ZWQoY29ubmVjdG9yLCAm czZlOGZjb19tMTkwNmY5X3NhbXN1bmdwX21vZGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9wYW5lbF9mdW5jcyBzNmU4ZmNvX20xOTA2ZjlfcGFuZWxfZnVuY3MgPSB7CisJLnByZXBh cmUgPSBzNmU4ZmNvX20xOTA2ZjlfcHJlcGFyZSwKKwkudW5wcmVwYXJlID0gczZlOGZjb19tMTkw NmY5X3VucHJlcGFyZSwKKwkuZ2V0X21vZGVzID0gczZlOGZjb19tMTkwNmY5X2dldF9tb2RlcywK K307CisKK3N0YXRpYyBpbnQgczZlOGZjb19ibF91cGRhdGVfc3RhdHVzKHN0cnVjdCBiYWNrbGln aHRfZGV2aWNlICpibCkKK3sKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kgPSBibF9nZXRf ZGF0YShibCk7CisJdTE2IGJyaWdodG5lc3MgPSBiYWNrbGlnaHRfZ2V0X2JyaWdodG5lc3MoYmwp OworCWludCByZXQ7CisKKwlkc2ktPm1vZGVfZmxhZ3MgJj0gfk1JUElfRFNJX01PREVfTFBNOwor CisJcmV0ID0gbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X2JyaWdodG5lc3NfbGFyZ2UoZHNpLCBi cmlnaHRuZXNzKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWRzaS0+bW9kZV9m bGFncyB8PSBNSVBJX0RTSV9NT0RFX0xQTTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 IHM2ZThmY29fYmxfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsKQor eworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSA9IGJsX2dldF9kYXRhKGJsKTsKKwl1MTYg YnJpZ2h0bmVzczsKKwlpbnQgcmV0OworCisJZHNpLT5tb2RlX2ZsYWdzICY9IH5NSVBJX0RTSV9N T0RFX0xQTTsKKworCXJldCA9IG1pcGlfZHNpX2Rjc19nZXRfZGlzcGxheV9icmlnaHRuZXNzX2xh cmdlKGRzaSwgJmJyaWdodG5lc3MpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJ ZHNpLT5tb2RlX2ZsYWdzIHw9IE1JUElfRFNJX01PREVfTFBNOworCisJcmV0dXJuIGJyaWdodG5l c3M7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmFja2xpZ2h0X29wcyBzNmU4ZmNvX2JsX29w cyA9IHsKKwkudXBkYXRlX3N0YXR1cyA9IHM2ZThmY29fYmxfdXBkYXRlX3N0YXR1cywKKwkuZ2V0 X2JyaWdodG5lc3MgPSBzNmU4ZmNvX2JsX2dldF9icmlnaHRuZXNzLAorfTsKKworc3RhdGljIHN0 cnVjdCBiYWNrbGlnaHRfZGV2aWNlICoKK3M2ZThmY29fbTE5MDZmOV9jcmVhdGVfYmFja2xpZ2h0 KHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm ZHNpLT5kZXY7CisJY29uc3Qgc3RydWN0IGJhY2tsaWdodF9wcm9wZXJ0aWVzIHByb3BzID0gewor CQkudHlwZSA9IEJBQ0tMSUdIVF9SQVcsCisJCS5icmlnaHRuZXNzID0gNTEyLAorCQkubWF4X2Jy aWdodG5lc3MgPSAxMDIzLAorCX07CisKKwlyZXR1cm4gZGV2bV9iYWNrbGlnaHRfZGV2aWNlX3Jl Z2lzdGVyKGRldiwgZGV2X25hbWUoZGV2KSwgZGV2LCBkc2ksCisJCQkJCSAgICAgICZzNmU4ZmNv X2JsX29wcywgJnByb3BzKTsKK30KKworc3RhdGljIGludCBzNmU4ZmNvX20xOTA2ZjlfcHJvYmUo c3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZk c2ktPmRldjsKKwlzdHJ1Y3QgczZlOGZjb19jdHggKmN0eDsKKwlpbnQgcmV0OworCisJY3R4ID0g ZGV2bV9kcm1fcGFuZWxfYWxsb2MoZGV2LCBzdHJ1Y3QgczZlOGZjb19jdHgsIHBhbmVsLAorCQkJ CSAgICZzNmU4ZmNvX20xOTA2ZjlfcGFuZWxfZnVuY3MsCisJCQkJICAgRFJNX01PREVfQ09OTkVD VE9SX0RTSSk7CisJaWYgKElTX0VSUihjdHgpKQorCQlyZXR1cm4gUFRSX0VSUihjdHgpOworCisJ cmV0ID0gZGV2bV9yZWd1bGF0b3JfYnVsa19nZXRfY29uc3QoZGV2LAorCQkJCQkgICAgQVJSQVlf U0laRShzNmU4ZmNvX20xOTA2Zjlfc3VwcGxpZXMpLAorCQkJCQkgICAgczZlOGZjb19tMTkwNmY5 X3N1cHBsaWVzLAorCQkJCQkgICAgJmN0eC0+c3VwcGxpZXMpOworCWlmIChyZXQgPCAwKQorCQly ZXR1cm4gcmV0OworCisJY3R4LT5yZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVz ZXQiLCBHUElPRF9PVVRfSElHSCk7CisJaWYgKElTX0VSUihjdHgtPnJlc2V0X2dwaW8pKQorCQly ZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoY3R4LT5yZXNldF9ncGlvKSwKKwkJCQkg ICAgICJGYWlsZWQgdG8gZ2V0IHJlc2V0LWdwaW9zXG4iKTsKKworCWN0eC0+ZHNpID0gZHNpOwor CW1pcGlfZHNpX3NldF9kcnZkYXRhKGRzaSwgY3R4KTsKKworCWRzaS0+bGFuZXMgPSA0OworCWRz aS0+Zm9ybWF0ID0gTUlQSV9EU0lfRk1UX1JHQjg4ODsKKwlkc2ktPm1vZGVfZmxhZ3MgPSBNSVBJ X0RTSV9NT0RFX1ZJREVPIHwgTUlQSV9EU0lfTU9ERV9WSURFT19CVVJTVCB8CisJCQkgIE1JUElf RFNJX0NMT0NLX05PTl9DT05USU5VT1VTOworCisJY3R4LT5wYW5lbC5wcmVwYXJlX3ByZXZfZmly c3QgPSB0cnVlOworCisJY3R4LT5wYW5lbC5iYWNrbGlnaHQgPSBzNmU4ZmNvX20xOTA2ZjlfY3Jl YXRlX2JhY2tsaWdodChkc2kpOworCWlmIChJU19FUlIoY3R4LT5wYW5lbC5iYWNrbGlnaHQpKQor CQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoY3R4LT5wYW5lbC5iYWNrbGlnaHQp LAorCQkJCSAgICAgIkZhaWxlZCB0byBjcmVhdGUgYmFja2xpZ2h0XG4iKTsKKworCWRybV9wYW5l bF9hZGQoJmN0eC0+cGFuZWwpOworCisJcmV0ID0gbWlwaV9kc2lfYXR0YWNoKGRzaSk7CisJaWYg KHJldCA8IDApIHsKKwkJZHJtX3BhbmVsX3JlbW92ZSgmY3R4LT5wYW5lbCk7CisJCXJldHVybiBk ZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiRmFpbGVkIHRvIGF0dGFjaCB0byBEU0kgaG9zdFxuIik7 CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHM2ZThmY29fcmVtb3ZlKHN0cnVj dCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKK3sKKwlzdHJ1Y3QgczZlOGZjb19jdHggKmN0eCA9IG1p cGlfZHNpX2dldF9kcnZkYXRhKGRzaSk7CisJaW50IHJldDsKKworCXJldCA9IG1pcGlfZHNpX2Rl dGFjaChkc2kpOworCWlmIChyZXQgPCAwKQorCQlkZXZfZXJyKCZkc2ktPmRldiwgIkZhaWxlZCB0 byBkZXRhY2ggZnJvbSBEU0kgaG9zdDogJWRcbiIsIHJldCk7CisKKwlkcm1fcGFuZWxfcmVtb3Zl KCZjdHgtPnBhbmVsKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc2Ft c3VuZ19zNmU4ZmNvX20xOTA2Zjlfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInNh bXN1bmcsczZlOGZjby1tMTkwNmY5IiB9LAorCXsgLyogc2VudGluZWwgKi8gfQorfTsKK01PRFVM RV9ERVZJQ0VfVEFCTEUob2YsIHNhbXN1bmdfczZlOGZjb19tMTkwNmY5X29mX21hdGNoKTsKKwor c3RhdGljIHN0cnVjdCBtaXBpX2RzaV9kcml2ZXIgczZlOGZjb19tMTkwNmY5X2RyaXZlciA9IHsK KwkucHJvYmUgPSBzNmU4ZmNvX20xOTA2ZjlfcHJvYmUsCisJLnJlbW92ZSA9IHM2ZThmY29fcmVt b3ZlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gInBhbmVsLXNhbXN1bmctczZlOGZjby1tMTkw NmY5IiwKKwkJLm9mX21hdGNoX3RhYmxlID0gc2Ftc3VuZ19zNmU4ZmNvX20xOTA2Zjlfb2ZfbWF0 Y2gsCisJfSwKK307Cittb2R1bGVfbWlwaV9kc2lfZHJpdmVyKHM2ZThmY29fbTE5MDZmOV9kcml2 ZXIpOworCitNT0RVTEVfQVVUSE9SKCJLYW1pbCBHb8WCZGEgPGthbWlsLmdvbGRhQHByb3Rvbm1h aWwuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJEUk0gZHJpdmVyIGZvciBTYW1zdW5nIHM2 ZThmY28gRFNJIGNvbnRyb2xsZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKCi0tIAoyLjUz LjAKCg==