After tc358768_setup_pll() enables PLL_CKEN and the lock indicator comes
up, the DSI register sequence runs near immediately. On TF700T this
results in the bridge claiming PLL lock but producing no DSI video output:
the panel powers up, the backlight comes on, but the framebuffer is never
scanned out.

Insert a small settling delay between PLL setup and the rest of the
attach.

Suggested-by: Michele Brocco <[email protected]>
Tested-by: Michele Brocco <[email protected]> # TF700T
Signed-off-by: Svyatoslav Ryhel <[email protected]>
---
 drivers/gpu/drm/bridge/tc358768.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/bridge/tc358768.c 
b/drivers/gpu/drm/bridge/tc358768.c
index 0f2820b37302..17abb24a7181 100644
--- a/drivers/gpu/drm/bridge/tc358768.c
+++ b/drivers/gpu/drm/bridge/tc358768.c
@@ -824,6 +824,9 @@ static void tc358768_bridge_atomic_pre_enable(struct 
drm_bridge *bridge,
                return;
        }
 
+       /* Allow the PLL to settle */
+       msleep(20);
+
        drm_display_mode_to_videomode(mode, &vm);
 
        dsiclk = priv->dsiclk;
-- 
2.51.0

Reply via email to