diff --git a/msm/dp/dp_ctrl.c b/msm/dp/dp_ctrl.c index 1b81192c02..19445de21d 100644 --- a/msm/dp/dp_ctrl.c +++ b/msm/dp/dp_ctrl.c @@ -1168,6 +1168,11 @@ static int dp_ctrl_stream_on(struct dp_ctrl *dp_ctrl, struct dp_panel *panel) ctrl = container_of(dp_ctrl, struct dp_ctrl_private, dp_ctrl); + if (!ctrl->power_on) { + DP_DEBUG("controller powered off\n"); + return -EPERM; + } + rc = dp_ctrl_enable_stream_clocks(ctrl, panel); if (rc) { DP_ERR("failure on stream clock enable\n"); diff --git a/msm/dp/dp_display.c b/msm/dp/dp_display.c index 78686fd7d1..487c63fed2 100644 --- a/msm/dp/dp_display.c +++ b/msm/dp/dp_display.c @@ -1948,8 +1948,8 @@ static int dp_display_prepare(struct dp_display *dp_display, void *panel) end: mutex_unlock(&dp->session_lock); - SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state); - return 0; + SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, rc); + return rc; } static int dp_display_set_stream_info(struct dp_display *dp_display, @@ -2061,7 +2061,7 @@ static int dp_display_enable(struct dp_display *dp_display, void *panel) dp_display_state_add(DP_STATE_ENABLED); end: mutex_unlock(&dp->session_lock); - SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state); + SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, rc); return rc; } diff --git a/msm/dp/dp_drm.c b/msm/dp/dp_drm.c index 7496d60d3e..fbe5ee8736 100644 --- a/msm/dp/dp_drm.c +++ b/msm/dp/dp_drm.c @@ -116,11 +116,9 @@ static void dp_bridge_pre_enable(struct drm_bridge *drm_bridge) dp->set_stream_info(dp, bridge->dp_panel, 0, 0, 0, 0, 0); rc = dp->enable(dp, bridge->dp_panel); - if (rc) { + if (rc) DP_ERR("[%d] DP display enable failed, rc=%d\n", bridge->id, rc); - dp->unprepare(dp, bridge->dp_panel); - } } static void dp_bridge_enable(struct drm_bridge *drm_bridge)