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 <pkomandu@codeaurora.org>
(cherry picked from commit d5a33b3bc61303b9c75b827d5a4e1476e1ff66c7)
[veeras@codeaurora.org: Resolve merge conflict in mdss_dsi_host.c]
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
Padmanabhan Komanduru 2015-02-05 15:38:26 +05:30 committed by David Keitel
parent 84019e7e6c
commit 3299540a16

View file

@ -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