[PATCH v3 1/1] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output

From: Sudarshan Shetty

Date: Sun Apr 12 2026 - 01:41:19 EST


The current DSI mode configuration enables VIDEO_BURST and disables
horizontal front porch (HFP) and back porch (HBP) transmission using
MIPI_DSI_MODE_VIDEO_NO_HFP and MIPI_DSI_MODE_VIDEO_NO_HBP.

However, the SN65DSI83/84 bridge relies on receiving full horizontal
timing information over DSI in order to correctly reconstruct the LVDS
output timings. When HFP and HBP are not transmitted, the bridge cannot
recreate the required timing parameters, resulting in unstable or
missing display output on some panels.

Additionally, while burst mode is supported by the hardware, its use
depends on continuous clock behavior from the DSI host. In practice,
burst mode may introduce instability depending on the host controller
implementation, as the DSI link may transition to low-power state
between bursts.

In testing, removing burst mode and ensuring full horizontal timing
transmission results in stable LVDS output across affected panels.

Update the DSI mode flags to:
- Drop MIPI_DSI_MODE_VIDEO_BURST
- Drop MIPI_DSI_MODE_VIDEO_NO_HFP
- Drop MIPI_DSI_MODE_VIDEO_NO_HBP

This aligns with common system configurations where non-burst mode is
preferred and full timing information is transmitted over DSI.

Signed-off-by: Sudarshan Shetty <tessolveupstream@xxxxxxxxx>
---
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
index fef6bca3273f..9d51dc2b75bc 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
@@ -976,9 +976,8 @@ static int sn65dsi83_host_attach(struct sn65dsi83 *ctx)

dsi->lanes = dsi_lanes;
dsi->format = MIPI_DSI_FMT_RGB888;
- dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
- 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 = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_NO_HSA |
+ MIPI_DSI_MODE_NO_EOT_PACKET;

ret = devm_mipi_dsi_attach(dev, dsi);
if (ret < 0) {
--
2.34.1