diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index 629fd9f004..93b0652f80 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -7550,15 +7550,13 @@ int dsi_display_pre_kickoff(struct drm_connector *connector, struct dsi_display *display, struct msm_display_kickoff_params *params) { - int rc = 0; + int rc = 0, ret = 0; int i; /* check and setup MISR */ if (display->misr_enable) _dsi_display_setup_misr(display); - rc = dsi_display_set_roi(display, params->rois); - /* dynamic DSI clock setting */ if (atomic_read(&display->clkrate_change_pending)) { mutex_lock(&display->display_lock); @@ -7576,7 +7574,6 @@ int dsi_display_pre_kickoff(struct drm_connector *connector, */ display_for_each_ctrl(i, display) { struct dsi_ctrl *ctrl = display->ctrl[i].ctrl; - int ret = 0; ret = dsi_ctrl_wait_for_cmd_mode_mdp_idle(ctrl); if (ret) @@ -7594,6 +7591,9 @@ wait_failure: mutex_unlock(&display->display_lock); } + if (!ret) + rc = dsi_display_set_roi(display, params->rois); + return rc; }