linux/drivers/gpu/drm/bridge
Tomi Valkeinen 10b1f85254 drm/bridge: tc358768: Attempt to fix DSI horizontal timings
[ Upstream commit 9fc75c40fa ]

The DSI horizontal timing calculations done by the driver seem to often
lead to underflows or overflows, depending on the videomode.

There are two main things the current driver doesn't seem to get right:
DSI HSW and HFP, and VSDly. However, even following Toshiba's
documentation it seems we don't always get a working display.

This patch attempts to fix the horizontal timings for DSI event mode, and
on a system with a DSI->HDMI encoder, a lot of standard HDMI modes now
seem to work. The work relies on Toshiba's documentation, but also quite
a bit on empirical testing.

This also adds timing related debug prints to make it easier to improve
on this later.

The DSI pulse mode has only been tested with a fixed-resolution panel,
which limits the testing of different modes on DSI pulse mode. However,
as the VSDly calculation also affects pulse mode, so this might cause a
regression.

Reviewed-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-by: Maxim Schwalm <maxim.schwalm@gmail.com> # Asus TF700T
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230906-tc358768-v4-12-31725f008a50@ideasonboard.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-08-29 17:33:25 +02:00
..
adv7511 drm: adv7511: Fix low refresh rate register for ADV7533/5 2023-07-21 13:37:18 +02:00
analogix drm/bridge: analogix_dp: properly handle zero sized AUX transactions 2024-08-14 13:59:00 +02:00
cadence drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference 2024-06-12 11:12:01 +02:00
imx drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
synopsys drm: bridge: dw_hdmi: Fix ELD is not updated issue 2023-08-04 10:31:41 +02:00
chipone-icn6211.c drm/bridge: icn6211: Don't log an error when DSI host can't be found 2024-06-12 11:12:03 +02:00
chrontel-ch7033.c drm/bridge: fix -Wunused-const-variable= warning 2023-07-31 11:14:24 +02:00
cros-ec-anx7688.c drm: Switch i2c drivers back to use .probe() 2023-05-30 16:55:16 -07:00
display-connector.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
fsl-ldb.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
ite-it6505.c drm/bridge: it6505: fix hibernate to resume no display issue 2024-08-03 08:53:46 +02:00
ite-it66121.c drm: bridge: it66121: ->get_edid callback must not return err pointers 2023-11-28 17:20:16 +00:00
Kconfig drm/bridge: tc358768: select CONFIG_VIDEOMODE_HELPERS 2023-12-13 18:45:16 +01:00
lontium-lt8912b.c drm/bridge: lt8912b: Don't log an error when DSI host can't be found 2024-06-12 11:12:03 +02:00
lontium-lt9211.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
lontium-lt9611.c drm/bridge: lt9611: Don't log an error when DSI host can't be found 2024-06-12 11:12:03 +02:00
lontium-lt9611uxc.c drm/bridge: lt9611uxc: Don't log an error when DSI host can't be found 2024-06-12 11:12:03 +02:00
lvds-codec.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
Makefile drm: bridge: Generalize Exynos-DSI driver into a Samsung DSIM bridge 2023-03-28 09:05:41 +09:00
megachips-stdpxxxx-ge-b850v3-fw.c drm: Switch i2c drivers back to use .probe() 2023-05-30 16:55:16 -07:00
nwl-dsi.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
nwl-dsi.h drm/bridge: Add NWL MIPI DSI host controller support 2020-04-09 15:52:47 +02:00
nxp-ptn3460.c drm/bridge: nxp-ptn3460: simplify some error checking 2024-01-31 16:19:08 -08:00
panel.c drm/bridge/panel: Fix runtime warning on panel bridge release 2024-06-21 14:38:33 +02:00
parade-ps8622.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
parade-ps8640.c drm/bridge: parade-ps8640: Make sure we drop the AUX mutex in the error case 2024-01-31 16:19:12 -08:00
samsung-dsim.c drm: bridge: samsung-dsim: Don't use FORCE_STOP_STATE 2024-01-31 16:19:13 -08:00
sii902x.c drm/bridge: sii902x: Fix audio codec unregistration 2024-01-31 16:19:11 -08:00
sii9234.c drm: Switch i2c drivers back to use .probe() 2023-05-30 16:55:16 -07:00
sil-sii8620.c drm/bridge: fix -Wunused-const-variable= warning 2023-07-31 11:14:24 +02:00
sil-sii8620.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
simple-bridge.c drm: Explicitly include correct DT includes 2023-07-21 09:12:43 +02:00
tc358762.c drm/bridge: tc358762: Handle HS/VS polarity 2023-06-22 11:13:31 +02:00
tc358764.c drm/bridge: tc358764: Use BIT() macro for actual bits 2023-06-22 11:02:58 +02:00
tc358767.c drm/bridge: tc358767: Fix return value on error case 2024-01-25 15:35:34 -08:00
tc358768.c drm/bridge: tc358768: Attempt to fix DSI horizontal timings 2024-08-29 17:33:25 +02:00
tc358775.c drm/bridge: tc358775: fix support for jeida-18 and jeida-24 2024-06-12 11:12:40 +02:00
thc63lvd1024.c drm/bridge: thc63lvd1024: Convert to platform remove callback returning void 2023-03-20 11:51:55 +01:00
ti-dlpc3433.c drm/bridge: dpc3433: Don't log an error when DSI host can't be found 2024-06-12 11:12:04 +02:00
ti-sn65dsi83.c Revert "drm/bridge: ti-sn65dsi83: Fix enable error path" 2024-06-12 11:12:43 +02:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: Never store more than msg->size bytes in AUX xfer 2024-01-10 17:16:47 +01:00
ti-tfp410.c drm/bridge: fix -Wunused-const-variable= warning 2023-07-31 11:14:24 +02:00
ti-tpd12s015.c drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function 2024-01-25 15:35:31 -08:00