drm/msm/dpu: Fix clock issue after bind failure
authorJayant Shekhar <jshekhar@codeaurora.org>
Wed, 5 Dec 2018 16:21:47 +0000 (21:51 +0530)
committerRob Clark <robdclark@gmail.com>
Tue, 11 Dec 2018 18:10:19 +0000 (13:10 -0500)
In case of msm drm bind failure, pm runtime put sync
is called from dsi driver which issues an asynchronous
put on mdss device. Subsequently when dpu_mdss_destroy
is triggered the change will make sure to put the mdss
device in suspend and clearing pending work if not
scheduled.

Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c

index 413e1ee43cf2c5cffb9fe6ce22d522fe800b4d4d..cb307a2abf06c6136976f861e28525a244a34882 100644 (file)
@@ -160,6 +160,7 @@ static void dpu_mdss_destroy(struct drm_device *dev)
        struct dpu_mdss *dpu_mdss = to_dpu_mdss(priv->mdss);
        struct dss_module_power *mp = &dpu_mdss->mp;
 
+       pm_runtime_suspend(dev->dev);
        pm_runtime_disable(dev->dev);
        _dpu_mdss_irq_domain_fini(dpu_mdss);
        free_irq(platform_get_irq(pdev, 0), dpu_mdss);