summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVishnuvardhan Prodduturi <vproddut@codeaurora.org>2017-01-20 11:30:57 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-06 09:22:30 -0800
commitd1a2e03ebb9f3993d0e877bf536ffa902019a435 (patch)
tree76262d21b960c39d25b87138dc774e5cbde0694c
parent9dda3223bc15bbf43babeae3fc704829af4a6e5f (diff)
msm: mdss: clear BTA_DONE interrupt during DSI read operations
In cases where DSI DMA done operation is performed but isr is not triggered due to CPU delays, we clear only the DMA_DONE interrupt. There is a possibility of a DSI read operation for DSI command mode panels where the DMA_DONE interrupt is cleared and DSI link clocks are turned off. After some time, the DSI isr gets triggered for BTA_DONE interrupt and since DSI link clocks are off, this causes an interrupt storm due to BTA_DONE interrupt not getting cleared. Clear the BTA_DONE interrupt as well for cases where DMA_DONE operation is done but isr not getting triggered. Change-Id: Iceb02e6dd78f4bbf313e2b4d252d6a30699619f0 Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org> Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_host.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c
index 8b28ee3f530f..d87e89d8901c 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_host.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_host.c
@@ -2148,8 +2148,8 @@ static int mdss_dsi_cmd_dma_tx(struct mdss_dsi_ctrl_pdata *ctrl,
status = reg_val & DSI_INTR_CMD_DMA_DONE;
if (status) {
reg_val &= DSI_INTR_MASK_ALL;
- /* clear CMD DMA isr only */
- reg_val |= DSI_INTR_CMD_DMA_DONE;
+ /* clear CMD DMA and BTA_DONE isr only */
+ reg_val |= (DSI_INTR_CMD_DMA_DONE | DSI_INTR_BTA_DONE);
MIPI_OUTP(ctrl->ctrl_base + 0x0110, reg_val);
mdss_dsi_disable_irq_nosync(ctrl, DSI_CMD_TERM);
complete(&ctrl->dma_comp);