mirror-linux/drivers/gpu/drm/bridge
Luca Ceresoli d0d7277469 drm/bridge: ti-sn65dsi83: halve horizontal syncs for dual LVDS output
Dual LVDS output (available on the SN65DSI84) requires HSYNC_PULSE_WIDTH
and HORIZONTAL_BACK_PORCH to be divided by two with respect to the values
used for single LVDS output.

While not clearly stated in the datasheet, this is needed according to the
DSI Tuner [0] output. It also makes sense intuitively because in dual LVDS
output two pixels at a time are output and so the output clock is half of
the pixel clock.

Some dual-LVDS panels refuse to show any picture without this fix.

Divide by two HORIZONTAL_FRONT_PORCH too, even though this register is used
only for test pattern generation which is not currently implemented by this
driver.

[0] https://www.ti.com/tool/DSI-TUNER

Fixes: ceb515ba29 ("drm/bridge: ti-sn65dsi83: Add TI SN65DSI83 and SN65DSI84 driver")
Cc: stable@vger.kernel.org
Reviewed-by: Marek Vasut <marek.vasut@mailbox.org>
Link: https://patch.msgid.link/20260226-ti-sn65dsi83-dual-lvds-fixes-and-test-pattern-v1-2-2e15f5a9a6a0@bootlin.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2026-03-09 22:32:22 +01:00
..
adv7511 drm/bridge: refactor HDMI InfoFrame callbacks 2026-01-19 13:11:46 +02:00
analogix drm/bridge: anx7625: Fix invalid EDID size 2026-01-21 09:01:30 +02:00
cadence Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
imx Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
synopsys Merge drm/drm-fixes into drm-misc-fixes 2026-02-23 10:09:45 +01:00
Kconfig drm/rockchip: inno-hdmi: Convert to drm bridge 2025-12-25 00:30:33 +02:00
Makefile drm/rockchip: inno-hdmi: Convert to drm bridge 2025-12-25 00:30:33 +02:00
aux-bridge.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
aux-hpd-bridge.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
chipone-icn6211.c
chrontel-ch7033.c
cros-ec-anx7688.c
display-connector.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
fsl-ldb.c
inno-hdmi.c drm/bridge: refactor HDMI InfoFrame callbacks 2026-01-19 13:11:46 +02:00
ite-it6263.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ite-it6505.c drm/bridge: it6505: Use SHA-1 library instead of crypto_shash 2025-09-04 11:27:45 +08:00
ite-it66121.c drm/bridge: ite-it66121: get/put the next bridge 2025-12-30 10:11:33 +01:00
lontium-lt8912b.c drm/bridge: lt8912b: convert to of_drm_find_and_get_bridge() 2026-01-20 14:53:46 +01:00
lontium-lt9211.c drm/bridge: lt9211: Drop check for last nibble of version register 2025-10-11 19:38:20 +03:00
lontium-lt9611.c drm/bridge: refactor HDMI InfoFrame callbacks 2026-01-19 13:11:46 +02:00
lontium-lt9611uxc.c drm/bridge: lontium-lt9611uxc: switch to HDMI audio helpers 2025-12-25 00:22:13 +02:00
lvds-codec.c
megachips-stdpxxxx-ge-b850v3-fw.c
microchip-lvds.c
nwl-dsi.c
nwl-dsi.h
nxp-ptn3460.c
panel.c
parade-ps8622.c
parade-ps8640.c
samsung-dsim.c Merge drm/drm-fixes into drm-misc-fixes 2026-02-23 10:09:45 +01:00
sii902x.c drm/bridge: sii902x: convert to of_drm_find_and_get_bridge() 2026-01-20 14:53:45 +01:00
sii9234.c
sil-sii8620.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sil-sii8620.h
simple-bridge.c drm/bridge: simple: add the Algoltek AG6311 DP-to-HDMI bridge 2026-01-21 11:56:29 +02:00
ssd2825.c
tc358762.c
tc358764.c
tc358767.c
tc358768.c
tc358775.c
tda998x_drv.c
thc63lvd1024.c drm/bridge: thc63lvd1024: convert to of_drm_find_and_get_bridge() 2026-01-20 14:53:45 +01:00
ti-dlpc3433.c
ti-sn65dsi83.c drm/bridge: ti-sn65dsi83: halve horizontal syncs for dual LVDS output 2026-03-09 22:32:22 +01:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: Enable HPD polling if IRQ is not used 2026-02-13 12:42:34 -08:00
ti-tdp158.c
ti-tfp410.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ti-tpd12s015.c drm/bridge: tpd12s015: convert to of_drm_find_and_get_bridge() 2026-01-20 14:53:46 +01:00
waveshare-dsi.c drm/bridge: waveshare-dsi: Fix bailout for devm_drm_bridge_alloc() 2025-09-19 10:52:45 +08:00