From nobody Mon Feb 9 04:14:23 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 01E7E359F86; Thu, 13 Nov 2025 17:57:43 +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=1763056664; cv=none; b=WfD+oef/Jo5RqSSF5+5sAioc5mN9djRgm8rdtBBNKyOfJ0CLkdSNdmGxKT6J1S0n4Zg3zKIOA3MsrvsbD1Rkpf9O7+aM0BXDcsxpd5TLo7caxzj5kad8H9IqPtUkaxVhGzzhm+DSxNaJbMcXhk2W/O/TdfXET9LJPbEUT9TEG50= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763056664; c=relaxed/simple; bh=h8mvhLF2NQpOEhwrwGAXO5y7raG5Pj5KKGwO1xu0Ls4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SAxXV6Jo0or5h56PggGs9iFNlTv57QIXhQhggHBTlyAKBU/Avc0CtoYhur0Hd89j7wrsSUAt9keSImSP2WHSmNZqGgszyd/B6GAC4zfs8h3Ebg9Okc4G398mwRPR69WCKDYPUMPV0eZpnyIefSGDYpCGntMkNrJ5Kc6VSCgIg7U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ResWzcV0; 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="ResWzcV0" Received: by smtp.kernel.org (Postfix) with ESMTPS id 6FD69C2BCB3; Thu, 13 Nov 2025 17:57:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763056663; bh=h8mvhLF2NQpOEhwrwGAXO5y7raG5Pj5KKGwO1xu0Ls4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=ResWzcV0c4lOaCtc5fsRNaFWl02Z/Is+ArDESCvRnHP2VRMtN34NXbeQiWyfRvjKo uFu5/DaZNESCkeBdLIrWseHbEfLR4+OdV4IDOt3dEIORtn3UNnmx768cssbMBbbb8d JEcCufG/AGq4q6GWY0ig0b1Mv0ziWPvcSLGricA2r7a/mH30emwpKY24oixVtrqJxC aNO9vhsxaqDEdCXrgizXuzGO+iwvy2dywd3YurzGj/nkwDv8g5f46Zb3/te6FeYrQA QOcR5KJBIJnKZVplSkrkbaI19AEJvrm+vcEv+ufg1ylVjgkcGhTNqzQ6tuIrUE1pVY 4C1avwUp1OL8g== 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 5D917CD8CBD; Thu, 13 Nov 2025 17:57:43 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 13 Nov 2025 18:57:39 +0100 Subject: [PATCH v2 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions 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: <20251113-sofef00-rebuild-v2-5-e175053061ec@ixit.cz> References: <20251113-sofef00-rebuild-v2-0-e175053061ec@ixit.cz> In-Reply-To: <20251113-sofef00-rebuild-v2-0-e175053061ec@ixit.cz> To: Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , Sam Ravnborg , Bjorn Andersson , Konrad Dybcio , Casey Connolly 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.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2045; i=david@ixit.cz; h=from:subject:message-id; bh=xfG4W9ai59WdRLt2V9HKjqKsc6sEspLbINOP0a9yxjE=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBpFhwUGXzAbG17sDfyaOHuZB00UB1Hm4CErEAIN 6Z3Kq5G3CaJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaRYcFAAKCRBgAj/E00kg cld0D/0Rh7WmQyKsgOmdspslAxL2eWJFo56eMotujOSOk73SpZ7S3Z9tYFLnejQv2WnGFoLcoD9 aFTQsUKg6P/aZ96VU2tbhFVzhRTWzc5ohiFZf+yWRa9H3asWK2Csee+jwLUPkKjWm164kvCponv Ro7+OfuQcYd9E1cNYLPJC5F0uVbLjE7zwFtCn42NqLu8iTvr4GhCNJfUv2lOfABCooriRpMqPCm AwoXBGG2wx285rsIP9PIIY/5ilqLzy3q1R15wjptriauqZO3Puotdo/ir9UvEYjmzY3AqwQqNXV Z7+DW93ThTEQUjEW8B+k1ZXZY88NJJvVH+7lmMyQLrBmjNWsFXh+vHVKpx/4hldVVqC1skrHMNV hWCNKDsu1IL8+jpSyndYVMXj4CkJYU2civuOharkx8QU2C5RmQ/W8PyPBevAlkscHu8ietJbQR5 e+kKuuhD8WUjNMtV1gelO6Mcz+aEBbu3rIxxXHozfJpJJMgSYZGKdOHCYVdvel85iMu1odM75G/ A6EYi+AYzaEG8wB4tEQME0IvmKhBwhnYNfsKkwNOVaEMjYw5uqVrTsMkLGg7SX6Z1W/HjG66KnQ UFGV6HT2yuId7jIuSBXbcQftn9NcaryiyxPgrKD5rkhc2Kl1LnvAxFgKqOeD9evFAZ5NvMbuoFv IP1ynH5dl5bhuVw== 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 It's not possible to send DSI panel commands in the .unprepare. Move it to .disable and do similar for prepare, where we move the display on to the .enable. Signed-off-by: David Heidelberg --- drivers/gpu/drm/panel/panel-samsung-sofef00.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/dr= m/panel/panel-samsung-sofef00.c index 3097040e6bfa0..a3651f0060bde 100644 --- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c +++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c @@ -68,6 +68,14 @@ static int sofef00_panel_on(struct sofef00_panel *ctx) mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_CONTROL_DISPLAY, 0x= 20); mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_POWER_SAVE, 0x00); =20 + return dsi_ctx.accum_err; +} + +static int sofef00_enable(struct drm_panel *panel) +{ + struct sofef00_panel *ctx =3D to_sofef00_panel(panel); + struct mipi_dsi_multi_context dsi_ctx =3D { .dsi =3D ctx->dsi }; + mipi_dsi_dcs_set_display_on_multi(&dsi_ctx); =20 return dsi_ctx.accum_err; @@ -110,11 +118,19 @@ static int sofef00_panel_prepare(struct drm_panel *pa= nel) return 0; } =20 -static int sofef00_panel_unprepare(struct drm_panel *panel) +static int sofef00_disable(struct drm_panel *panel) { struct sofef00_panel *ctx =3D to_sofef00_panel(panel); =20 sofef00_panel_off(ctx); + + return 0; +} + +static int sofef00_panel_unprepare(struct drm_panel *panel) +{ + struct sofef00_panel *ctx =3D to_sofef00_panel(panel); + regulator_bulk_disable(ARRAY_SIZE(sofef00_supplies), ctx->supplies); =20 return 0; @@ -154,6 +170,8 @@ static int sofef00_panel_get_modes(struct drm_panel *pa= nel, struct drm_connector =20 static const struct drm_panel_funcs sofef00_panel_panel_funcs =3D { .prepare =3D sofef00_panel_prepare, + .enable =3D sofef00_enable, + .disable =3D sofef00_disable, .unprepare =3D sofef00_panel_unprepare, .get_modes =3D sofef00_panel_get_modes, }; --=20 2.51.0