summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadmanabhan Komanduru <pkomandu@codeaurora.org>2014-02-27 16:21:30 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:27:29 -0700
commit5f335fb759d48474df1c798cb15eee215ebcaa0b (patch)
tree6a577201f0d7210a52102669abc96113d867ef76
parentbd891cc20051e9e3452a0d25757224546cce5716 (diff)
msm: mdss: fix clearing interrupts of DSI0 during isr for DSI1
Currently we need to handle DSI-1 interrupts only for panel/DCS commands in the software during broadcast mode. When we handle isr for DSI-1 interrupt, we clear all the interrupts for DSI-0 also. This might cause timeout issues for waits on DSI-0 interrupts like CMD_MDP_DONE since the interrupt is cleared and we do not handle the interrupt for DSI-0. Fix this issue by clearing only the DMA_DONE interrupt for DSI-0 during the isr handling for DSI-1. Change-Id: Id1735673f94066ff6c7250eaef7d9394b0525c2f Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_host.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c
index 11e6c984440a..9908a32ec163 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_host.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_host.c
@@ -1483,7 +1483,9 @@ irqreturn_t mdss_dsi_isr(int irq, void *ptr)
u32 isr0;
isr0 = MIPI_INP(left_ctrl_pdata->ctrl_base
+ 0x0110);/* DSI_INTR_CTRL */
- MIPI_OUTP(left_ctrl_pdata->ctrl_base + 0x0110, isr0);
+ if (isr0 & DSI_INTR_CMD_DMA_DONE)
+ MIPI_OUTP(left_ctrl_pdata->ctrl_base + 0x0110,
+ DSI_INTR_CMD_DMA_DONE);
}
pr_debug("%s: ndx=%d isr=%x\n", __func__, ctrl->ndx, isr);