public inbox for dri-devel@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v3 0/1] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output
@ 2026-04-12  5:38 Sudarshan Shetty
  2026-04-12  5:38 ` [PATCH v3 1/1] " Sudarshan Shetty
  0 siblings, 1 reply; 2+ messages in thread
From: Sudarshan Shetty @ 2026-04-12  5:38 UTC (permalink / raw)
  To: andrzej.hajda, neil.armstrong, rfoss
  Cc: Laurent.pinchart, jonas, jernej.skrabec, maarten.lankhorst,
	mripard, tzimmermann, airlied, simona, marex, valentin,
	luca.ceresoli, philippe.schenker, alexander.stein, dri-devel,
	linux-kernel, Sudarshan Shetty

Hi all,
 
This patch refines dual-link LVDS support in the SN65DSI83/84
DSI-to-LVDS bridge driver.
 
Recent upstream changes added support for dual-link LVDS timing
adjustments and related fixes:
 - Halving horizontal timing parameters
 - Test pattern handling adjustments
 - DSI clock range correction
 
However, during validation on our platform, LVDS output remained
unstable for certain panels due to the DSI mode configuration.
 
Specifically, the following flags were found to cause issues:
 
 - MIPI_DSI_MODE_VIDEO_NO_HFP
 - MIPI_DSI_MODE_VIDEO_NO_HBP
 
These disable transmission of horizontal front porch (HFP) and
back porch (HBP) timings over the DSI link. The SN65DSI bridge
relies on complete horizontal timing information to reconstruct
LVDS timings, and omitting these parameters results in incorrect
or unstable output.
 
Additionally:
 
 - MIPI_DSI_MODE_VIDEO_BURST
 
While supported by the hardware, burst mode operation depends on
continuous clocking from the DSI host. In practice, this may lead
to instability depending on the host controller implementation,
as the link may transition to LP mode between bursts.
 
Removing these flags ensures that:
 - Full timing information is transmitted
 - The bridge can correctly reconstruct LVDS timings
 - Output remains stable across tested panels
 
This patch updates the DSI mode configuration accordingly.
 
This patch is based on recent SN65DSI83 dual-link LVDS fixes:
 - https://lore.kernel.org/lkml/20260309-ti-sn65dsi83-dual-lvds-fixes-and-test-pattern-v2-1-e6aaa7e1d181@bootlin.com/ 

Changes in v3:
 - Rebased on top of latest upstream changes
 - Dropped previously proposed dual-link DT property and related handling
   as equivalent functionality is now available upstream
 - Refined DSI mode flag configuration to ensure stable LVDS output
 - Added detailed justification for removing NO_HFP/NO_HBP and BURST mode
 
Changes in v2:
 - Introduced ti,dual-link-video-mode DT property
 - Added DT binding documentation for the new property
 - Update driver to read the DT property and apply dual-link
   configuration conditionally
 - Adjust DSI mode flags when dual-link video mode is enabled
 - Update commit messages 

Thanks,
Anusha

Sudarshan Shetty (1):
  drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output

 drivers/gpu/drm/bridge/ti-sn65dsi83.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

-- 
2.34.1


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

* [PATCH v3 1/1] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output
  2026-04-12  5:38 [PATCH v3 0/1] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Sudarshan Shetty
@ 2026-04-12  5:38 ` Sudarshan Shetty
  0 siblings, 0 replies; 2+ messages in thread
From: Sudarshan Shetty @ 2026-04-12  5:38 UTC (permalink / raw)
  To: andrzej.hajda, neil.armstrong, rfoss
  Cc: Laurent.pinchart, jonas, jernej.skrabec, maarten.lankhorst,
	mripard, tzimmermann, airlied, simona, marex, valentin,
	luca.ceresoli, philippe.schenker, alexander.stein, dri-devel,
	linux-kernel, Sudarshan Shetty

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@gmail.com>
---
 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


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

end of thread, other threads:[~2026-04-12  5:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-12  5:38 [PATCH v3 0/1] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Sudarshan Shetty
2026-04-12  5:38 ` [PATCH v3 1/1] " Sudarshan Shetty

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