Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/rockchip: Suspend DP late

In commit fe64ba5c6323 ("drm/rockchip: Resume DP early") we moved
resume to be early but left suspend at its normal time. This seems
like it could be OK, but casues problems if a suspend gets interrupted
partway through. The OS only balances matching suspend/resume levels.
...so if suspend was called then resume will be called. If suspend
late was called then resume early will be called. ...but if suspend
was called resume early might not get called. This leads to an
unbalance in the clock enables / disables.

Lets take the simple fix and just move suspend to be late to match.
This makes the PM core take proper care in keeping things balanced.

Fixes: fe64ba5c6323 ("drm/rockchip: Resume DP early")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190802184616.44822-1-dianders@chromium.org

authored by

Douglas Anderson and committed by
Sean Paul
f7ccbed6 9b562437

+1 -1
+1 -1
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
··· 432 432 433 433 static const struct dev_pm_ops rockchip_dp_pm_ops = { 434 434 #ifdef CONFIG_PM_SLEEP 435 - .suspend = rockchip_dp_suspend, 435 + .suspend_late = rockchip_dp_suspend, 436 436 .resume_early = rockchip_dp_resume, 437 437 #endif 438 438 };