public inbox for cip-dev@lists.cip-project.org
 help / color / mirror / Atom feed
* [PATCH 6.1.y-cip 1/7] drm: renesas: rz-du: Add atomic_pre_enable
@ 2026-04-13 17:18 Chris Brandt
  2026-04-13 17:18 ` [PATCH 6.1.y-cip 2/7] drm: renesas: rz-du: Implement MIPI DSI host transfers Chris Brandt
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Chris Brandt @ 2026-04-13 17:18 UTC (permalink / raw)
  To: cip-dev, Nobuhiro Iwamatsu, Pavel Machek

commit 5ce16c169a4cb8ffceabfd48853d0bf605ce785a upstream.

When drm_panel.prepare_prev_first is set to true in a panel driver, the
panel expects the MIPI DSI hardware to be already configured before the
panel's prepare function is called because it might need to send DCS
commands.

Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
Tested-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://lore.kernel.org/r/20250521210335.3149065-1-chris.brandt@renesas.com
Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
---
 drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
index 87e7ceeb1b02..f1ae7ecddbb2 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
@@ -999,8 +999,8 @@ static int rzg2l_mipi_dsi_attach(struct drm_bridge *bridge,
 				 flags);
 }

-static void rzg2l_mipi_dsi_atomic_enable(struct drm_bridge *bridge,
-					 struct drm_bridge_state *old_bridge_state)
+static void rzg2l_mipi_dsi_atomic_pre_enable(struct drm_bridge *bridge,
+					     struct drm_bridge_state *old_bridge_state)
 {
 	struct drm_atomic_state *state = old_bridge_state->base.state;
 	struct rzg2l_mipi_dsi *dsi = bridge_to_rzg2l_mipi_dsi(bridge);
@@ -1018,6 +1018,13 @@ static void rzg2l_mipi_dsi_atomic_enable(struct drm_bridge *bridge,
 		return;

 	rzg2l_mipi_dsi_set_display_timing(dsi, mode);
+}
+
+static void rzg2l_mipi_dsi_atomic_enable(struct drm_bridge *bridge,
+					 struct drm_bridge_state *old_bridge_state)
+{
+	struct rzg2l_mipi_dsi *dsi = bridge_to_rzg2l_mipi_dsi(bridge);
+	int ret;

 	ret = rzg2l_mipi_dsi_start_hs_clock(dsi);
 	if (ret < 0)
@@ -1074,6 +1081,7 @@ static const struct drm_bridge_funcs rzg2l_mipi_dsi_bridge_ops = {
 	.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
 	.atomic_reset = drm_atomic_helper_bridge_reset,
+	.atomic_pre_enable = rzg2l_mipi_dsi_atomic_pre_enable,
 	.atomic_enable = rzg2l_mipi_dsi_atomic_enable,
 	.atomic_disable = rzg2l_mipi_dsi_atomic_disable,
 	.mode_valid = rzg2l_mipi_dsi_bridge_mode_valid,
--
2.52.0



^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-04-16 20:59 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-13 17:18 [PATCH 6.1.y-cip 1/7] drm: renesas: rz-du: Add atomic_pre_enable Chris Brandt
2026-04-13 17:18 ` [PATCH 6.1.y-cip 2/7] drm: renesas: rz-du: Implement MIPI DSI host transfers Chris Brandt
2026-04-14  9:30   ` Pavel Machek
2026-04-14 11:33     ` Chris Brandt
2026-04-16 20:59       ` Pavel Machek
2026-04-13 17:18 ` [PATCH 6.1.y-cip 3/7] drm: renesas: rz-du: mipi_dsi: fix kernel panic when rebooting for some panels Chris Brandt
2026-04-13 17:18 ` [PATCH 6.1.y-cip 4/7] drm: renesas: rz-du: mipi_dsi: Set DSI divider Chris Brandt
2026-04-13 17:18 ` [PATCH 6.1.y-cip 5/7] clk: renesas: Use IS_ERR() for pointers that cannot be NULL Chris Brandt
2026-04-13 17:18 ` [PATCH 6.1.y-cip 6/7] clk: renesas: rzg2l: Remove DSI clock rate restrictions Chris Brandt
2026-04-13 17:18 ` [PATCH 6.1.y-cip 7/7] clk: renesas: Add missing log message terminators Chris Brandt
2026-04-16 20:57 ` [PATCH 6.1.y-cip 1/7] drm: renesas: rz-du: Add atomic_pre_enable Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox