From ff357c9c571bec0f1fa7f524d4d5f9ee912feac9 Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com>
Date: Mon, 12 Aug 2024 13:31:58 +0100
Subject: [PATCH] drm/vc4: Add a delay after disabling hdmi phy output

There appears to be a requirement for some devices
(I'm testing with a 8K VRROOM 40Gbps HDMI switch)
for a measable delay between removing the hdmi phy output from
the old mode, to enabling the hdmi phy output for the new mode.

Without the delay, a mode switch has a small change of getting a permanent
'no signal', which requires a subsequent mode switch or a unplug/replug
to redetect.

Switching between 4kp24/25/30 modes fails about 5% of time in my testing.

Add a delay to make it impossible to switch faster than this.

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
---
 drivers/gpu/drm/vc4/vc4_crtc.c | 1 +
 1 file changed, 1 insertion(+)

--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -647,6 +647,7 @@ static void vc4_crtc_atomic_disable(stru
 	 * someone was waiting it.
 	 */
 	vc4_crtc_send_vblank(crtc);
+	msleep(20);
 }
 
 static void vc4_crtc_atomic_enable(struct drm_crtc *crtc,
