diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c index 1c7d55cecd30..9dce7eb37643 100644 --- a/drivers/video/fbdev/msm/mdss_dsi_host.c +++ b/drivers/video/fbdev/msm/mdss_dsi_host.c @@ -520,6 +520,7 @@ static void mdss_dsi_wait_clk_lane_to_stop(struct mdss_dsi_ctrl_pdata *ctrl) static void mdss_dsi_start_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) { mutex_lock(&ctrl->clk_lane_mutex); + mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 1); if (ctrl->clk_lane_cnt) { pr_err("%s: ndx=%d do-wait, cnt=%d\n", __func__, ctrl->ndx, ctrl->clk_lane_cnt); @@ -531,6 +532,7 @@ static void mdss_dsi_start_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) ctrl->clk_lane_cnt++; pr_debug("%s: ndx=%d, set_hs, cnt=%d\n", __func__, ctrl->ndx, ctrl->clk_lane_cnt); + mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 0); mutex_unlock(&ctrl->clk_lane_mutex); } @@ -547,6 +549,7 @@ static void mdss_dsi_stop_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl, unsigned long flags; mutex_lock(&ctrl->clk_lane_mutex); + mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 1); if (ctrl->clk_lane_cnt != 1) { pr_err("%s: ndx=%d wait had been done, cnt=%d\n", __func__, ctrl->ndx, ctrl->clk_lane_cnt); @@ -590,6 +593,7 @@ release: pr_debug("%s: ndx=%d, cnt=%d\n", __func__, ctrl->ndx, ctrl->clk_lane_cnt); + mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 0); mutex_unlock(&ctrl->clk_lane_mutex); }