linux/drivers/gpu/drm/bridge
Frieder Schrempf 25a724c2fa drm/bridge: ti-sn65dsi83: Fix enable/disable flow to meet spec
[ Upstream commit dd9e329af7 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-07-19 16:21:23 +02:00
..
adv7511 drm/bridge: adv7533: Fix adv7533_mode_valid for adv7533 and adv7535 2023-05-11 23:03:10 +09:00
analogix drm/bridge: anx7625: Prevent endless probe loop 2023-07-19 16:21:21 +02:00
cadence gpu/drm/bridge/cadence: avoid flush_scheduled_work() usage 2022-09-01 13:43:46 +02:00
imx drm: Remove linux/i2c.h from drm_crtc.h 2022-07-05 21:15:23 +03:00
synopsys drm: bridge: dw_hdmi: fix preference of RGB modes over YUV420 2022-12-01 09:24:04 +01:00
cdns-dsi.c drm/bridge: cdns-dsi: Add support for pre_enable and post_enable control functions. 2022-05-11 14:26:13 +02:00
chipone-icn6211.c drm: bridge: icn6211: Add support for external REFCLK 2022-08-26 13:54:52 +02:00
chrontel-ch7033.c Revert "drm/bridge: chrontel-ch7033: Add byteswap order setting" 2022-09-19 15:17:04 +02:00
cros-ec-anx7688.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
display-connector.c drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
fsl-ldb.c drm/bridge: fsl-ldb: Enable split mode for LVDS dual link 2022-07-06 15:33:14 +02:00
ite-it6505.c drm/bridge: it6505: Move a variable assignment behind a null pointer check in receive_timing_debugfs_show() 2023-07-19 16:21:14 +02:00
ite-it66121.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
Kconfig drm/bridge: imx: Add i.MX8qm/qxp pixel combiner support 2022-06-20 21:15:07 +02:00
lontium-lt8912b.c drm/bridge: lt8912b: Fix DSI Video Mode 2023-05-17 11:53:47 +02:00
lontium-lt9211.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
lontium-lt9611.c drm/bridge: lt9611: Fix PLL being unable to lock 2023-04-13 16:55:37 +02:00
lontium-lt9611uxc.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
lvds-codec.c drm/bridge: lvds-codec: Fix error checking of drm_of_lvds_get_data_mapping() 2022-08-29 17:30:32 +02:00
Makefile drm/bridge: imx: Add i.MX8qm/qxp pixel combiner support 2022-06-20 21:15:07 +02:00
megachips-stdpxxxx-ge-b850v3-fw.c drm/bridge: megachips: Fix error handling in i2c_register_driver() 2023-03-10 09:33:09 +01:00
nwl-dsi.c drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
nwl-dsi.h drm/bridge: Add NWL MIPI DSI host controller support 2020-04-09 15:52:47 +02:00
nxp-ptn3460.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
panel.c drm/bridge: panel: Introduce drmm_of_get_bridge 2022-07-13 10:46:06 +02:00
parade-ps8622.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
parade-ps8640.c drm/bridge: ps8640: Add back the 50 ms mystery delay after HPD 2022-10-21 08:07:12 -07:00
sii902x.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
sii9234.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
sil-sii8620.c i2c: Make remove callback return void 2022-08-16 12:46:26 +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: Drop drm_edid.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
tc358762.c drm/mipi-dsi: Make remove callback return void 2022-07-09 10:50:03 +02:00
tc358764.c drm/mipi-dsi: Make remove callback return void 2022-07-09 10:50:03 +02:00
tc358767.c drm/bridge: tc358767: Switch to devm MIPI-DSI helpers 2023-07-19 16:21:19 +02:00
tc358768.c drm/bridge: tc358768: fix THS_TRAILCNT computation 2023-07-19 16:21:16 +02:00
tc358775.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
thc63lvd1024.c drm/bridge: thc63lvd1024: Fix regulator_get_optional() misuse 2021-01-05 07:19:48 +02: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-07-19 16:21:23 +02:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: Avoid possible buffer overflow 2023-06-21 16:01:00 +02:00
ti-tfp410.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
ti-tpd12s015.c drm/bridge: tpd12s015: Fix irq registering in tpd12s015_probe 2020-11-05 22:09:09 +01:00