From nobody Sat Sep 26 00:30:35 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 11F1E37BE95; Thu, 24 Sep 2026 14:01:35 +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=1790258496; cv=none; b=Todf/hrFp0LqrS/L4HpTgFwusdM6bds9sXz2LH5It/m3WFhhZAuwDqF4Sqm4qIdIdmRmKwFeR3cTc+3ullqXhuIDIpjeMol27H+tql2vw2j26EOK/9qsD67y2KyFF7tQKBlVQrfjbgteqqUwvGZmXkgdbyk2OcgYdQl58iQZh1M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=6PmAGXZV+htq2Tef1xnLisdfXtwtLDKNBf1RrXQoeO4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IBoHXbSEmIGUZEmmwGjUlcTGL3NH0cSgW2lOGHOarZ7jN/u2WFWgOn+7yC94JeJzowsYz+BRH0bC6W9vdk+J0s4DhGLOfepHxbVuyCF3YrANBS2DKvl0IRGYb0Guy1neus+21yeULF8M1sNLM5zaeUQwF7nTZ5HyiFiArhHtlE8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BPLrtG2/; 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="BPLrtG2/" Received: by smtp.kernel.org (Postfix) with ESMTPS id AD6E4C2BCF7; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258495; bh=6PmAGXZV+htq2Tef1xnLisdfXtwtLDKNBf1RrXQoeO4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=BPLrtG2/n056+Jb5PFyzXY9QteDff8B40LDBrAUkBfdXcffbQXtc8qyWtVeQbrQNx 0k/6CE//vkK3psMxdCexWSYhU8iLOAT2CQCkdbljrdO9MPT7Q7u+Cqmdhq/Aw00OdU +C3s2TsqdDGs6v3O0mhD+LaWG94SAbB3QI4dzqOM8ySFmGAMP2n88VQxdvbGSnrzJk R2qWaP/tPngxtrMyLJsn6bTDm7cTRIWP59yJz3DS/MfEouwzNXv6IGbyI/EfRQUofl NdbuZUkwJcfMsN1eKVs8dlNS0HG1FFlgdSWx/ni9MvcrWgsKjPGX7bzm6Q3FXOHDMj I32/Iy3uZY5GQ== 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 86E65C9830E; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:29 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-1-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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/ZANAwAIAWACP8TTSSByAcsmYgBqtS08/0Ibx+l0MD7D3DFphX2S4KX3arhT8rBXB gZtcDJygcyJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPAAKCRBgAj/E00kg csSUD/42gW8JST620vtaKHrsRapj7FtT6Ohl4snD6nlFzcA9pBHWzZcgeewV4KvWP3K6rbq6QO+ Rqx2DO2lOSSSr6PTzoK7NcflkYPDy4ORZ88KDIJeHw3lVy+I14OhRP/t+mI0w1J0VzCG2YB2nh5 mcPZS7JzT0rwe0UjV3idwMt7wIrg1TDWulKxMxMPcj6fEeug8nPMyZbghSiWydC6rsVFZrMLPYr zDVODBb6gejQNkgB1DP3YVQCnu8yP7GWbwRBEZ5w3sCOu/8w/43YwgX1rilR+KVYJwAgrX7WE6L TI4/RVArxJGf3C9c4YeADqp1g4fS9l68QxFhKf+NrfKuAQLAKKW+hu85ui2etZtOH/9ZWAWjYb/ z4N9mDPqmwG9i82Nw8okAVNa9EC5qrS1XDHb3QP2TA3GRyyr0OtLEPd6yuC3dqeVmrCmO94s78D cj2YDG6hFxp3JPQ+H/vEDdMPUBQ02tl0bBYx7IKm7ytlLo+ka9gXAnDyPQLZ4HPZUhi1uVJUZTS CD34uWsCijPtk9phIUjbZPc86fvckdx22YteBwzAH+M7gi1h4fRQg84DrRrrO7G087cjOmUNHzX iNoyN3XwcJswsKAJdnpfITpUoPCabR6AFx5XCKCls3eUT+5QDX194vPYKGYDO1bsJJM549TDOcy 6ULOreJz2AFlvmg== 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:35 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 2594037C0ED; Thu, 24 Sep 2026 14:01:36 +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=1790258496; cv=none; b=eF3yoHT9HleBkkEon9JMZcUlnClP2D5oaffDguEymwUnEzd5m0PjrV2iDY3sVdZ+2EhqGpVj0ftIv/vIVJDAUEHEGvYjzbDv5uTEXgOf8gX2fvlqmlnpKH9JGOLW4Npb2ovGVJO2OMTlI6h81S5vrpu4h6Z9iUMA8NLWrgyGtKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=rtR6voWlBp6nmy7r/Mw5s0EqVFPdv3nDJeJ4GzojCQ4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TG5rG7jJZ3Xw+uUhVe83NuHe1yywkqyX4OqCZRZYzkJO7qpDhWmixm+KXBwyBr6Ho7/wwACXYe6gIsGNQROpxptyKytPuraNS40QNkbKYns/iPZ1cEfa655M8Mp8OpB7zX27tBdwgwHk8naOX0ZsV4sqGNOaHrSG0Nl41jdT4a4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rOELeOTl; 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="rOELeOTl" Received: by smtp.kernel.org (Postfix) with ESMTPS id B8255C2BCFC; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258495; bh=rtR6voWlBp6nmy7r/Mw5s0EqVFPdv3nDJeJ4GzojCQ4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rOELeOTlQMEQ20LhH9sN776dl9/JoPloOQkb8zH8GBLZ0uieCpOSw9oR51yGQFB3o fTo1YxXy4jZ1gmrph981EO270zVpVgRVZiWQhuV5t8L1yAOPGhHHUafrq28bJ7Kl93 452ftRHw399QgA/tJlolvW6Apz8jbf1NDycyJJ/tImS5ittU3GURMy13LcyAJ3S6So eLD4w7HcmX3pKMxEiR5JmfNPJFCeIDOqp7mkcPgfHlCbFJos7dKEI8h+kRr7Jvbu+7 uY7dyIkrQWYC2uLFJXZIxWe+nipIQm/J7kBrMFYu4sRcxa+4xEhI/j83idogpoL9/q U6NuHhIl0MAsA== 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 9A0E3C9831F; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:30 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-2-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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/ZANAwAIAWACP8TTSSByAcsmYgBqtS08VkRqj0WEof9HjRjSR4hVLdlW/AsFGAVOI v956XP148aJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPAAKCRBgAj/E00kg cs7FEACsE94bBqkeYjQN+BTrH6kDai9p8lc8cqqrU7PHbqyH8sLrTIvvhtgGH49qKVqN2IugIMS G292zBUb6rYISii85x84mq742Zi8XDzVYCTzF2ohFsJK3MBloQHJTO/iSTOqlnWF2et7gd4YLd1 4PG/1VHEy1eDkRo4UsmWwi0UbaiZ3HPzLjv6FnImaLnLefu8yDzTm1P5tQW/8fw8p8/Gc9hS35h 09M21IGprFKpbEDZ5RtUDWIHUD8tqBgS3bXyKtVm3MF7Lh1rmnXuePierlITiwrs3mY/wYTgenu rPt3GLYWNHIrBcdUGbBnEms3TxdnuMVOlK2h8bcM429Tvrn4kT9vB76ZWhCYI3SijO3fxaQSfpr pJYBLUd8Da/lCKIBjWA/3Z/V6S5rwcKbgz8WT7BKaqoOH8FK8CRSmAHY/lLHz2YS7xWMIDQlezY qYrxxQouNm7luEfT8QYTJuJVGnPtdtRb6FykVEvpJXHkOB8S22QXq7ty7VGL/fdjV4StdjYos+P RwAjyPIVT60RO+Lg9nK1pIB1GFxX/TfvDX1dQyYescQ8WSuX3isJcLXZu+vY1rhqAXzbKBzGRK7 X1ZWyywrWx9Hw48jHUGTuVv97Qd5r+Hgc+Q0KmaOPjpeEVAhXQQ9yYQUJQ2nggRDqFDzsbw9KfE bAWQMyXnTExmCKA== 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:35 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 259DD37D124; Thu, 24 Sep 2026 14:01:36 +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=1790258496; cv=none; b=hQZLpX3rQluc6rqUT+cmjIpygfXoJPQFxsxQ6v9ll5m2rvRUrv4XtEeOeL2UnftBITV/1K1exOcMklFfFE6yDNTQ1+kLB1mWL713I1p2uAqzu+E2hfSI3E+JyvhvELkgIJtoEtb4Ava1a+GVjOrz2o8k7xMhG5nZDrwzRhIUbIw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=HQO6s5NSPIkZ8lJjSMxREoTe6x3ksQXgpWt1Xk24wJ4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SQSp8WHkFoCeIDFQjMTziwc0V/7WeiV4HdgGowdQEYnIbPvg6XlJJaEQ64z0Mu5cV/rljCcIzKRvY/gNwfkLvng2VJ1imqlsJ/JBvgdkCXKCbVRh1Z4fXnl9YP29X6m+0wE+jjVN94wbs6MbTVkiUOALlp4pqQOUb8ptqAJ7l44= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=e2xx/w1M; 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="e2xx/w1M" Received: by smtp.kernel.org (Postfix) with ESMTPS id C1B92C2BD00; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258495; bh=HQO6s5NSPIkZ8lJjSMxREoTe6x3ksQXgpWt1Xk24wJ4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=e2xx/w1MON657rJKlDZfCW7LHRDXJsaIY5BuMVkEesy7eKoB/ElTNt2K7k4uIVxVT bjEh2NJ1dwoRFKLzXCTHTpPMw7yELf+a5Q3KoSk1PHy2b3AKg+cwDTDDzGR3VQli/m 8DveYG9n4u4cDTts83uQ6mnTifg2tzFJLxwBWdeNOLv8BUnmOomxRQp/ioNF/cz1JP fbz9TBlok05ln0pB3qn1R4F6nyGlaQtho+9JEx30EqCB6m/lG0kzokEV6/ErUnF/kK xDvoZziZX+DI5numLHPxCq6t1E887M0MT/r31JX64v4LCEkowmHsFimrHluADHVK+p xQgcyQ2i1ofMA== 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 AC2D4C98317; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:31 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-3-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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=1446; i=david@ixit.cz; h=from:subject:message-id; bh=sUy0BR5Bzr/Y22ddFb/f+LRIKy5v8DuL6NuaUod5V1U=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtS08wHR9zYSx/3A2hmDQ05c0FOMS965h5V6ML hEg8/cxi+CJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPAAKCRBgAj/E00kg cq8JD/4wsfSqoqairaLYwA3fSUe7IyhRf9Us7/9/0O2w6U4oV58WwpwXYz1aF/oR2Ld+37tSCrp 9f8AZsVIKqLL8ykHh45L9s6XcAFc1SoXhVes5WdbyQq+HweLzf0McOYZIG/sKup4nQJovUTuQft O2S4j5tQzrlA/rJr5TQmYYb4oCioOuahLb4Lzp0ezRsBBnXo17UieJnKvp6dZD5vSbq2ZnBpHG0 v/AbASTfUczXTkMMQzZL4N+62ZdpLd4BZ396DWNNHQs2AayCWC4lt3ZWHOYtHS+ZqtuMR37KUVl kPRZmdcyK5wrZny7vW3aqgBcUo4dHDdlLKQaQM6Bp0UiITCP1nc9mREDTt4zjNFpXZ3ECVcQXCe Xrb0YH7Jx8liPGpFyU1J0zJTiWUBTpg3f0QH+kN5WIxKTcvM8TBEkFF/SeoS5NldFDntmA3i/l2 8OInuoHyvsuIGht01GzUACKMnXs/YBwcCZqhHimQE6w8GOg4OD9w3fV546/yEaexNDHAXSUYgfj zYaX8qVMhz+Gh/YGxF4rgo5ndFrNPYZq7WL6VkJvFlXznIpJaO/Mu9+35hYxkOKcubVrXqWldo8 nTwVqvux6WJjac/UKMLn30L4acxcxHNArJVUibYYTMSmG+2kUUadYdullZU3DooMhnOXDwIHbSj OTZavnrCWCIaX4Q== 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 Reviewed-by: Neil Armstrong Signed-off-by: David Heidelberg Reviewed-by: Petr Vorel --- 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:35 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 87A8337F322; Thu, 24 Sep 2026 14:01:36 +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=1790258496; cv=none; b=Fqb+NPJyLLhBweMIw1MHG+ulDTEc14RmgckOQUzRrngmv9VdAuoEz6p7ff/V8z1qPPbSfgvoUXPaUA1XF9uAD8mLEMG+eB/V1nG7zlQzM6dmtstybXJ2/JitxXiDQwJ9/cmaJ/JTNw/U2Q4BqQtfJo67M2t2bBes5cte16qqEvE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=rGsboR1NAldd5bx6/+4ouc+QR6HkIvOETiMf7nk5qeg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=figkTT4COWIO+NjpnsGVJr5SM5cIFi2gCMoV8w07gd8ETENjvNv0kyA3iumlUspt+i+c57TU2tw1B4Dk1qQ0a9hr/sb9WFoSo7+NspzsmwuagYJS1IujDH0Kki39haSm1L7QsfM7vMNa6j4c2aswknFy4JnPbV45pvkWXx5J21Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D0dbgQv2; 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="D0dbgQv2" Received: by smtp.kernel.org (Postfix) with ESMTPS id E1F4FC4AF11; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258496; bh=rGsboR1NAldd5bx6/+4ouc+QR6HkIvOETiMf7nk5qeg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=D0dbgQv2fmdSYOIJ5W0C7DKoOWvEYLHMFuNmhQcuTkHCD+1+kmyRYdSJsvTyoy1dR cEFRhbrvi/fVhpesV6I65YDVA3HDsZ9n9hxgZfTY9AqNVL7RIwX5z/o3Tefkqx1HBc MUxHt6u6cJOPwEO0kW6w4DYfjJbTOPFOb8a+Em7W9yJcyxl0B/r8WFgWV1JiVDvXtx oapGpsyoeBbUw/D5XuYdhx88PAAfVfpuzIidJnJiGHSuR3I11Wsekr//Cpdpkc+7pm M9QDkRHWVMPpR1xzb9HCOjeK5eN9Va8PR5rXHbB/7zUL/G2xbnwyoqx2uhSU/q34vu VvgRsK6cYzQaQ== 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 BEC26C98322; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:32 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-4-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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=1427; i=david@ixit.cz; h=from:subject:message-id; bh=I8au9RHlXJp0sQXsphkjbyxxUnhlBLGtjFxIrmaazt0=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtS09Aj+5xy06Bf/ZdEsKwwYMBKVtqAAr7raY4 nhNkZ++z5aJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPQAKCRBgAj/E00kg ck99D/9e5+IE8uB8z3x+xQs5FrYOzurX9IZsv1qZOtlKE4cVukeXZ0rjtTsGLaUPgAjTfTj9802 4f8RwZevpFtnZ4emf5+G6YJAGuSSMb7yqnzI/PtMoQ1fi98ppDp05CEtEE5v4fS5mpHxbhV7R0z +idByYtgNXSGxS7vl5JZNZvEmdvl1MzfAsPkt1BriLFryGHn0Cv1j5x+xTWibTsxc02sNlipa74 FnhD07JXH6cSomAXxHHr0YlNTLNgXTCSL2sfaE+RszyekaV4fuX2crU7vpB44cOQURSkqnMh3F+ te23YneQoeA/8ZqPoga38qAmkRztFdwcdwjQ9aPz0bcX0AGt5hIhlDBz6uYOxRI/C1Xd8glRZOI lpuouukszROvnGHNP2CJ1stuLyFlw/67I2SYIqYLSUrT5g9tdn2F+cf3FEnJYLbAKVYXUiACgBV sGW4NYVjwsp//GqDVTZZEqNl46lCECLOGq0rRQvgx68wqQPAau+nOMOOLryc3nY5GVkOKIJhODT t5USd5XlqvvVZG+wwpj0p10dBmxKkjKN5HQSq4//mhXS/hQkKQxcJqJo1Z34S1hSgnbvew7jWbA DiSSEPCexL37VPKq18niYFPpUBQKcDZDtfaiOl0VNd0GRPhVjxWVzhclvs9tg4IGvAmI1AWi9nV bj7ABNci0h14xww== 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 Reviewed-by: Petr Vorel Reviewed-by: Neil Armstrong Signed-off-by: David Heidelberg --- 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:35 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 5013137DAA9; Thu, 24 Sep 2026 14:01:36 +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=1790258496; cv=none; b=e+xJNg4FkgHCFFYgoFbMaMMuyXBGAwbZeVoQrVwQjkn99uVd84DT1F+8fYsvnDX2Ur98KOmqf0+1FTNYwOYbH5rOhXhB174k51KtUN4vUw+TCz87h/7uM2aymcZcdBe0E7/BFCjgyQMFEYHWfBA0bYe6G30t15KUUmYUqqMJolY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=Y+hil+4v/zZRkGI8eqCyIkwZKKzhnUwOhcSxXqfedXY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o934vA60dwj/EguIkRmqcK+lVcf0sElc6YGelRkR3BElBHx2vn5cht1mxmxnpctNTZBPDGWSNCTu4CiILpW7DL+GL/PspEn+u+07ywY+116jPNhkdrDY7gBD6HY/NVzFdesI1DrMo58o2uv8B3wTfajKdNAZn2ghXf8g6FFaeMw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a8KxqTfS; 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="a8KxqTfS" Received: by smtp.kernel.org (Postfix) with ESMTPS id E50E2C2BCFD; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258496; bh=Y+hil+4v/zZRkGI8eqCyIkwZKKzhnUwOhcSxXqfedXY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=a8KxqTfS6jxIOzUQN0nKWcCMr2EsP4UfmPIwbDW3d0g7qf0D0mlQhjD2YbaO59sq3 WKv38nc7On/TDTTYN88Ex6ptD7JfOeIn2MCjk4kecnknc1AIWOmHtgy39viCD3QWAq sYb7eloa35fJ5BWKA6t7vt/2R1VeTc4kjYgH979q/UHTUG8u39KrycaAlP7maJup0R boBhCIE0XcB8CaQd2y+Z4AncvDK+Mc+j9tccAAwUw059NcRo7LwDGE3ZtNfpvb0+uW JffabVZJ9HH4Oxa2Psqd67XMaQ4IL5ie7t626zZ8l+oxIo5pKcI2aWpZEN3FMFVAec vubUw90uEDz8g== 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 D15D1C9830E; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:33 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-5-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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=10603; i=david@ixit.cz; h=from:subject:message-id; bh=YuvXF5nXfliwqHqJse8FUYNyvfjxrhDwZ/MViSOxuWA=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtS09Wm2fjvvjsQrHpRO+7wnd3nL+CnKQjGtYU QuqdENoLeqJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPQAKCRBgAj/E00kg cgOVEACfo3OZUHqC1zOuf/gixfvV9/P+FLMyt5Nu1nxA3mARmuM7cHOATCoN+WIIPhHuLkIzLmw LXlctSDCILLnYsQjJkzg2rcAUT6l88AUBWC2m0P/uxzsfPfJ+wr8ePDL6JLrSCcmq+hxj7vlTmY GexXqZw7g89N/8zswsVvkvcF8ditiuavCNR1YOd8uc7zUHOdVhncC/FYdOC8/Tv66PsVQsTDdcP memQJTlDjuy3gVq0c8sXJgz0IoqaHuKQ1rkNqgGzCyFWdC6elmRdreJe9i0Kujk6LR9xL2X+s1b Zq3ThGPg7CmHqr90Zm0S5umOFJQ9tT9o5dbNVk25OmcVMu0+RLqOV9CACrXuWWYvNmm7+lWq8Ae V7Bixxz1lmPe8nLVMnHU5IMx2bISNqM9UodOnHY8RxI1z65M9i4Wt0FDUNARkAbyRs//73CdRa2 M9K9xx6ZK3HwvF5dWJxguvlPNXwhMaAIagb3opkYhbHpdOQZDOsoxtv7bSs5AulhElq4twRRX7R +KV6jol+2J1GanazhD3CPt7imNN+ULUTlbxRgK6kaOOx5s1tiNAsuAas3tbOYXcU6dWr7LMrO2z nRNIrOq3aX/dsfFuPZbGHCC+u7uHUSKp6j5VrrbG/+/J2LAcKhC1Hqwb7ejICop1dPAd69VRKS5 Bww67sxRkVzfT8g== 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 Reviewed-by: Neil Armstrong Signed-off-by: David Heidelberg --- 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:35 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 8471037F72F; Thu, 24 Sep 2026 14:01:36 +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=1790258496; cv=none; b=s7PTU6BiIDp6D+b62vZPaawgPgaeWtu2D+N8dIFQ6Jeeb+fNA2aA10GFoFXMF/Bo9mgJ3OMYLXWilWb9T/VJI5yuJQRgfbbEDEBrzkPeteFbAHTYe3/CJkCZRgtjp+Ll9b7imAjNc/HVNHaNYQRAd/LLi5YWf9t/ucbF1iHR++k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=HE239/SHw9ZI/FxXzNB9du3RZpPCBn955n0wNsqIkaw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J19XKdjNrO3ZKvDCRBKyvi++qiXTXdvbT3FgVM4mkMTknxeeucuqa4pTcb6G37am5Y6nWDF/xMjPXzKrP+0RRf6ORWMU8S9bZs4E7nnqaGPh1udsFvoNXPFgrdmbX/K/OI8KoynTLjzWfSTOdxfYnl2epORzXC83MNwU9SVU1Ak= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hKK3FGIl; 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="hKK3FGIl" Received: by smtp.kernel.org (Postfix) with ESMTPS id 0393FC2BCFF; Thu, 24 Sep 2026 14:01:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258496; bh=HE239/SHw9ZI/FxXzNB9du3RZpPCBn955n0wNsqIkaw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=hKK3FGIlXeULHoJalJFDJJwLofPAh7O89Rs+NcPGhbfy76JPzW3qMZjFpybi+s6SV 8swsUom43KGpg5ExRjLeZ9eaEFF//Wh1yv0qO/ywkoJvdJs/Ba/71FvppvgETOkIlG iXMdHll3V+FeiACGzac/L8Eo1LxbYZ0+ZqEc7fmAAGr6l4J1DtvJkfXx9b6hzb/P5H KcUGS6El8XxGm00wGeeMd1PGPZoHeAjmX/1zOxP+ANrAtZSqSNf1h84J1cEP7VP6JR dBwuRAehxBcLKxHa0o7LMvaVnFdGHtu3tFgoq7SgJZXOyvnjTbxJTKppVEiLd8obrt 9rBk713RLQtPg== 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 E2EEEC9831E; Thu, 24 Sep 2026 14:01:35 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:34 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-6-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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=5082; i=david@ixit.cz; h=from:subject:message-id; bh=DLxgExC/ubt9DvOb6KNIBkLWqCpMn1GUMvkzxEC1Z0g=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtS09Druyn9eas2TeVvjAHsO4zLdMlXs4CLflp 7u5tZes5s+JAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPQAKCRBgAj/E00kg ctgVD/9ngi+OWzDYMDBpST/DNYZKtI5doaSsAgY9oHQnmXjPP7El7OzyvbgngFRNMZN6OQLMLqs lXvN2XI1DWDNogMgIldwR4dnJbBChvMGzacCWTOADz5Cvn1O0Ygm6NwqKifBnFZfDXI95ju2RB0 BXiGOvblHtiw3APZDcvB627s0uXWo3ZqF/Jo1c32tqOVeHmZMfNmJrCKjBlACC9IU23jZsRWZ0Q /s16MGBaUS/2j0ZWdfbfxmi9qrE4jrmxre05s0c3pmwy4Xyb4wZwVZOS2EuQg00qT0r68m2PDgK fz1hHGFejG6ihuPx9d06wBxny9PA+Vget7+NerP/VWeQOjH0cRza8n60gtvihFjsmEBF1YEclz+ 3tmaKMm6DBWgCxRugzcE/Ikj74Ii6bU9Rl1QrTqu0/w3lHkJM+5ijJUWHbS6X/qy2UU6XxkZbFx pT50wcBI55WECC1v5y/avEhiS5Az4hgw36enLy7gxy3AGFttaootqfm/KwhFkkAT23uw0amo1t2 Rffk6AD0ZJaDiFJEPESylv4bFG2d8a0dnN6ZYee0MrrpsHNBtQTppACEo1vrXcOCRsrFwfJW2sO HaHhffoE6tKhc4yKzTX1eGwJpt7g0+ixJEWW5QyMX3ca7P03k/aF/6nFIWGqkTuHLWKX/YD7Y+p QKgpcoVc/sMyo+g== 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 Reviewed-by: Neil Armstrong Signed-off-by: David Heidelberg --- 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:35 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 8AE4037F73E; Thu, 24 Sep 2026 14:01:36 +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=1790258496; cv=none; b=CzGzpq6yZzYCYR/X8wcFZIsXGg0lLMZbRLpCJ1IsqdzQSwrEI53hKor76D24Nw2nZfppZjDFYV1rtM+6i3meNdVRmo7uvHwNVJUfayN1rWkndxBNfyqZ/NTiZmwJJtElHg90DPIllkAvQgDEnX0k/liyp6ojI2P3eHuEFdm6D08= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=ZNijc5MOKUhzAFx9b3sabAhG9y17oQclhc/PpQz74Pg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZGRK0WiU6C3VCrBiAXwSwUEXdWhNVPZIPVWncEIlwBJ+dSCDYNjCGCKCMAFujKWAS+D7VhpfnXywHG/SgVnjYqfDtYFSMM6TMaGi0bu/FXA2f5NclMNwRf7glG4bZD9ezsnO1dNDMCDMPszNeJqJXZU7eGqyXnd+wB9eCERaiRQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OoE828Mc; 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="OoE828Mc" Received: by smtp.kernel.org (Postfix) with ESMTPS id 125D3C4AF09; Thu, 24 Sep 2026 14:01:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258496; bh=ZNijc5MOKUhzAFx9b3sabAhG9y17oQclhc/PpQz74Pg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=OoE828McXFL0/V6pcsgYqJxMBPGC/GjR2neOx8orTlfBJqMHxkxYclz5YuIQQfdg/ VMdp57x01sDlV/77b00XNIR3nP4LrM2BB50PprdWS050hqEGiNeQdwcsNmCdEyOdbP Q1IAVITboTr3JeCu/A6z158wF5RF0NDFVuH5CIKCL8o3fDeNVedu/icGxkIWQDpXGr v9RMVqFzJdy8hre6q1k2BK+TC0PxarnuKfqQMX0ATTn3/akzGUlXD0YAIQIiS1LM3T qBcsOreeBMQv9/4v0OENbth5Gsb7MtVDpXYHmzQWsrrtbF5ddS/2z8qHN0gZmjX3Vm bnZ0Y/fn8Imwg== 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 003FEC9831F; Thu, 24 Sep 2026 14:01:36 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:35 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-7-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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=1147; i=david@ixit.cz; h=from:subject:message-id; bh=+wJwzxl6R6kFsAw/IP8INT9PZdDDVelgZpdEfbOYejM=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtS09+kmOyC3qmmduvr07jHQ5sps+RXxREaQTh TqcBIdNFPOJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPQAKCRBgAj/E00kg ctzqD/4vq65LGGkUX0Ykq7LT8/pNIFwf2tY0PmuVkWhAPlyAfbx2oofy4IwyvvBH5Ch+45SiLuO ikgycsyvBwM7P+tF+JfpoUuzTpJ+AaSGxtqQ5okGW9t8DQWQlpuuwl300jKBMO8sH2FfO8UaSbK fyTF8sWh5u7M1nXo88TTOR9gGPpeBzTUNDI2eEKPqk09mpAojj34+WjNehvImSYDNRUrRDlkrNq twr4EIv3nEkcJleLAC1wHiGbR/rwvm6bb2EZLRNr6i7jLc7qtORBEaK+KgGYtH/vgTyydDEJztR DsvtdiLLIGsDbV3IoAWTZS6BP6zT5ToDE1+zokt1X2DzCRonY3sQxJ3F2zs48dOOIA40MOlHeOg bDgFXyONE0vMZ9qwgq9DKM9/pJHViDl3cSgzKIRPNMT9Lh3bzFOTTKJ1H3QNjU65Tsl1ADZFHSA LisOhkepB+s93s1jj4pPlgG+mk3wJQJgOpq9QGBc+RweW5rbIBPN+njmi0jg9nq8WGcac9KYuJh FOt8rSn1XXoXg41NCC3k7bONDN9ovLnk40AFqoisqOODZVLL0RP6n2VH1lYU9F8kN/UXqQF3AVM 1G9vCw/I9HVCI+2n/H6O70PwBqb7J+u/yoakVJFCBavZAYiBvO9of/JPF/0IAGSxdrW70yhPekR X7aSXeaY2/j4ieg== 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 Reviewed-by: Neil Armstrong Signed-off-by: David Heidelberg --- 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:35 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 82B0B37F32C; Thu, 24 Sep 2026 14:01:36 +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=1790258496; cv=none; b=TkNdB+3tVxRmMZenhJEDLNLgk3882dpg3RTVqX+VDN94BI1uLMp/aG2jkGUbo4Q+4kEfy6f1bTc1XuIY7iZyAWL8/dET/AuCC+mD95s60UdgEX3UIJwDkfVy9ugJzdOsniE8+G/v6dkaQa/p3k5LpDFP82j2bMI645JuwqXfGVk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790258496; c=relaxed/simple; bh=em9DgVkPCPj+sczqL01kbA740Fk/3tmX3civdo0NVHg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kWhE/A2C+yEIK1IIW0AryjD52qMNSaCAGy5G2yFapT3g0zpzdEOGmfYZbM4iWNfZzn+Ufqz61hIOhHt/dsYXUM4imKsrMHvHiPdd2iwIpaz7SV4Z/scNvJiCJwKwVGqKFq+BHjOs+813RGbWJyCFFNgUy/Nf9jN2CsHPbs/5c2g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oMu+7WgO; 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="oMu+7WgO" Received: by smtp.kernel.org (Postfix) with ESMTPS id 2873CC2BCFA; Thu, 24 Sep 2026 14:01:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790258496; bh=em9DgVkPCPj+sczqL01kbA740Fk/3tmX3civdo0NVHg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=oMu+7WgOuBkC1WfzBnvbYXKee1frzrgbknDeivi81pRiTlqTpDJII/PqinVeOuXYr WycscEvhe8XCYp8cBPodRmhyxgeCZZOrljMDbFZmzkCFl4U5g6Sgshf1OF0gLtVWrP EYcs8nah+jDfJumruhXyr9xF8pA0eRF0PPKFAKcPCQvtM/rSzW3v90WgJ3yX/37Mj6 OGjoVbR6sDJGPLqvUodZveWgkFVjzmeCYFnUc4PKFepx2EY4JShjdTSlnhplOC/vie XA+t7/IhmQ0Jf5FoZapNevDhN5OaHurkMIR/ARQFveZwDXqQBZNEC5OIdDdLnw+zhG pkbh3tAQ5/9ig== 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 10ED4C9830E; Thu, 24 Sep 2026 14:01:36 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 16:01:36 +0200 Subject: [PATCH v2 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: <20260924-crosshatch-panel-v2-8-08d5c7bf72fc@ixit.cz> References: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@ixit.cz> In-Reply-To: <20260924-crosshatch-panel-v2-0-08d5c7bf72fc@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: Petr Vorel , 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=10392; i=david@ixit.cz; h=from:subject:message-id; bh=Oiv3rEiE0ZOT1iffv6KA//WPhRjWXmbWai0JbL097kg=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtS09GkzFf+wCfDMM4SXVFcich0bbO/XwGcUwe EUtN12A6guJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUtPQAKCRBgAj/E00kg ci+1D/kBhURefAbfCD2eM4lxP174o3tojHTtfZPE6e4k9Z1rW0TaMLI+421lOaBRwDvDdKcaJZW sJQeuwUoaA0w4n00dDHPH5S/EoJv3WtFQL7WnTVmGYlWDYDX6cf+1JydxSMKMnu5e5B3hp1VK5+ gJuMablMI0L6fqFNY4i9p9IQhsQ4hcdF+y7jdN7O2uZG9r9uvho/fNimGI6AgoIAPsbQP4y35ew 8H4LZKq5JQEgzpjFdsTmrO5kjP7fauEOocUgRcCOxuu/kr0O4Bjx062S0NDUmnmbeE+3cAd37lH QApQhrTwuN2t0UxyH6qF6Ccp+HprNv9BBqteFWnGv0hcVivdBPz67whkCdnDtadn3ERwKpNSHQj hy+mr4MwLG2KdEOvsQh39Rt8KrzPtGmOC+0uvyJplKafNlEOE0V5/9DHOfkUAABQ3SV2NNiJupw KfdCUQjUy4LzUlD3VzMS7+UZN2ZI0wmwlxT3mgxUr3ovAjyHqqC7QCzXtBeePOrYBUvxCQjWA/p OER2We9cSIXlmfGezfZWwhN/ukYFnpSui/UqnXQft+p9Ng/l6WBSlrh7KggxgCfstRNqYeS1HpX esIl/YEDTYvjlj0tZ+XBw1jsKc4qJggfZwyp3wrZ3JvfZSnNTbA/qvaTNqiKVcdL/n5oSA65iTb f2xLdXwUiv6pK6w== 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. Cosmetics: update Copyright header and add myself. Assisted-by: LLM Reviewed-by: Neil Armstrong Signed-off-by: David Heidelberg --- 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