linux/drivers/gpu/drm/bridge
Frieder Schrempf dd9e329af7 drm/bridge: ti-sn65dsi83: Fix enable/disable flow to meet spec
The datasheet describes the following initialization flow including
minimum delay times between each step:

1. DSI data lanes need to be in LP-11 and the clock lane in HS mode
2. toggle EN signal
3. initialize registers
4. enable PLL
5. soft reset
6. enable DSI stream
7. check error status register

To meet this requirement we need to make sure the host bridge's
pre_enable() is called first by using the pre_enable_prev_first
flag.

Furthermore we need to split enable() into pre_enable() which covers
steps 2-5 from above and enable() which covers step 7 and is called
after the host bridge's enable().

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Fixes: ceb515ba29 ("drm/bridge: ti-sn65dsi83: Add TI SN65DSI83 and SN65DSI84 driver")
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> #TQMa8MxML/MBa8Mx
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230503163313.2640898-3-frieder@fris.de
2023-05-25 18:16:32 +02:00
..
adv7511 drm/bridge: adv7533: Fix adv7533_mode_valid for adv7533 and adv7535 2023-03-20 10:57:22 +01:00
analogix drm/bridge: anx7625: Prevent endless probe loop 2023-05-23 19:16:42 +02:00
cadence drm/bridge: cdns-dsi: Convert to platform remove callback returning void 2023-03-20 11:51:49 +01:00
imx drm: Use of_property_present() for testing DT property presence 2023-03-28 14:55:33 -05:00
synopsys drm/bridge: dw-hdmi: Replace all non-returning strlcpy with strscpy 2023-05-23 19:19:31 +02:00
chipone-icn6211.c drm/bridge: icn6211: Convert to i2c's .probe_new() 2022-12-09 10:32:54 +01:00
chrontel-ch7033.c drm/bridge: chrontel-ch7033: Convert to i2c's .probe_new() 2022-12-08 17:21:35 +01:00
cros-ec-anx7688.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
display-connector.c drm/bridge: display-connector: Use dev_err_probe() 2023-03-22 11:51:16 +01:00
fsl-ldb.c drm/bridge: fsl-ldb: Add i.MX6SX support 2023-04-14 22:21:29 +02:00
ite-it6505.c drm/bridge: it6505: Move a variable assignment behind a null pointer check in receive_timing_debugfs_show() 2023-04-28 19:26:24 +02:00
ite-it66121.c drm/bridge: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:31 +01:00
Kconfig drm: bridge: Generalize Exynos-DSI driver into a Samsung DSIM bridge 2023-03-28 09:05:41 +09:00
lontium-lt8912b.c drm/bridge: lt8912b: Fix DSI Video Mode 2023-04-03 14:29:28 +02:00
lontium-lt9211.c drm/bridge: lt9211: Do not generate HFP/HBP/HSA and EOT packet 2023-05-06 17:21:57 +02:00
lontium-lt9611.c drm/bridge: lt9611: Do not generate HFP/HBP/HSA and EOT packet 2023-05-06 17:21:58 +02:00
lontium-lt9611uxc.c drm/bridge: lt9611uxc: Convert to i2c's .probe_new() 2022-12-09 10:32:56 +01:00
lvds-codec.c drm/bridge: lvds-codec: Convert to platform remove callback returning void 2023-03-20 11:51:52 +01: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/bridge: megachips: Convert to i2c's .probe_new() 2022-12-09 10:32:56 +01:00
nwl-dsi.c drm/bridge: nwl-dsi: Convert to platform remove callback returning void 2023-03-20 11:51:53 +01:00
nwl-dsi.h
nxp-ptn3460.c drm/bridge: nxp-ptn3460: Convert to i2c's .probe_new() 2022-12-09 10:32:56 +01:00
panel.c Merge remote-tracking branch 'drm/drm-next' into msm-next 2023-03-20 10:31:25 -07:00
parade-ps8622.c drm: Use of_property_read_bool() for boolean properties 2023-03-30 13:46:07 -05:00
parade-ps8640.c drm/bridge: ps8640: Use constant sleep time for polling hpd 2023-04-05 14:42:12 +02:00
samsung-dsim.c drm: bridge: samsung-dsim: Fix i.MX8M enable flow to meet spec 2023-05-25 18:16:32 +02:00
sii902x.c drm/bridge: sii902x: Use dev_err_probe 2023-01-19 08:41:41 +01:00
sii9234.c gpu: drm: bridge: sii9234: remove unused bridge_to_sii9234 function 2023-03-20 10:48:25 +01:00
sil-sii8620.c drm/bridge: sii8620: Convert to i2c's .probe_new() 2022-12-09 10:32:57 +01:00
sil-sii8620.h
simple-bridge.c drm: bridge: simple-bridge: Use dev_err_probe() 2023-03-22 11:51:30 +01:00
tc358762.c drm/bridge: tc358762: Set pre_enable_prev_first 2023-03-02 09:14:35 -08:00
tc358764.c drm/bridge: tc358764: Enable pre_enable_prev_first flag 2023-01-26 15:11:24 +09:00
tc358767.c drm/bridge: tc358767: explicitly set readable registers 2023-05-25 18:16:16 +02:00
tc358768.c drm/bridge: tc358768: remove unneeded semicolon 2023-05-16 10:19:15 +02:00
tc358775.c drm/bridge: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:31 +01:00
thc63lvd1024.c drm/bridge: thc63lvd1024: Convert to platform remove callback returning void 2023-03-20 11:51:55 +01:00
ti-dlpc3433.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ti-sn65dsi83.c drm/bridge: ti-sn65dsi83: Fix enable/disable flow to meet spec 2023-05-25 18:16:32 +02:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: Implement wait_hpd_asserted 2023-04-20 11:39:28 -07:00
ti-tfp410.c drm/bridge: ti-tfp410: Convert to platform remove callback returning void 2023-03-20 11:51:55 +01:00
ti-tpd12s015.c