summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorVineet Bajaj <vbajaj@codeaurora.org>2014-05-12 17:52:53 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:29:59 -0700
commit959165024868c3ad5f7413c752f102d9207c2efe (patch)
treeae0baa10ce3ee7837086a28e5ab4560d3d94a80b /drivers/video/fbdev
parent208c3bd8aa18db8dc42564021d7c99a34425893f (diff)
msm: mdss: Avoid unclocked register access with dsi_event_thread
In the case when ESD status check fails with DSI ACK errors, there is a chance of unclocked register access when DSI_INTR_CTRL register is being set. Change-Id: I629b4ec642a86369b6ed693bdc6f8b4260ec1f5d Signed-off-by: Vineet Bajaj <vbajaj@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_host.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c
index c84cefb1e067..dea677b90a33 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_host.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_host.c
@@ -1427,8 +1427,10 @@ static int dsi_event_thread(void *data)
if (todo & DSI_EV_MDP_FIFO_UNDERFLOW) {
if (ctrl->recovery) {
+ mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 1);
mdss_dsi_sw_reset_restore(ctrl);
ctrl->recovery->fxn(ctrl->recovery->data);
+ mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 0);
}
}
@@ -1440,7 +1442,9 @@ static int dsi_event_thread(void *data)
spin_unlock_irqrestore(&ctrl->mdp_lock, flag);
/* enable dsi error interrupt */
+ mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 1);
mdss_dsi_err_intr_ctrl(ctrl, DSI_INTR_ERROR_MASK, 1);
+ mdss_dsi_clk_ctrl(ctrl, DSI_ALL_CLKS, 0);
}
}