drm/rockchip: vop: Use Use pm_runtime_put_sync() in vop_crtc_disable()

The procedure of rpm_idle() is as follows.
rpm_idle
->rpm_suspend
  ->pm_genpd_runtime_suspend
    ->pm_clk_suspend
      ->clk_disable
    ->genpd_poweroff

Pm_runtime_put(dev) causes rpm_idle() to be queued up, when
pm_clk_suspend() is executed, the rockchip dmcfreq lock is
released, vop clocks may be closed while changing ddr frequency.
Use pm_runtime_put_sync() instead of pm_runtime_put(), so that
rpm_idle can be executed before the lock is released.

Change-Id: Ibf4ff70b65782427eaf0fe9f7566ebff602d3757
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
This commit is contained in:
Finley Xiao 2018-09-28 11:42:38 +08:00 committed by Tao Huang
commit 69fb6b99a6

View file

@ -1429,7 +1429,7 @@ static void vop_crtc_disable(struct drm_crtc *crtc)
vop->is_iommu_enabled = false;
}
pm_runtime_put(vop->dev);
pm_runtime_put_sync(vop->dev);
clk_disable_unprepare(vop->dclk);
clk_disable_unprepare(vop->aclk);
clk_disable_unprepare(vop->hclk);