Commit 085af7d2 authored by Brian Norris's avatar Brian Norris Committed by Heiko Stuebner
Browse files

drm/rockchip: vop: Add timeout for DSP hold



If hardware is malfunctioning (e.g., misconfigured clocks?), we can get
stuck here forever, holding various DRM locks and eventually locking up
the entire system. It's better to complain loudly and move on, than to
lock up the system.

In local tests, this operation takes less than 20ms.

Signed-off-by: default avatarBrian Norris <briannorris@chromium.org>
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20211008153102.1.I2a5dbaaada35023a9703a8db7af501528fbb6e31@changeid
parent 75ad021f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -726,7 +726,9 @@ static void vop_crtc_atomic_disable(struct drm_crtc *crtc,

	spin_unlock(&vop->reg_lock);

	wait_for_completion(&vop->dsp_hold_completion);
	if (!wait_for_completion_timeout(&vop->dsp_hold_completion,
					 msecs_to_jiffies(200)))
		WARN(1, "%s: timed out waiting for DSP hold", crtc->name);

	vop_dsp_hold_valid_irq_disable(vop);