diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c index 9dce7eb37643..28164a9bd191 100644 --- a/drivers/video/fbdev/msm/mdss_dsi_host.c +++ b/drivers/video/fbdev/msm/mdss_dsi_host.c @@ -2112,7 +2112,7 @@ static int dsi_event_thread(void *data) struct mdss_dsi_ctrl_pdata *ctrl; unsigned long flag; struct sched_param param; - u32 todo = 0, ln_status; + u32 todo = 0, ln_status, force_clk_ln_hs; u32 arg; int ret; @@ -2170,10 +2170,13 @@ static int dsi_event_thread(void *data) * clock lane is not in Stop State. */ ln_status = MIPI_INP(ctrl->ctrl_base + 0x00a8); + force_clk_ln_hs = (MIPI_INP(ctrl->ctrl_base + 0x00ac) + & BIT(28)); pr_debug("%s: lane_status: 0x%x\n", __func__, ln_status); if (ctrl->recovery && (ctrl->hw_rev != MDSS_DSI_HW_REV_103) + && !(force_clk_ln_hs) && (ln_status & DSI_DATA_LANES_STOP_STATE) && !(ln_status