From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E150534B1A2; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=ksShKPIp8TwVU1WeViaDvJYn7k+/1sdEhbTmn1ksnDFjMEhrPKFmfA+mmWi8BrqeTmmJUbhBia9ZRXmOwxTZyaeO8fRtzRLBqi/xjMqvEF6y3/vG5xejFUKpX2rRSN4I5kPaqL9XWTS3xIBlvU4ZQAtxFefEG8Km+Ih2nWlvsxs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=6PmAGXZV+htq2Tef1xnLisdfXtwtLDKNBf1RrXQoeO4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bmHPF2Go+w5owmneAPyml0Z5GWoTd4RQ75PJVsJ/KdWcHAALL71MhjvPm8NcYnP6Pg75xXd8WO0La5bBmYQSkqPAoApT+4hJnJ4iFKTRHRl+DQCnAKu3MxD1c82UWzYhux1QeMoWoaPpxJuDj6xyVQjrJ9K/ntrg/wz+A1CHO9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VK8tpOQd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VK8tpOQd" Received: by smtp.kernel.org (Postfix) with ESMTPS id 7EE9FC2BCF5; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902347; bh=6PmAGXZV+htq2Tef1xnLisdfXtwtLDKNBf1RrXQoeO4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=VK8tpOQdHi1tmDuGIeG/64bg87bg3A0De/D0dcJ1AKD7e2dUWP5l+1mu07rfasud1 GCjoRGYyWESiTZJRJ2WPatU2se2wKB4G/cuemSB8mWirH+f2coDp+DhWDF6OTdeyE0 RSw55Lok3J75O9qHivT+HsMWnnyNF6hPbSOdu7/lJ0T2qVR428x+i4xiZmowfsaAXr C1DQVXV/YEyrT/HrloNPZsLdCEXr1UsQD0Yb0TVrTd0nm9Kz71r/TE1cfLFIeumlC0 Bxe2wuMxVjqZQErjzGis8fRuRkp0umhkbhZJGmWNhb7aCAdwvIK7WI3cJWNzICK72K z4MmKsUHXqYvg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5720EC982E6; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:44 +0200 Subject: [PATCH 01/11] dt-bindings: display: panel: s6e3ha8: Adjust to reflect the DDIC and panel used Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-1-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2789; i=david@ixit.cz; h=from:subject:message-id; bh=SZkNpsxVS531OAFU8Nu8uN6r2eb+ReEDrV3Xfp7rlS0=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74IyiBXpEuhuoa9zH03oeZ1IHx3kvi8Ft5Ai GguZmi6eTaJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CAAKCRBgAj/E00kg cuXoD/9gBfxUhLV9WfrD8Mkf0GqB2U7xAvz2TeLu0av9ICb6u95qIEMoF2FWi/NzZDViCW173EK 3YSzqdXKrRZ+l542y1Lp0yBlgdA1W2Dz3LQBsF6Jx7Ueo8sZp/FJecT9fJ3kQ+bVUwWAanOdua4 tBXol0mgHocFqxV8oWU32qhvg6ZGrp46NKg5XD/EK7GhQSGUICciuuycqm3E7tmDd28tDN5r77X vsQB4mYaYg3H/zj2a47o0BfYOgXFEJ46Hy08kdY0OQO4mXK1AQHPQsB1TeVH+BZV2/ocf+Ye66B n9OI5e45weJAKVeSJvYlhlnVc4HInBQIx6N6togKYtRfCozlfo5qOh/2TRSJCUSkBCLdDQBfSBO d78bTl2n4W2itha3Qu84OlFTEoNIdQvNm9lYJYMKOWCCuQ6xqGJ52bWgk9fibTSmikd53PFwlF6 Jy3YF5YCisCiBkwDwL4ciGJPRGTG6n99VSIUrfc7Mr957361RmxPGMKkKXlt9/bFxD6ttsjn8Mj yb8MklJWgcD/2xT5rwlC5W9ojwhCjmN61+Dj/ahysS96KZlj8yLP55CiXAok9QmIi1SAy1CM2oy g4q4QDudEXUGgEP7sWRRw3XioIIekp7rG0bX+6EXJdKi26VtE/XFe7UZ5+6sNoPJIhELtUFsap6 dvUe332qo+MC74A== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg S6E3HA8 is the DDIC, while the panel used on the Samsung Galaxy S9 is the Samsung AMB577PX01. Introduce a compatible reflecting that, adjust the example, and deprecate the DDIC-only samsung,s6e3ha8 compatible. Update the polarity to better match newly introduced compatibles with fixed logic. Assisted-by: LLM Signed-off-by: David Heidelberg --- .../bindings/display/panel/samsung,s6e3ha8.yaml | 17 ++++++++++++-= ---- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha= 8.yaml b/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.ya= ml index 00ce5a4e1c6be..ca250b1b91712 100644 --- a/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml +++ b/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml @@ -1,28 +1,35 @@ # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/display/panel/samsung,s6e3ha8.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 title: Samsung s6e3ha8 AMOLED DSI panel =20 -description: The s6e3ha8 is a 1440x2960 DPI display panel from Samsung Mob= ile - Displays (SMD). +description: | + The s6e3ha8 is a display driver IC used in 1440x2960 AMOLED panels from + Samsung Mobile Displays (SMD). + + Known panels: + - AMB577PX01, 5.77", Samsung Galaxy S9 (samsung,s6e3ha8-amb577px01) =20 maintainers: - Dzmitry Sankouski =20 allOf: - $ref: panel-common.yaml# =20 properties: compatible: - const: samsung,s6e3ha8 + oneOf: + - const: samsung,s6e3ha8-amb577px01 + - const: samsung,s6e3ha8 + deprecated: true =20 reg: maxItems: 1 =20 vdd3-supply: description: VDD regulator =20 vci-supply: @@ -44,23 +51,23 @@ examples: - | #include =20 dsi { #address-cells =3D <1>; #size-cells =3D <0>; =20 panel@0 { - compatible =3D "samsung,s6e3ha8"; + compatible =3D "samsung,s6e3ha8-amb577px01"; reg =3D <0>; vci-supply =3D <&s2dos05_ldo4>; vddr-supply =3D <&s2dos05_buck1>; vdd3-supply =3D <&s2dos05_ldo1>; te-gpios =3D <&tlmm 10 GPIO_ACTIVE_HIGH>; - reset-gpios =3D <&tlmm 6 GPIO_ACTIVE_HIGH>; + reset-gpios =3D <&tlmm 6 GPIO_ACTIVE_LOW>; pinctrl-0 =3D <&sde_dsi_active &sde_te_active_sleep>; pinctrl-1 =3D <&sde_dsi_suspend &sde_te_active_sleep>; pinctrl-names =3D "default", "sleep"; =20 port { panel_in: endpoint { remote-endpoint =3D <&mdss_dsi0_out>; }; --=20 2.55.0 From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E147B274FDF; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=mk68Zip7STq7mfsYvAgRrTAfoRgXB9U1RZjyYsKbj1RXFTKfBy+v6tuP5hoKDq7WSkhR+MjzcA6dr4c6RAM8UxUxVocgoVupyVYm5V0Bmp9hr8jmCmAw8Bt0+A+g460lwU6UIXgiI1G0u0/dEX+UitzP/F7fBmeQ+UrTxQ1giqE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=rtR6voWlBp6nmy7r/Mw5s0EqVFPdv3nDJeJ4GzojCQ4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LFuWhr5ePpAmJ1mw9SZ37pCj/39ZhL9TNrU44snU3lZKEFoVxG/KS1C0SlR59I/dhJg1vNooaxt4UU/xtK0lYXsyAsr58oHksXyxcS69BZSGyQppllq10PwmC2VDrdo4QtSVq+DZtqmT6zjROVcLzh9gn7KmS8cWhRHkvQqJaNg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fd0j7+4y; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fd0j7+4y" Received: by smtp.kernel.org (Postfix) with ESMTPS id 8C4F0C2BCFB; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902347; bh=rtR6voWlBp6nmy7r/Mw5s0EqVFPdv3nDJeJ4GzojCQ4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=fd0j7+4y2WOMxKiwEfQmUS+Xv9TbAqzvIBRj9c850+4jcd/KN4aiAPH0HrxDZ6bXu kEMHNXq0uiwWlz0AEs/+jwJvRuoQ93vsiRmeHdX4jvrWTRwTN0A/IpDrOCCjvaRZ3Q 3WLnnHsX3q7LZmubslfFCJshJgpUHbkm4+PXygDOnq3AB+PL6VHJmCvPWCKcSBgGDB mMob6BeD8ldmwZPhwUoggOxYKEaPf4DC+Hk912Ue2ZdoTPrUdToBkwsIeUtVbQ1AEm /lmVT1vbFzCiraex+LKkfoRW2hQtw+o32k+iFiA04gmwoOdHeWrmraDvGOAPHJz4lO qsipwLP8cTMjg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A8F5C982EB; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:45 +0200 Subject: [PATCH 02/11] dt-bindings: display: panel: samsung,s6e3ha8: Add AMB630QY01 panel Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-2-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2442; i=david@ixit.cz; h=from:subject:message-id; bh=K2rs3ud3gazsmGeLP5fMP4q2yS8qRIDd3AISDM3ybSU=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74I3rDmLkqGSsIZDN+9uz4f1LGgo8qyM3CXq 6B0H9X7JeyJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CAAKCRBgAj/E00kg clSTD/9L6pf3JrF6YXl/a7X0d8gmOHJJqwinoKrwkOWltUBnw4VeXVFWZjcQzUn1B2DQPdNxpQR ioxQZgv0HUr5ZakzEM1S9lA/FdNe0jhbX+xl+YrCviYo24ktRsXwfmqQDHViNWwwChbgLI2n1KM SajESGv2o3jkrZO/LqKFwvCEdA6MNu9YETzljzqfv9szIWxSfdAK7ZPA+I9c6r8j/UwayF/1cqG 4ddsf+6pV7dfBFH2xueh7wVGTEKzlghixT5BgqmGb20TIr4s3Fc4Sj1e+a+vxSIakc0Yw8ORL8r fvAlPP4lZSRRGTip/uCQgDweHM8TtuSW1gY8/X7D7dWOelvCr9Svza6SzOaoA5unTtN4kYSNZ35 bL7jh4dnR1o5jnUrXHRSegnMZUL3hxd0SqRUWsxR7g7Tb4bnzq/Y2IGult4UafC/+LZm4BAiz12 UnyZoGcMCJVRSTf+5T54ZD25LLzLSEmSSjHRDs9NVck3gnmXINAIh4GnFRC5M5vGI83i8qqDUqg RXkzeo8m9Kb3fmCymS0pTBWfGTK90VGy3r1vEGKnsuCvZg+4KxgAbB4Z0Y2wqKSyR0OxEs92gOm wO+B9j1+C1zsTELPlgVqAARJ/Ls3LMcFtP23GuqWmccwKPqcVRtIrYJlsLMoeD4b7m+WZ6qMsDo 3HHk5Wg22gQUnlQ== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg The Google Pixel 3 XL (crosshatch) uses a Samsung AMB630QY01 6.3" 1440x2960 flexible AMOLED panel. Assisted-by: LLM Signed-off-by: David Heidelberg --- .../bindings/display/panel/samsung,s6e3ha8.yaml | 31 ++++++++++++++++++= ++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha= 8.yaml b/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.ya= ml index ca250b1b91712..acc2ea2969298 100644 --- a/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml +++ b/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml @@ -7,48 +7,75 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# title: Samsung s6e3ha8 AMOLED DSI panel =20 description: | The s6e3ha8 is a display driver IC used in 1440x2960 AMOLED panels from Samsung Mobile Displays (SMD). =20 Known panels: - AMB577PX01, 5.77", Samsung Galaxy S9 (samsung,s6e3ha8-amb577px01) + - AMB630QY01, 6.3", Google Pixel 3 XL (samsung,s6e3ha8-amb630qy01) =20 maintainers: - Dzmitry Sankouski =20 allOf: - $ref: panel-common.yaml# + - if: + properties: + compatible: + contains: + enum: + - samsung,s6e3ha8 + - samsung,s6e3ha8-amb577px01 + then: + required: + - vddr-supply + - if: + properties: + compatible: + contains: + const: samsung,s6e3ha8-amb630qy01 + then: + required: + - vddpos-supply + - vddneg-supply =20 properties: compatible: oneOf: - - const: samsung,s6e3ha8-amb577px01 + - enum: + - samsung,s6e3ha8-amb577px01 + - samsung,s6e3ha8-amb630qy01 - const: samsung,s6e3ha8 deprecated: true =20 reg: maxItems: 1 =20 vdd3-supply: description: VDD regulator =20 vci-supply: description: VCI regulator =20 vddr-supply: description: VDDR regulator =20 + vddpos-supply: + description: positive boost supply regulator (ELVDD) + + vddneg-supply: + description: negative boost supply regulator (ELVSS) + required: - compatible - reset-gpios - vdd3-supply - vci-supply - - vddr-supply =20 unevaluatedProperties: false =20 examples: - | #include =20 dsi { --=20 2.55.0 From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E44E92931F4; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=k4dWYSgFi7I0qaMBlyWvN6UFr5ksDivlFOhrleep6C9JItiwM8t3VRCBmQBkLTNF+ugVjjbNtdJmF3FcwKEkNODMbJ7HpiJ8PBtucx+E7/FeJh6TumAUghs/tLC0fCFWeiLm5ajpSppUKpXpe6hVpETip8ZjnaeVxY4pzgBEwaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=4yKi5j44FdLW/v3D8CZtfMpy25gM9vOjeSaVqEVGZDQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bCNrYERd93GiMJohW3PVSrewbWy3KRfLJGn+d8aoEM71m6gfX0liQ3bO0vnXOIznXLpXiy9rutBYYvcDdlsj3JpQdARtdO8r90Kql1v5zgjBciZfNlR70uLtPncCBITYrabyGynsiGaqmXMB0PtAT+vLUnqGzdfB+SgysATDpLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PUXQs3FY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PUXQs3FY" Received: by smtp.kernel.org (Postfix) with ESMTPS id 9B47CC2BD00; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902347; bh=4yKi5j44FdLW/v3D8CZtfMpy25gM9vOjeSaVqEVGZDQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=PUXQs3FYndIQKtzg0AqC+fpSkZ7vdxLQkFneDGq0dteOAEgRrbmVdtMVD+ktfB9cw stc4L+eBKxz4fSJlrOCVEXYp4q9uq5Uefun3FH+KGxBR8DgNx91cosr2LLQppaofLh kfNDgJwdFFoJbZrNpxd/AZRN/zXdIptp/onV/LT2dI/pe+AeZ9rv03Qr+dbPROv+Wm AFNTuaRfszkDRmgmN2lf1fQslWk+bPuQ04pvg7BZGFVoBpT3OMXZ1YHdGpJMRdJoiY K0qAQl2Xv9jydhwCP44xlwKUhBwNplgNPTfCeZ7gcvLJ3BMnDMoyMFhVIva9fKemNZ jwj7v1GT80Ilg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7BD56C982DA; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:46 +0200 Subject: [PATCH 03/11] drm/panel: s6e3ha8: Really assert reset on the failure Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-3-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg , stable@vger.kernel.org X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1389; i=david@ixit.cz; h=from:subject:message-id; bh=OzfdLbaebYlg4g6M/9ljeqwCz3P5UUikOpZwTfDJ7s0=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74IiMaZ7eLSG3j8Ye4MMpjqsDY0WqPVVnciA RGMdGMkZo+JAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CAAKCRBgAj/E00kg cn7QEACQA+ybHIvQR/Yu+E2AKsYzq8P5HZlmFlqdHwKT5AQioEW6jFpABsWBJ/uxVNOv32VGwSu ncr6ADDQsHfHJOBaipFhVHKDeDlFyG2iprIGXmhQiZOvd3FL3jfQTY0XbypWxJO3SdKc//0YI9g CzHkSK4boes7UYqZL0p428PuMd7Hd9hm+i9QfzVv9OlhIsvb4ZV/IE0S8jMenZZ8xNwcE14acKl QyA/ubpfJ8hRnKI+qdes+EPwSgpXI8WvBeeDNtjegucNlKDiG1PzlAwI5WAFOAiLjK2sMfE5aRp 9GP8WOxyMfT0+V2PCXPOgX7N5LvafeiIFuEahMxuG1awrYE5wYnUVrVh+VvmSWt+LAHcn8F8lMR +dq7DuJDS4OONC0qlCe4gmAcabPcqxqkF04IuxMy7YMfA15FKI/CRWtDy7G6qCtnZ+svkE+rYNe oGJs8iMLYJlTKByD195Xu4/ISCLOoHJZSdxoFI91dtfLtyfGY+YUDkk9ezxrUQFrPShs+AXDbV4 mPy2T9YP36Co5Owsgr5BB+s+9MQgg3TZSBnR+Wpbai8mS5yNSg1XbkxFzkKp+yJwoQNFgXNUeGh vSnHYxPOAhJM+cy5d0CM2KzbrlQQO+orvcl2Ga9ou0B1PRq5c6NJmVziKJeej4pA+1sxOeZW6RC HK6oY9OVFo7//vw== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Due to incorrect implementation 0 =3D=3D asserted, thus when driver fails it needs to assert reset. Minimal fix for stable; the polarity convention is corrected properly later in this series. Fixes: 779679d3c1640 ("drm/panel: Add support for S6E3HA8 panel driver") Cc: stable@vger.kernel.org Assisted-by: LLM Signed-off-by: David Heidelberg Reviewed-by: Neil Armstrong --- drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c b/drivers/gpu/dr= m/panel/panel-samsung-s6e3ha8.c index 078523df48860..835121b322f4a 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c @@ -179,17 +179,17 @@ static int s6e3ha8_amb577px01_wqhd_prepare(struct drm= _panel *panel) ret =3D regulator_bulk_enable(ARRAY_SIZE(s6e3ha8_supplies), priv->supplie= s); if (ret < 0) return ret; mipi_dsi_msleep(&ctx, 120); s6e3ha8_amb577px01_wqhd_reset(priv); =20 ret =3D s6e3ha8_amb577px01_wqhd_on(priv); if (ret < 0) { - gpiod_set_value_cansleep(priv->reset_gpio, 1); + gpiod_set_value_cansleep(priv->reset_gpio, 0); goto err; } =20 drm_dsc_pps_payload_pack(&pps, &priv->dsc); =20 samsung_dsi_test_key_on_lvl1(&ctx); mipi_dsi_picture_parameter_set_multi(&ctx, &pps); samsung_dsi_test_key_off_lvl1(&ctx); --=20 2.55.0 From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F04E93655E7; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=aMeNU9If7uZHC/jIL3qVoGenyT+Y+qddSXBq1qAnBaRe65u/G0VHtq5bvP6LGXuK/wtMy3Nh0hd83npJyFQUIMxbpSXscWBz+2lWR45EuqpKfHYi+aI8eIHNdCUY55ApYChEhL0bz7JwwvfyyMdFXHJrXRfqmp6Ourn5xE9gEIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=Y4ctGVmyz0DB+2j5W0yJqcPPlgSZT24HH1A9R2z2pl8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V6qg0W0leDWNhRgqQFLyFGyNOhUCIYdOsojlCVRKdUK817YIKxsGN1Fq00Q3MLggcPDsf3kSoaYRrpSBvcxY+m5BpIDeJFYSHDwIMxLmm3b1lqhoj4VSCbMBnDsY+8sUND7tJOB+LDpIWLcYJ/UkHwr5/XAnAuDjJ0zNdp2/Hzk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fZ08/1ZG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fZ08/1ZG" Received: by smtp.kernel.org (Postfix) with ESMTPS id AA745C4AF0F; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902347; bh=Y4ctGVmyz0DB+2j5W0yJqcPPlgSZT24HH1A9R2z2pl8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=fZ08/1ZGmcNSEgRFIWxdNIMNPZS1EOGkp/RbTVSeISB7NVyhmQtTSI75+Gg+gPtsv 9yCHlQJdl8f4JWX6/u2A7T6+KxEVjmi3C7yo8nz+sD4uw2mb3fmM4jenAR5idMj9Lq e2Ic9CA6l6fJRXmHDB/gHmK+IAz6S/ZLAS4pVzUO6Kll1ncndCvokajFysSYRYCBgJ wKx/A52X8enAT3Tk+v5pf9XORNaSaArcHHk5/WZi5IcYumlBTwiI3hTAdNJmWN00Ny I1ltKh3NXQAI93zsh7AX4zZXAStcKgO954zh8jlPGjfi0Z2srj9U0aTAWYMBO8dMQk HK89rztYx1dqg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9064CC982EE; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:47 +0200 Subject: [PATCH 04/11] drm/panel: s6e3ha8: Introduce AMB577PX01 panel compatible Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-4-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1322; i=david@ixit.cz; h=from:subject:message-id; bh=vNLA8ljeR4J/HqPCfoTtAaLLmwPmUGSGqujdb8X7JAM=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74ILPghpGdFk2JPKioQ/CBEKEUlRYPW8YCxR OabUG9VYbiJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CAAKCRBgAj/E00kg criHEACyex0p+sdn2RW0coN+uPAHjIF1Nex/5Ut0SRCiQak8JtdRY2rPccdKuV+Fx2vMf/hxwW3 vtNdETHNiKARn0KMVEAUltCQIZ4SI/e/8T8c94t/oeiGFzwOej8AaQ7O2s4RbRh4QbV4qme/qB2 5W+YK0Nk9/HC0jziYJUREDXmChSvtN5QBMJKOoLA9cXiy/C0zF8enBd9m/MBtN7uFLZDrM2CupR 2vzAL4SQ5TahFxyZNWmQISXJx3wFLhdcuL6L0wGkl0wO36dhV7Xybfp+zRoINtkooiWMoj8NVnX ayu3trGiLtsNqkMGhgn8Rr96OB4ez56UWrP79tCl84N5Z3TxuemfALA3EGDajqljptneSofmIDU cZ01utFMfAvy82fqWNx+efBLt1YXNREdPJhNFYnGzFLMFbDJvYkezEXuEAzZbCa61/PkAKo3gDX aRjeTETO5ZwIvciGFSP53cW5TMvx6sh2uKxYAeRsdIuLDx7vJ+v7vmWWcTc1MFfF2vF7TgL+QL3 r+E7P/d/vReuV0fmb/FbL+TnYw6Qd4UT1c1jvnw2U/BO9HyXWuE5wS4+ZZ3qDR1JH4XEoFL+x1S ls2TiR2tKsgK8wORCRePpomYwYGvIRP+UmDNCN0qqgUQbe5p+IHOcUSdBcf1CIQgsVhyobKjUMo vMH3Cv9xY6ecJPQ== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg S6E3HA8 is the DDIC, while the panel used on the Samsung Galaxy S9 is the Samsung AMB577PX01. Match on the new panel compatible, and keep the deprecated DDIC-only one working for existing devicetrees. Assisted-by: LLM Signed-off-by: David Heidelberg Reviewed-by: Neil Armstrong Reviewed-by: Petr Vorel --- drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c b/drivers/gpu/dr= m/panel/panel-samsung-s6e3ha8.c index 835121b322f4a..a0015ac0e2782 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c @@ -296,17 +296,18 @@ static int s6e3ha8_amb577px01_wqhd_probe(struct mipi_= dsi_device *dsi) dev_err(dev, "Failed to attach to DSI host: %d\n", ret); return ret; } =20 return 0; } =20 static const struct of_device_id s6e3ha8_amb577px01_wqhd_of_match[] =3D { - { .compatible =3D "samsung,s6e3ha8" }, + { .compatible =3D "samsung,s6e3ha8" }, /* deprecated */ + { .compatible =3D "samsung,s6e3ha8-amb577px01" }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, s6e3ha8_amb577px01_wqhd_of_match); =20 static struct mipi_dsi_driver s6e3ha8_amb577px01_wqhd_driver =3D { .probe =3D s6e3ha8_amb577px01_wqhd_probe, .driver =3D { .name =3D "panel-s6e3ha8", --=20 2.55.0 From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 325EF3F660D; Sun, 20 Sep 2026 11:05:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=D04FYhSD+Cv+Df97h4s9uR/I6RYO9NC814eXXN0U+BcgqakYkoizv3LebXU86yTea82KaE5UR9RvE8uN/Y6zC2XD2spRU+lcjsgyvpunYoZezi2CYW9yQcJYND/h9PpKWdc0SCnFUev8jusm5YUbgNbvVQJGgsgP1Y/OGcvZq2w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=iesTvPkxyQh89bUEG0hCAsFHQ6eqb5OOI7OSE2xuDZs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=d2gBIXdYSyDSRJ/iXgW2HKG8sswAoADO+4a7csjHWFm2ZzqnbkwlnyiLVYHLPIR1dbu1ZPllxiC4HTBs1Kx0BXBDq3SNWo/8avlnwJEvRoSYThCVz3K/k32Fximao/7MTXI45BCwHVbIFuL3SEmqdo1P80l60ysKfvgjYhKgyHo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=shTTqcqK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="shTTqcqK" Received: by smtp.kernel.org (Postfix) with ESMTPS id C2D08C2BCFD; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902347; bh=iesTvPkxyQh89bUEG0hCAsFHQ6eqb5OOI7OSE2xuDZs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=shTTqcqKqdDxGSPBt8aprcGF2Ew4AXu/khwVGj/tuFYntYqLs4PBx2AiRih9DQD7u 9OGzZ9P2fGrULEcrdLYZv7Pj0fEaJIaF+4ebfZmxgPJ1n9lgxNM1pnH479b7hCZ3Gq NcULYBjhtveIEtCADyi9MUqnHAWleE/Hd1kOc0FqN8wFYqLJ2b3dquRXChWdjQ2h0X x595SCvTulF45LJh8sYSTiFSVUI6RXazqeO2RFnsLwyP8J5/t8ddYFBA0D2QkBRtKm FR4P3be2b8NqKp1pxQ3G1muLwijepEhnnY1hDUTXV2eTjz2APMOOMy1/9LUC1v8bUg TaWXHHpme7WxA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6635C982E6; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:48 +0200 Subject: [PATCH 05/11] drm/panel: s6e3ha8: Prepare for supporting multiple panels Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-5-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=10546; i=david@ixit.cz; h=from:subject:message-id; bh=zeFP+joHP+5k+LadFbmnZIo2bqtEG343oPr8sOhGQEs=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74ImBSM36wrIzTbh/vEu0MmXbWEg7lSCdHbz 0Twa6cP8R+JAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CAAKCRBgAj/E00kg coXoEACktVNgeOpp+bWjgAeuNsCpaeN6X1mEcE4D3sI6bZdN0pisvzBG4+vN2TrAj1qK2ZIAsDf YIPaU3eXXCf++KCeET9SEVHPpivE6hp2XPITRGLGzMXnbqdFwy4AKj2YrVKowexVq5i3QZDRBi8 bb+OD6G4QmO/m4HTvu8jcnHhgyeBac8wN9DIPS0wTaNibSd0ADCoT7QW3PK/eG4i3wWL2JZ3pvM XlDLYL+KEQI54BYboH7up6QZGx0PEsY5bBAg9bsCKTx6s4h5xQ/uZ2epeg/dSOZKq+RA6EKpU+J oyqIuLB2+dN1qALtO1DKpHC27NlqqEPwjT9D63pCJ+V5Qinf32ftrb8wCPD8WgEawX9SE+dkcYN 81xJtwCHCiV0PGCl8vE/jOtTvU7HkgbiCD6x3/kpbeSgceOFxBxK218NYL9dgSYnaZ1qGlpuGko hvaDdsgL30ATLqpdTPksumVLfvsLG1sAcr8fU7vqk2j+rnu5BeRyNeTu/Vv6EdMOter+PMOuwK3 bi4l8jR9NukDl2ODucybdw7SP9mb9eyZMYOaCpLVB4bSyjKkdKXzQohM0NQpNkeYBhSFGqwy38u 651cMt0bJIEmFG7YTtnCqpMkPow/K9eOOhjlOHeIREW8mFxTpjGEku4hSF1C9ek4bgnQQgHgS0e /biCeDm/L2QPEPw== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg The S6E3HA8 DDIC drives more panels than the Galaxy S9 (AMB577PX01) one currently supported. Move the display mode, DSI mode flags, regulator supplies and panel functions into a per-compatible descriptor passed as OF match data, and rename the panel-specific symbols accordingly. No functional change. Assisted-by: LLM Signed-off-by: David Heidelberg Reviewed-by: Neil Armstrong --- drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c | 118 ++++++++++++++++------= ---- 1 file changed, 74 insertions(+), 44 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c b/drivers/gpu/dr= m/panel/panel-samsung-s6e3ha8.c index a0015ac0e2782..5e1e997b83b36 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c @@ -3,49 +3,73 @@ // Generated with linux-mdss-dsi-panel-driver-generator from vendor device= tree: // Copyright (c) 2013, The Linux Foundation. All rights reserved. // Copyright (c) 2024 Dzmitry Sankouski =20 #include #include #include #include +#include #include =20 #include #include #include #include #include =20 #include "panel-samsung-dsi.h" =20 +struct s6e3ha8_desc { + const struct drm_panel_funcs *funcs; + const struct drm_display_mode *mode; + unsigned long mode_flags; + const struct regulator_bulk_data *supplies; + unsigned int num_supplies; +}; + struct s6e3ha8 { struct drm_panel panel; struct mipi_dsi_device *dsi; + const struct s6e3ha8_desc *desc; struct drm_dsc_config dsc; struct gpio_desc *reset_gpio; struct regulator_bulk_data *supplies; }; =20 -static const struct regulator_bulk_data s6e3ha8_supplies[] =3D { +static const struct regulator_bulk_data s6e3ha8_vddr_supplies[] =3D { { .supply =3D "vdd3" }, { .supply =3D "vci" }, { .supply =3D "vddr" }, }; =20 -static inline -struct s6e3ha8 *to_s6e3ha8_amb577px01_wqhd(struct drm_panel *panel) +static inline struct s6e3ha8 *to_s6e3ha8(struct drm_panel *panel) { return container_of(panel, struct s6e3ha8, panel); } =20 #define s6e3ha8_afc_off(ctx) \ mipi_dsi_dcs_write_seq_multi(ctx, 0xe2, 0x00, 0x00) =20 +static int s6e3ha8_get_modes(struct drm_panel *panel, + struct drm_connector *connector) +{ + struct s6e3ha8 *priv =3D to_s6e3ha8(panel); + + return drm_connector_helper_get_modes_fixed(connector, priv->desc->mode); +} + +static int s6e3ha8_unprepare(struct drm_panel *panel) +{ + struct s6e3ha8 *priv =3D to_s6e3ha8(panel); + + return regulator_bulk_disable(priv->desc->num_supplies, priv->supplies); +} + static void s6e3ha8_amb577px01_wqhd_reset(struct s6e3ha8 *priv) { gpiod_set_value_cansleep(priv->reset_gpio, 1); usleep_range(5000, 6000); gpiod_set_value_cansleep(priv->reset_gpio, 0); usleep_range(5000, 6000); gpiod_set_value_cansleep(priv->reset_gpio, 1); usleep_range(5000, 6000); @@ -130,32 +154,32 @@ static int s6e3ha8_amb577px01_wqhd_on(struct s6e3ha8 = *priv) mipi_dsi_dcs_write_seq_multi(&ctx, 0xf7, 0x03); /* Gamma, LTPS(AID) updat= e */ samsung_dsi_test_key_off_lvl2(&ctx); =20 samsung_dsi_test_key_off_lvl1(&ctx); =20 return ctx.accum_err; } =20 -static int s6e3ha8_enable(struct drm_panel *panel) +static int s6e3ha8_amb577px01_wqhd_enable(struct drm_panel *panel) { - struct s6e3ha8 *priv =3D to_s6e3ha8_amb577px01_wqhd(panel); + struct s6e3ha8 *priv =3D to_s6e3ha8(panel); struct mipi_dsi_device *dsi =3D priv->dsi; struct mipi_dsi_multi_context ctx =3D { .dsi =3D dsi }; =20 samsung_dsi_test_key_on_lvl1(&ctx); mipi_dsi_dcs_set_display_on_multi(&ctx); samsung_dsi_test_key_off_lvl1(&ctx); =20 return ctx.accum_err; } =20 -static int s6e3ha8_disable(struct drm_panel *panel) +static int s6e3ha8_amb577px01_wqhd_disable(struct drm_panel *panel) { - struct s6e3ha8 *priv =3D to_s6e3ha8_amb577px01_wqhd(panel); + struct s6e3ha8 *priv =3D to_s6e3ha8(panel); struct mipi_dsi_device *dsi =3D priv->dsi; struct mipi_dsi_multi_context ctx =3D { .dsi =3D dsi }; =20 samsung_dsi_test_key_on_lvl1(&ctx); mipi_dsi_dcs_set_display_off_multi(&ctx); samsung_dsi_test_key_off_lvl1(&ctx); mipi_dsi_msleep(&ctx, 20); =20 @@ -165,23 +189,23 @@ static int s6e3ha8_disable(struct drm_panel *panel) =20 mipi_dsi_msleep(&ctx, 160); =20 return ctx.accum_err; } =20 static int s6e3ha8_amb577px01_wqhd_prepare(struct drm_panel *panel) { - struct s6e3ha8 *priv =3D to_s6e3ha8_amb577px01_wqhd(panel); + struct s6e3ha8 *priv =3D to_s6e3ha8(panel); struct mipi_dsi_device *dsi =3D priv->dsi; struct mipi_dsi_multi_context ctx =3D { .dsi =3D dsi }; struct drm_dsc_picture_parameter_set pps; int ret; =20 - ret =3D regulator_bulk_enable(ARRAY_SIZE(s6e3ha8_supplies), priv->supplie= s); + ret =3D regulator_bulk_enable(priv->desc->num_supplies, priv->supplies); if (ret < 0) return ret; mipi_dsi_msleep(&ctx, 120); s6e3ha8_amb577px01_wqhd_reset(priv); =20 ret =3D s6e3ha8_amb577px01_wqhd_on(priv); if (ret < 0) { gpiod_set_value_cansleep(priv->reset_gpio, 0); @@ -193,88 +217,88 @@ static int s6e3ha8_amb577px01_wqhd_prepare(struct drm= _panel *panel) samsung_dsi_test_key_on_lvl1(&ctx); mipi_dsi_picture_parameter_set_multi(&ctx, &pps); samsung_dsi_test_key_off_lvl1(&ctx); =20 mipi_dsi_msleep(&ctx, 28); =20 return ctx.accum_err; err: - regulator_bulk_disable(ARRAY_SIZE(s6e3ha8_supplies), priv->supplies); + regulator_bulk_disable(priv->desc->num_supplies, priv->supplies); return ret; } =20 -static int s6e3ha8_amb577px01_wqhd_unprepare(struct drm_panel *panel) -{ - struct s6e3ha8 *priv =3D to_s6e3ha8_amb577px01_wqhd(panel); - - return regulator_bulk_disable(ARRAY_SIZE(s6e3ha8_supplies), priv->supplie= s); -} - static const struct drm_display_mode s6e3ha8_amb577px01_wqhd_mode =3D { .clock =3D (1440 + 116 + 44 + 120) * (2960 + 120 + 80 + 124) * 60 / 1000, .hdisplay =3D 1440, .hsync_start =3D 1440 + 116, .hsync_end =3D 1440 + 116 + 44, .htotal =3D 1440 + 116 + 44 + 120, .vdisplay =3D 2960, .vsync_start =3D 2960 + 120, .vsync_end =3D 2960 + 120 + 80, .vtotal =3D 2960 + 120 + 80 + 124, .width_mm =3D 64, .height_mm =3D 132, }; =20 -static int s6e3ha8_amb577px01_wqhd_get_modes(struct drm_panel *panel, - struct drm_connector *connector) -{ - return drm_connector_helper_get_modes_fixed(connector, &s6e3ha8_amb577px0= 1_wqhd_mode); -} - static const struct drm_panel_funcs s6e3ha8_amb577px01_wqhd_panel_funcs = =3D { .prepare =3D s6e3ha8_amb577px01_wqhd_prepare, - .unprepare =3D s6e3ha8_amb577px01_wqhd_unprepare, - .get_modes =3D s6e3ha8_amb577px01_wqhd_get_modes, - .enable =3D s6e3ha8_enable, - .disable =3D s6e3ha8_disable, + .unprepare =3D s6e3ha8_unprepare, + .get_modes =3D s6e3ha8_get_modes, + .enable =3D s6e3ha8_amb577px01_wqhd_enable, + .disable =3D s6e3ha8_amb577px01_wqhd_disable, +}; + +static const struct s6e3ha8_desc s6e3ha8_amb577px01_wqhd_desc =3D { + .funcs =3D &s6e3ha8_amb577px01_wqhd_panel_funcs, + .mode =3D &s6e3ha8_amb577px01_wqhd_mode, + .mode_flags =3D MIPI_DSI_CLOCK_NON_CONTINUOUS | + MIPI_DSI_MODE_VIDEO_NO_HFP | MIPI_DSI_MODE_VIDEO_NO_HBP | + MIPI_DSI_MODE_VIDEO_NO_HSA | MIPI_DSI_MODE_NO_EOT_PACKET, + .supplies =3D s6e3ha8_vddr_supplies, + .num_supplies =3D ARRAY_SIZE(s6e3ha8_vddr_supplies), }; =20 -static int s6e3ha8_amb577px01_wqhd_probe(struct mipi_dsi_device *dsi) +static int s6e3ha8_probe(struct mipi_dsi_device *dsi) { struct device *dev =3D &dsi->dev; + const struct s6e3ha8_desc *desc; struct s6e3ha8 *priv; int ret; =20 - priv =3D devm_drm_panel_alloc(dev, struct s6e3ha8, panel, - &s6e3ha8_amb577px01_wqhd_panel_funcs, + desc =3D device_get_match_data(dev); + if (!desc) + return -ENODEV; + + priv =3D devm_drm_panel_alloc(dev, struct s6e3ha8, panel, desc->funcs, DRM_MODE_CONNECTOR_DSI); if (IS_ERR(priv)) return PTR_ERR(priv); =20 - ret =3D devm_regulator_bulk_get_const(dev, ARRAY_SIZE(s6e3ha8_supplies), - s6e3ha8_supplies, - &priv->supplies); + priv->desc =3D desc; + + ret =3D devm_regulator_bulk_get_const(dev, desc->num_supplies, + desc->supplies, &priv->supplies); if (ret < 0) { dev_err(dev, "failed to get regulators: %d\n", ret); return ret; } =20 priv->reset_gpio =3D devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(priv->reset_gpio)) return dev_err_probe(dev, PTR_ERR(priv->reset_gpio), "Failed to get reset-gpios\n"); =20 priv->dsi =3D dsi; mipi_dsi_set_drvdata(dsi, priv); =20 dsi->lanes =3D 4; dsi->format =3D MIPI_DSI_FMT_RGB888; - dsi->mode_flags =3D MIPI_DSI_CLOCK_NON_CONTINUOUS | - MIPI_DSI_MODE_VIDEO_NO_HFP | MIPI_DSI_MODE_VIDEO_NO_HBP | - MIPI_DSI_MODE_VIDEO_NO_HSA | MIPI_DSI_MODE_NO_EOT_PACKET; + dsi->mode_flags =3D priv->desc->mode_flags; =20 priv->panel.prepare_prev_first =3D true; =20 ret =3D devm_drm_panel_add(dev, &priv->panel); if (ret) return ret; =20 /* This panel only supports DSC; unconditionally enable it */ @@ -295,27 +319,33 @@ static int s6e3ha8_amb577px01_wqhd_probe(struct mipi_= dsi_device *dsi) if (ret < 0) { dev_err(dev, "Failed to attach to DSI host: %d\n", ret); return ret; } =20 return 0; } =20 -static const struct of_device_id s6e3ha8_amb577px01_wqhd_of_match[] =3D { - { .compatible =3D "samsung,s6e3ha8" }, /* deprecated */ - { .compatible =3D "samsung,s6e3ha8-amb577px01" }, +static const struct of_device_id s6e3ha8_of_match[] =3D { + { + /* deprecated */ + .compatible =3D "samsung,s6e3ha8", + .data =3D &s6e3ha8_amb577px01_wqhd_desc, + }, { + .compatible =3D "samsung,s6e3ha8-amb577px01", + .data =3D &s6e3ha8_amb577px01_wqhd_desc, + }, { /* sentinel */ } }; -MODULE_DEVICE_TABLE(of, s6e3ha8_amb577px01_wqhd_of_match); +MODULE_DEVICE_TABLE(of, s6e3ha8_of_match); =20 -static struct mipi_dsi_driver s6e3ha8_amb577px01_wqhd_driver =3D { - .probe =3D s6e3ha8_amb577px01_wqhd_probe, +static struct mipi_dsi_driver s6e3ha8_driver =3D { + .probe =3D s6e3ha8_probe, .driver =3D { .name =3D "panel-s6e3ha8", - .of_match_table =3D s6e3ha8_amb577px01_wqhd_of_match, + .of_match_table =3D s6e3ha8_of_match, }, }; -module_mipi_dsi_driver(s6e3ha8_amb577px01_wqhd_driver); +module_mipi_dsi_driver(s6e3ha8_driver); =20 MODULE_AUTHOR("Dzmitry Sankouski "); MODULE_DESCRIPTION("DRM driver for S6E3HA8 panel"); MODULE_LICENSE("GPL"); --=20 2.55.0 From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31B543F5BFC; Sun, 20 Sep 2026 11:05:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=NY4yuDi61NgfHt8BsNUtYTvCs/DbPAKbTB4x5c9mzJoZsMCgMLbUsdP3oHs/mjTnnGVgWfIrstCw34qsAoEijxM1/d/nXeL8sKBQQnZ9koPeV5WzZAwBcKluvZZUJqFk+2RQ2MFYYGa3mDk79Vbsk4bqf19/eFqJAwsvDMFYoZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=3H2pMXYIq5KO7FHqZw9wKd/DjXNREZNrATkmgbsSzwo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pjtv5aH0kJpNGZJlZ3WuvFDtXFiyn5ibMNauO0gbIUgmw//i2EKHzXuOlFGknKjZa4XGJ0Yv54N3wK8ujt46E6Ch8eeq/3oH+MVrnwbwzpD/9eFna8hBkAufGWkjL6rsgMyBcef709CgNmdIJv42EtMoru+NcLqKQc44kJ0grDY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hRWhTX23; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hRWhTX23" Received: by smtp.kernel.org (Postfix) with ESMTPS id CBEBDC2BD01; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902347; bh=3H2pMXYIq5KO7FHqZw9wKd/DjXNREZNrATkmgbsSzwo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=hRWhTX23NXNkuPWkr5arhFxyy8SeEqKbzqQnhBXWozEYIfG/CbBXwNaJkU1KS8YQh mq/l1Y2n6tN6QYctE40Kbm6CjpaELubsfXiR8Z57/zt1FIVhCP+IESM8ysMXYqwUbr 1K2MuvvH/oD/WoGvskXpIzcsPyuWMMFY0Ugb1KvDO23MWcsNtZP5vnDRISaQXGfR3X +gACvLWdN7dLeXcBtnqjS04dkQLi0ONmjpyrKKoJ2m0hWUT4AE1K7dgQyO8lG2aNDB bl7vCn6PrtW5PHal02LdGGnebIyeTJvqqpHAnH/6HWF1rutrKlF1AtOJ8UOfzDu3UT tfjXFrZBjxhKg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B954BC982EA; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:49 +0200 Subject: [PATCH 06/11] drm/panel: s6e3ha8: Correct the polarity logic within Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-6-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5025; i=david@ixit.cz; h=from:subject:message-id; bh=AsLGrTHDZPEXKoKc7cmkn4LGk3BpbMWpzP4RRT1AZKs=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74Ik6jhQIxCLyINs++12HHsExGaAdOsDegp9 L3eRwdp4PiJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CAAKCRBgAj/E00kg chc4D/9MAFz1chlHPHhVV9Zy+6nXJddT5EHau7i7jDCaFiuCat2ElNMGPTpLPko+NtOQoUlRJGb 9Cz2HDCbuu1O9J/kjCn33uFpzk3XRai19Rf8VpGqXEgR7LQQ0+LXp6RKAYiO6MFvoPCTrt+wia1 kvinZcNseQXGo+rSwcmHx4MKz/DjxR6A7BDz/V9iJd98FNw4A/VHw5b2Qe737XHPjMWmmGN25mT uc0CpDQbTexTP5fkccvJ5GkaX10HVPuB5YV0w/f5/mmkKuMnrs7IQtWccJ5KmLgenKOMzPcydr4 LvUC1v5Lm9nWO1AuXWo9JC0/rU6rTuWbyC6Eirby1oYSn+QyNwDGU1uRkpYicZsGwv+P0r1KTDL Pt2mXvNjPn1xXOjbA+cRwL1bGejDxLHPnXdJoUvFeRcVxmsD8U4g9NXX6T++3NLQO1DkHerpQ37 42NfTJ4qLqgIckII8UzLgbl87Nc6exFAreo9ga6mBGq/HZ6TwsgVRmOEd9y1hUoa4yjgT/O9J7T kh+igfAjcMAMDRUP1eU5sz47yvEs/VV/kXDa6et1UCvjddyofb6SWuPLpOJXB+NS7ftbg9xT6X5 ZPHWXBIr61wM6WFiyxbJJPcQGfOh/lG1xfoUGC61WsAoc46pHK2AXLSrg5Z6/aqquUeDohPzL6w uNMOfsubDkNOxYQ== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg The reset was introduced with wrong polarity. Correct for the future compatibles and keep current with reverted logic. Old DTs keep GPIO_ACTIVE_HIGH and are fixed up via gpiod_toggle_active_low() on the deprecated compatible. Assisted-by: LLM Signed-off-by: David Heidelberg Reviewed-by: Neil Armstrong --- drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c b/drivers/gpu/dr= m/panel/panel-samsung-s6e3ha8.c index 5e1e997b83b36..99290913de69a 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c @@ -20,16 +20,17 @@ #include "panel-samsung-dsi.h" =20 struct s6e3ha8_desc { const struct drm_panel_funcs *funcs; const struct drm_display_mode *mode; unsigned long mode_flags; const struct regulator_bulk_data *supplies; unsigned int num_supplies; + bool broken_reset_polarity; }; =20 struct s6e3ha8 { struct drm_panel panel; struct mipi_dsi_device *dsi; const struct s6e3ha8_desc *desc; struct drm_dsc_config dsc; struct gpio_desc *reset_gpio; @@ -62,22 +63,22 @@ static int s6e3ha8_unprepare(struct drm_panel *panel) { struct s6e3ha8 *priv =3D to_s6e3ha8(panel); =20 return regulator_bulk_disable(priv->desc->num_supplies, priv->supplies); } =20 static void s6e3ha8_amb577px01_wqhd_reset(struct s6e3ha8 *priv) { - gpiod_set_value_cansleep(priv->reset_gpio, 1); - usleep_range(5000, 6000); gpiod_set_value_cansleep(priv->reset_gpio, 0); usleep_range(5000, 6000); gpiod_set_value_cansleep(priv->reset_gpio, 1); usleep_range(5000, 6000); + gpiod_set_value_cansleep(priv->reset_gpio, 0); + usleep_range(5000, 6000); } =20 static int s6e3ha8_amb577px01_wqhd_on(struct s6e3ha8 *priv) { struct mipi_dsi_device *dsi =3D priv->dsi; struct mipi_dsi_multi_context ctx =3D { .dsi =3D dsi }; =20 dsi->mode_flags |=3D MIPI_DSI_MODE_LPM; @@ -203,17 +204,17 @@ static int s6e3ha8_amb577px01_wqhd_prepare(struct drm= _panel *panel) ret =3D regulator_bulk_enable(priv->desc->num_supplies, priv->supplies); if (ret < 0) return ret; mipi_dsi_msleep(&ctx, 120); s6e3ha8_amb577px01_wqhd_reset(priv); =20 ret =3D s6e3ha8_amb577px01_wqhd_on(priv); if (ret < 0) { - gpiod_set_value_cansleep(priv->reset_gpio, 0); + gpiod_set_value_cansleep(priv->reset_gpio, 1); goto err; } =20 drm_dsc_pps_payload_pack(&pps, &priv->dsc); =20 samsung_dsi_test_key_on_lvl1(&ctx); mipi_dsi_picture_parameter_set_multi(&ctx, &pps); samsung_dsi_test_key_off_lvl1(&ctx); @@ -243,16 +244,27 @@ static const struct drm_display_mode s6e3ha8_amb577px= 01_wqhd_mode =3D { static const struct drm_panel_funcs s6e3ha8_amb577px01_wqhd_panel_funcs = =3D { .prepare =3D s6e3ha8_amb577px01_wqhd_prepare, .unprepare =3D s6e3ha8_unprepare, .get_modes =3D s6e3ha8_get_modes, .enable =3D s6e3ha8_amb577px01_wqhd_enable, .disable =3D s6e3ha8_amb577px01_wqhd_disable, }; =20 +static const struct s6e3ha8_desc s6e3ha8_amb577px01_wqhd_desc_legacy =3D { + .funcs =3D &s6e3ha8_amb577px01_wqhd_panel_funcs, + .mode =3D &s6e3ha8_amb577px01_wqhd_mode, + .mode_flags =3D MIPI_DSI_CLOCK_NON_CONTINUOUS | + MIPI_DSI_MODE_VIDEO_NO_HFP | MIPI_DSI_MODE_VIDEO_NO_HBP | + MIPI_DSI_MODE_VIDEO_NO_HSA | MIPI_DSI_MODE_NO_EOT_PACKET, + .supplies =3D s6e3ha8_vddr_supplies, + .num_supplies =3D ARRAY_SIZE(s6e3ha8_vddr_supplies), + .broken_reset_polarity =3D true, +}; + static const struct s6e3ha8_desc s6e3ha8_amb577px01_wqhd_desc =3D { .funcs =3D &s6e3ha8_amb577px01_wqhd_panel_funcs, .mode =3D &s6e3ha8_amb577px01_wqhd_mode, .mode_flags =3D MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_VIDEO_NO_HFP | MIPI_DSI_MODE_VIDEO_NO_HBP | MIPI_DSI_MODE_VIDEO_NO_HSA | MIPI_DSI_MODE_NO_EOT_PACKET, .supplies =3D s6e3ha8_vddr_supplies, .num_supplies =3D ARRAY_SIZE(s6e3ha8_vddr_supplies), @@ -283,16 +295,19 @@ static int s6e3ha8_probe(struct mipi_dsi_device *dsi) return ret; } =20 priv->reset_gpio =3D devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(priv->reset_gpio)) return dev_err_probe(dev, PTR_ERR(priv->reset_gpio), "Failed to get reset-gpios\n"); =20 + if (priv->desc->broken_reset_polarity) + gpiod_toggle_active_low(priv->reset_gpio); + priv->dsi =3D dsi; mipi_dsi_set_drvdata(dsi, priv); =20 dsi->lanes =3D 4; dsi->format =3D MIPI_DSI_FMT_RGB888; dsi->mode_flags =3D priv->desc->mode_flags; =20 priv->panel.prepare_prev_first =3D true; @@ -323,17 +338,17 @@ static int s6e3ha8_probe(struct mipi_dsi_device *dsi) =20 return 0; } =20 static const struct of_device_id s6e3ha8_of_match[] =3D { { /* deprecated */ .compatible =3D "samsung,s6e3ha8", - .data =3D &s6e3ha8_amb577px01_wqhd_desc, + .data =3D &s6e3ha8_amb577px01_wqhd_desc_legacy, }, { .compatible =3D "samsung,s6e3ha8-amb577px01", .data =3D &s6e3ha8_amb577px01_wqhd_desc, }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, s6e3ha8_of_match); =20 --=20 2.55.0 From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 343D03F660E; Sun, 20 Sep 2026 11:05:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=qx+gg2HtKUv6RTWGCa/6vNHEsdzrqKj/CqtN67rKpNrdmfo3QvpMUkyc29l9Nm2+lMeY4REUHabBhVF/bPoUI9PNVrwZm5HLDXsxV4Eq6X107hdCiCH9vDVaR9fFYZkuEjEKBdt9TeIw7hv+K5SsdKhvaTJxYwXM2sA8DOXoxaY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=ieVb6H735tCmYSLUV9i+yDFAU2NPi3u6MYYeNLsO/Tg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cVpvMNbevH4hUKOHunVwMzsSOwXzDqA6rLuacn/R9gTJoV+foywYlkXeyBNLU7u0RLtu6ar9m1UYADCakbc7aCGmNch2SHZbtu5YClzz5UjExG2C4klCkyRRsiUAkjdu+Enl+yQBYtX0OcOAjx5gy466AuHQjZwpJgwGiR9OeUw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bbLqzdlU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bbLqzdlU" Received: by smtp.kernel.org (Postfix) with ESMTPS id DC629C2BCFA; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902347; bh=ieVb6H735tCmYSLUV9i+yDFAU2NPi3u6MYYeNLsO/Tg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=bbLqzdlUuZoRyvHWhykwfg8Eptt9k/QEyG5E8Tr+dJmg1l+TQxJBCHZjks/eIGC9T 1+HzMaSdtYVepOdozabFPGdvnOLoqZKcl6PL1X6f4+45sNAS1YcVQb3sNnZN3CzvbL LSyishR0w/0Pj/fUHdluOqY9NairvA4/3HRhaDBUvYAXAC6Ab7ii0F3HiiwHDnq9O0 r8uT3YO5FOYpMcGhQA7TC58i5ws3naO3AJDjQWO0m2Ea54mGKoR0//lXl69xHrJA+q 2ZGKA3iEh1u5K8xLNxCkneRm9T5NMt9yWdpodLkYngdMaYV/7cWQ60GORCf9HX9D0k 8Bexmla3HQ7+A== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA3A8C982EB; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:50 +0200 Subject: [PATCH 07/11] drm/panel: s6e3ha8: Assert reset GPIO in unprepare Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-7-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1090; i=david@ixit.cz; h=from:subject:message-id; bh=20U0ozvap504c/y7dNH03jLGzPdtj7FO3ci7Ov7l9BM=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74JI29ZlFwOBeivI0xUK4KNDr/fR/lUt5sf2 hCXgwI+aeqJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CQAKCRBgAj/E00kg cgMTEACRs0Ec5QPTNCucUsDUMH1a7vXMyWNR1q0yN2AJ8JYiGI7kOInveX4aUpekPi4Y8fgGaRe 7zMV2r9Hmnt/dZb01vKzEuy0iOiho28I0qeAbu6moijMbG3zNn6zgeP1ygAfUbKtzpdOoS+kZRf isTe/tSQpKqmAkxi6DPrPpZRzOl7eb4aKXJ9/E/NyTUJH8/KYe5pTCjxuc3s28tyYnbFx+E0zH/ oB9eCLwYVrMYMbM3yHcjLQnavaD/X26gUmsw7yBpzSLX59pGrM8dx6+tMD3ALQIWhaCSBFse1uu 1TL4xCnRaOphcsDC1QR0waG1iqp2i8mw4DD7KJIIx54eFv3k+8vFiZFo4CqJG4skI+KSLSs9Zu0 aSBfvZXEUCFJya1ep499H3HopH4FgxGqq8tjeNYIR7dRrb9hFq1e5TbQNSuWYsugbaAy6uttxdE 62uZa5QU8wmJSB4CamU8BiwPR52NV75vZ/O/mY9s2dRN0ApJsPWnhmo1pD50pmLuII4ByBimWWw MdnrlnTY4tNcfaHN171klb7yTJF2kiHu0hWEaPhEkXXgPB44CO3WcaK9nP6aN2H19rcppaGjxLP igf3oXxaie0G1r9LwYFd7on0npkjUfM/HBx090E+QjsUVeuG3kXPcUOuML7osXYMbrXT7FA7n08 d+KAl0IMaUBl6mA== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg For correct shutdown, the reset should be asserted. Assisted-by: LLM Signed-off-by: David Heidelberg Reviewed-by: Neil Armstrong --- drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c b/drivers/gpu/dr= m/panel/panel-samsung-s6e3ha8.c index 99290913de69a..2591b8c1a7753 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c @@ -58,16 +58,17 @@ static int s6e3ha8_get_modes(struct drm_panel *panel, =20 return drm_connector_helper_get_modes_fixed(connector, priv->desc->mode); } =20 static int s6e3ha8_unprepare(struct drm_panel *panel) { struct s6e3ha8 *priv =3D to_s6e3ha8(panel); =20 + gpiod_set_value_cansleep(priv->reset_gpio, 1); return regulator_bulk_disable(priv->desc->num_supplies, priv->supplies); } =20 static void s6e3ha8_amb577px01_wqhd_reset(struct s6e3ha8 *priv) { gpiod_set_value_cansleep(priv->reset_gpio, 0); usleep_range(5000, 6000); gpiod_set_value_cansleep(priv->reset_gpio, 1); --=20 2.55.0 From nobody Sat Sep 26 00:30:47 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34EC03F788D; Sun, 20 Sep 2026 11:05:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; cv=none; b=khSI7WHg/dvQYzoM1fNct41CFLFBMrGGZ+OWWDtUTwM1equjH1jo0opiYm45KgD0pfwprvZVtgvswd3FGgRluz5Phbk+kdFr+bV4vCGH0SEG4lr4v2hjHcuHAbafgC7+Fl9pB+GxKblkauMUxl0/0PK9Pe6AHjTOCNOpT/wXH20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902348; c=relaxed/simple; bh=LqV447XCmdN0/gZuZcj+T3gfCCLbu7OkM1t+ZYM5a78=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BoiZCnYfXXCAL2H5DAkoK2KCIXYhjF464etFsLV8AMO0AgYuelIxPeTY1jLH4KMBmb92VmNllP7UTKSSgTq6mFGOT84mmAUWZclXWz1ZDtg4xKKUzlp/cSeJNP846dDX1D8qR1oY3YAhKbjkos577+k/8PGAwT1Oevyz55bEBPo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nhHZivE5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nhHZivE5" Received: by smtp.kernel.org (Postfix) with ESMTPS id EE5D2C32786; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789902348; bh=LqV447XCmdN0/gZuZcj+T3gfCCLbu7OkM1t+ZYM5a78=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=nhHZivE5Sk86heHnf4bGGw3VJ4bFNF1MZZoKSmvleGEn3a7AjkIg7m3Ml5n7Co6ld OsPFb11zRXprEOstQVuaBNLJYVCwFZDcdk3nIfI+8dagKYehr70UEh/Ohn4i3a/aDW LV1aAAiEMn6OW9C275n7zrpGtOZWmnqeYPBtNajslY6IN2E7pIsgCE7Gat1ejuFtA6 zrt1zKoBQcnfc5By9fpsZPYeD+O+6/L1byZMtSUlCgsRQTzp0IFLlDEY/G+NI3bBrw HZ8cHoXyG6yLEQpA/UaOAb1zfAqfNCrHjCxdCICqt2CKFF9SKbej8LQ7+UQpAFPn00 40TiMNwJHJ6vg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB0A3C982ED; Sun, 20 Sep 2026 11:05:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sun, 20 Sep 2026 13:05:51 +0200 Subject: [PATCH 08/11] drm/panel: s6e3ha8: add Samsung AMB630QY01 (Google Pixel 3 XL) panel Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-crosshatch-panel-v1-8-de6e9512da96@ixit.cz> References: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> In-Reply-To: <20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz> To: Dzmitry Sankouski , Neil Armstrong , Jessica Zhang , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Abel Vesa Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=10336; i=david@ixit.cz; h=from:subject:message-id; bh=lE2aNutv8i9DWJQD8Rm1+oupUbB8b9KVhavvt76t5Gg=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqr74JkPuNohc3B6Pc/X1KpTsTto08XODGsIzAZ uypFoF4odaJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaq++CQAKCRBgAj/E00kg cvS8D/9cMD+xI64wVSiO+sGkkN+ZvwP5I+elX5AkKYuO5YPs47b4JdL/KoK/Rh6NM5T2UMErO/Q Js4Kw6ERjHgLAkfhHxV/LGzpAGViJ+yg/XYmTgj8Yoo4ZmEtNmazgQ5IpsvomoGem/MWDDMGQHL 70scJTOB89cHDXYXeExoPGqMGdjWwwmu6LCXfIDb5yokN6/j848uFxASCCdoy63apnKONcOeXpy HKpq7po+83gHSL8jyPIFZdPvTWKZPFIworkx2xL8ynmoDhEJSB5rIKmPyHAdN603eLErLVSIVoV ysLL3w5IWD2xAl+EN46Gc2SofBAMWpEeLuqK40+jjxrRyUDR1EvCvmFiJNLSUY0gW0RGkeJTN6e DZnDa26T+EL7nKRYZzyZEpDVuApOXREQ66G0YnS92GPv1Oaed2A8LaO/jP0GCcg2HvJKtEQTFO5 c9JLzfCBhnYH/o/lC8Nu8hKw8DSVwLN29HZ4fFn2/5DHk5XDjbnr/FKAL2Aah1AOd6VtIssGSnp ge5G1ko6ztl9etqIt0nQFIuxxm41lLW0CDaGX7UKzzgo+Eji0NbU67gZPOXLdfcjJ1VSwhjKeXk DNCHweXbsvT5bRSyxz4wpJFb4bpiDxAHzTFA+FD2UcTLYqeWpWT0GySOJJ3lI5TjkyfxAcQBmq9 Y29m3/M9MVV5CLg== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg The Google Pixel 3 XL (crosshatch) uses a Samsung AMB630QY01 6.3" 1440x2960 flexible AMOLED panel, driven by the same S6E3HA8 DDIC as the Galaxy S9 panel this driver already supports. The init/teardown sequences and timings are taken from the downstream dsi-panel-s6e3ha8-dsc-wqhd-cmd.dtsi (Google bluecross kernel). The downstream DSI host neither appends EOT packets nor keeps the clock lane in HS, so mirror that with the corresponding mode flags, and set the RAM window explicitly since the kernel DSI host never sends the column/page addresses the downstream one does. Unlike the S9 panel, brightness is controlled with standard DCS commands (10-bit), so register a backlight device for it. Brightness readback is intentionally not implemented: DCS reads wedge the DSI host command engine and take the display pipeline down with it. Cosmtetics: update Copyright header and add myself. Assisted-by: LLM Signed-off-by: David Heidelberg Reviewed-by: Neil Armstrong --- drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c | 173 ++++++++++++++++++++++= +++- 1 file changed, 168 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c b/drivers/gpu/dr= m/panel/panel-samsung-s6e3ha8.c index 2591b8c1a7753..e02f1d9f0dcd0 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c @@ -1,36 +1,42 @@ // SPDX-License-Identifier: GPL-2.0-only -// -// Generated with linux-mdss-dsi-panel-driver-generator from vendor device= tree: -// Copyright (c) 2013, The Linux Foundation. All rights reserved. -// Copyright (c) 2024 Dzmitry Sankouski - +/* + * Generated with linux-mdss-dsi-panel-driver-generator from vendor device= tree: + * Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Copyright (c) 2024 Dzmitry Sankouski + * Copyright David Heidelberg + */ + +#include #include #include #include #include #include #include =20 +#include