]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/bridge: tc358768: Add LP mode command support
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Wed, 11 Mar 2026 07:48:16 +0000 (09:48 +0200)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Thu, 7 May 2026 09:38:46 +0000 (12:38 +0300)
Currently the driver ignores MIPI_DSI_MODE_LPM and always uses HS mode.
Add code to enable HS mode in pre_enable() only if MIPI_DSI_MODE_LPM is
not set, and always enable HS mode in enable() for video transmission.

Tested-by: João Paulo Gonçalves <joao.goncalves@toradex.com> # Toradex Verdin AM62
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Link: https://patch.msgid.link/20260311-tc358768-v2-5-e75a99131bd5@ideasonboard.com
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
drivers/gpu/drm/bridge/tc358768.c

index a276fbc75dde223bebaf7f5d9171690d88b35491..a7a14c125ac4a85342e3e42b522dabe96f047c57 100644 (file)
@@ -1091,7 +1091,8 @@ static void tc358768_bridge_atomic_pre_enable(struct drm_bridge *bridge,
        /* Configure DSI_Control register */
        val = (dsi_dev->lanes - 1) << 1;
 
-       val |= TC358768_DSI_CONTROL_TXMD;
+       if (!(dsi_dev->mode_flags & MIPI_DSI_MODE_LPM))
+               val |= TC358768_DSI_CONTROL_TXMD;
 
        if (!(dsi_dev->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS))
                val |= TC358768_DSI_CONTROL_HSCKMD;
@@ -1123,6 +1124,11 @@ static void tc358768_bridge_atomic_enable(struct drm_bridge *bridge,
                return;
        }
 
+       /* Enable HS mode for video TX */
+       tc358768_confw_update_bits(priv, TC358768_DSI_CONTROL,
+                                  TC358768_DSI_CONTROL_TXMD,
+                                  TC358768_DSI_CONTROL_TXMD);
+
        /* clear FrmStop and RstPtr */
        tc358768_update_bits(priv, TC358768_PP_MISC, 0x3 << 14, 0);