From 3299540a16c728b3f42a5ea7c63dfc0a318c481d Mon Sep 17 00:00:00 2001 From: Padmanabhan Komanduru Date: Thu, 5 Feb 2015 15:38:26 +0530 Subject: [PATCH] msm: mdss: check for clock lane HS setting before overflow recovery When the clock lane is forced to HS always, it is possible that the clock lane status iS HS and data lanes are in LP mode. We need not perform data lane HS overflow recovery. Add a check for clock lane HS setting in such cases. Change-Id: I2a4cc3bba90ae6a48183810717318fac450775bb Signed-off-by: Padmanabhan Komanduru (cherry picked from commit d5a33b3bc61303b9c75b827d5a4e1476e1ff66c7) [veeras@codeaurora.org: Resolve merge conflict in mdss_dsi_host.c] Signed-off-by: Veera Sundaram Sankaran --- drivers/video/fbdev/msm/mdss_dsi_host.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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