* [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output
@ 2026-05-27 8:57 Sudarshan Shetty
2026-05-27 8:57 ` [PATCH v4 1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability Sudarshan Shetty
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Sudarshan Shetty @ 2026-05-27 8:57 UTC (permalink / raw)
To: andrzej.hajda, neil.armstrong, rfoss
Cc: Laurent.pinchart, jonas, jernej.skrabec, luca.ceresoli,
maarten.lankhorst, mripard, tzimmermann, airlied, simona,
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.
Reference:
SN65DSI84 Datasheet, Section 7.4.7 (page 20):
https://www.ti.com/lit/ds/symlink/sn65dsi84.pdf?ts=1776924088430&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FSN65DSI84
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.
Changes in v4:
- Split the original patch into two separate patches:
- Enable HFP/HBP transmission by removing
MIPI_DSI_MODE_VIDEO_NO_HFP and
MIPI_DSI_MODE_VIDEO_NO_HBP
- Disable MIPI_DSI_MODE_VIDEO_BURST separately
- Updated commit messages
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 (2):
drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for
LVDS stability
drm: bridge: ti-sn65dsi83: Disable video burst mode for LVDS stability
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH v4 1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability
2026-05-27 8:57 [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Sudarshan Shetty
@ 2026-05-27 8:57 ` Sudarshan Shetty
2026-05-29 15:27 ` Luca Ceresoli
2026-05-27 8:57 ` [PATCH v4 2/2] drm: bridge: ti-sn65dsi83: Disable video burst mode " Sudarshan Shetty
2026-06-16 20:49 ` (subset) [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Luca Ceresoli
2 siblings, 1 reply; 5+ messages in thread
From: Sudarshan Shetty @ 2026-05-27 8:57 UTC (permalink / raw)
To: andrzej.hajda, neil.armstrong, rfoss
Cc: Laurent.pinchart, jonas, jernej.skrabec, luca.ceresoli,
maarten.lankhorst, mripard, tzimmermann, airlied, simona,
alexander.stein, dri-devel, linux-kernel, Sudarshan Shetty
The current DSI mode configuration 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.
The SN65DSI84 datasheet also describes transmission of complete
horizontal timing information as part of the DSI video stream.
Remove MIPI_DSI_MODE_VIDEO_NO_HFP and MIPI_DSI_MODE_VIDEO_NO_HBP
so that HFP and HBP timing information is transmitted to the bridge.
Reference:
SN65DSI84 Datasheet, Section 7.4.7 (page 20):
https://www.ti.com/lit/ds/symlink/sn65dsi84.pdf?ts=1776924088430&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FSN65DSI84
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
---
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
index 42b451432bbb..c03ff1ea9df8 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
@@ -977,7 +977,6 @@ 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;
ret = devm_mipi_dsi_attach(dev, dsi);
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability
2026-05-27 8:57 ` [PATCH v4 1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability Sudarshan Shetty
@ 2026-05-29 15:27 ` Luca Ceresoli
0 siblings, 0 replies; 5+ messages in thread
From: Luca Ceresoli @ 2026-05-29 15:27 UTC (permalink / raw)
To: Sudarshan Shetty
Cc: andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, luca.ceresoli, maarten.lankhorst, mripard,
tzimmermann, airlied, simona, alexander.stein, dri-devel,
linux-kernel
On Wed, 27 May 2026 14:27:35 +0530, Sudarshan Shetty <tessolveupstream@gmail.com> wrote:
Hello Sudarshan,
> [...]
> Remove MIPI_DSI_MODE_VIDEO_NO_HFP and MIPI_DSI_MODE_VIDEO_NO_HBP
> so that HFP and HBP timing information is transmitted to the bridge.
>
> Reference:
> SN65DSI84 Datasheet, Section 7.4.7 (page 20):
> https://www.ti.com/lit/ds/symlink/sn65dsi84.pdf?ts=1776924088430&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FSN65DSI84
Everything starting from the '?' in the URL is unneeded. I can fix it while
applying this patch (next-week perhaps).
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 2/2] drm: bridge: ti-sn65dsi83: Disable video burst mode for LVDS stability
2026-05-27 8:57 [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Sudarshan Shetty
2026-05-27 8:57 ` [PATCH v4 1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability Sudarshan Shetty
@ 2026-05-27 8:57 ` Sudarshan Shetty
2026-06-16 20:49 ` (subset) [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Luca Ceresoli
2 siblings, 0 replies; 5+ messages in thread
From: Sudarshan Shetty @ 2026-05-27 8:57 UTC (permalink / raw)
To: andrzej.hajda, neil.armstrong, rfoss
Cc: Laurent.pinchart, jonas, jernej.skrabec, luca.ceresoli,
maarten.lankhorst, mripard, tzimmermann, airlied, simona,
alexander.stein, dri-devel, linux-kernel, Sudarshan Shetty
The current DSI configuration enables MIPI_DSI_MODE_VIDEO_BURST.
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.
Testing showed improved display stability when using non-burst mode on
affected panels.
Remove MIPI_DSI_MODE_VIDEO_BURST and use non-burst video mode.
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
---
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
index c03ff1ea9df8..6b5a6019c30d 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
@@ -976,8 +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_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 [flat|nested] 5+ messages in thread* Re: (subset) [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output
2026-05-27 8:57 [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Sudarshan Shetty
2026-05-27 8:57 ` [PATCH v4 1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability Sudarshan Shetty
2026-05-27 8:57 ` [PATCH v4 2/2] drm: bridge: ti-sn65dsi83: Disable video burst mode " Sudarshan Shetty
@ 2026-06-16 20:49 ` Luca Ceresoli
2 siblings, 0 replies; 5+ messages in thread
From: Luca Ceresoli @ 2026-06-16 20:49 UTC (permalink / raw)
To: andrzej.hajda, neil.armstrong, rfoss, Sudarshan Shetty
Cc: Laurent.pinchart, jonas, jernej.skrabec, maarten.lankhorst,
mripard, tzimmermann, airlied, simona, alexander.stein,
dri-devel, linux-kernel
On Wed, 27 May 2026 14:27:34 +0530, Sudarshan Shetty wrote:
>
> 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
>
> [...]
Applied, thanks!
[1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability
commit: 4af021a977735420e8fe18d64bef18ad0608d981
Best regards,
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-06-16 20:49 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-27 8:57 [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Sudarshan Shetty
2026-05-27 8:57 ` [PATCH v4 1/2] drm: bridge: ti-sn65dsi83: Remove NO_HFP and NO_HBP mode flags for LVDS stability Sudarshan Shetty
2026-05-29 15:27 ` Luca Ceresoli
2026-05-27 8:57 ` [PATCH v4 2/2] drm: bridge: ti-sn65dsi83: Disable video burst mode " Sudarshan Shetty
2026-06-16 20:49 ` (subset) [PATCH v4 0/2] drm: bridge: ti-sn65dsi83: Fix DSI mode flags for stable LVDS output Luca Ceresoli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome