Adding missing pm_runtime references where appropriate. Signed-off-by: Sean Paul <seanpaul@xxxxxxxxxxxx> --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 3 +++ drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index f1642d72469e..df6cbeb15cf5 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -3497,6 +3497,7 @@ static void dpu_crtc_disable(struct drm_crtc *crtc) /* disable clk & bw control until clk & bw properties are set */ cstate->bw_control = false; cstate->bw_split_vote = false; + pm_runtime_put_sync(crtc->dev->dev); mutex_unlock(&dpu_crtc->crtc_lock); } @@ -3523,6 +3524,8 @@ static void dpu_crtc_enable(struct drm_crtc *crtc, DPU_EVT32_VERBOSE(DRMID(crtc)); dpu_crtc = to_dpu_crtc(crtc); + pm_runtime_get_sync(crtc->dev->dev); + drm_for_each_encoder(encoder, crtc->dev) { if (encoder->crtc != crtc) continue; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index fb4de59d8ed1..b919c9a6a463 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -114,6 +114,7 @@ static int _dpu_danger_signal_status(struct seq_file *s, priv = kms->dev->dev_private; memset(&status, 0, sizeof(struct dpu_danger_safe_status)); + pm_runtime_get_sync(kms->dev->dev); dpu_power_resource_enable(&priv->phandle, kms->core_client, true); if (danger_status) { seq_puts(s, "\nDanger signal status:\n"); @@ -127,6 +128,7 @@ static int _dpu_danger_signal_status(struct seq_file *s, &status); } dpu_power_resource_enable(&priv->phandle, kms->core_client, false); + pm_runtime_put_sync(kms->dev->dev); seq_printf(s, "MDP : 0x%x\n", status.mdp); @@ -346,12 +348,14 @@ static void _dpu_debugfs_destroy(struct dpu_kms *dpu_kms) static int dpu_kms_enable_vblank(struct msm_kms *kms, struct drm_crtc *crtc) { + pm_runtime_get_sync(crtc->dev->dev); return dpu_crtc_vblank(crtc, true); } static void dpu_kms_disable_vblank(struct msm_kms *kms, struct drm_crtc *crtc) { dpu_crtc_vblank(crtc, false); + pm_runtime_put_sync(crtc->dev->dev); } static void dpu_kms_wait_for_frame_transfer_complete(struct msm_kms *kms, @@ -413,6 +417,7 @@ static void dpu_kms_prepare_commit(struct msm_kms *kms, if (!dev || !dev->dev_private) return; priv = dev->dev_private; + pm_runtime_get_sync(dev->dev); dpu_power_resource_enable(&priv->phandle, dpu_kms->core_client, true); list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) @@ -471,6 +476,7 @@ static void dpu_kms_complete_commit(struct msm_kms *kms, } dpu_power_resource_enable(&priv->phandle, dpu_kms->core_client, false); + pm_runtime_put_sync(dpu_kms->dev->dev); DPU_EVT32_VERBOSE(DPU_EVTLOG_FUNC_EXIT); } @@ -1896,7 +1902,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms) dpu_kms->core_client = NULL; goto error; } - + pm_runtime_get_sync(dev->dev); rc = dpu_power_resource_enable(&priv->phandle, dpu_kms->core_client, true); if (rc) { @@ -2030,6 +2036,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms) dpu_kms_handle_power_event, dpu_kms, "kms"); dpu_power_resource_enable(&priv->phandle, dpu_kms->core_client, false); + pm_runtime_put_sync(dev->dev); return 0; @@ -2039,6 +2046,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms) perf_err: power_error: dpu_power_resource_enable(&priv->phandle, dpu_kms->core_client, false); + pm_runtime_put_sync(dev->dev); error: _dpu_kms_hw_destroy(dpu_kms, platformdev); end: -- 2.16.1.291.g4437f3f132-goog -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html