drm/msm/dsi: Use correct pm_runtime_put variant during host_init
authorArchit Taneja <architt@codeaurora.org>
Fri, 6 Oct 2017 10:57:06 +0000 (16:27 +0530)
committerRob Clark <robdclark@gmail.com>
Thu, 12 Oct 2017 16:59:46 +0000 (12:59 -0400)
commita18a0ea0096833ecb52053b183fcf9709f7bafd8
tree5804f0ebbd69fb338679ca2c78cc18fc23d5e88a
parentc9811d0fa55929b182f62e0ee49b71b0bea6a936
drm/msm/dsi: Use correct pm_runtime_put variant during host_init

The DSI runtime PM suspend/resume callbacks check whether
msm_host->cfg_hnd is non-NULL before trying to enable the bus clocks.
This is done to accommodate early calls to these functions that may
happen before the bus clocks are even initialized.

Calling pm_runtime_put_autosuspend() in dsi_host_init() can result in
racy behaviour since msm_host->cfg_hnd is set very soon after. If the
suspend callback happens too late, we end up trying to disable clocks
that were never enabled, resulting in a bunch of WARN_ON splats.

Use pm_runtime_put_sync() so that the suspend callback is called
immediately.

Reported-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/dsi/dsi_host.c