[PATCH 1/2] dmaengine: qcom_bam_dma: Clear IRQ only if its set

From: Pramod Gurav
Date: Tue Mar 22 2016 - 05:50:19 EST


Clear the BAM IRQ bit only if there is a BAM interrupt.

Signed-off-by: Pramod Gurav <gpramod@xxxxxxxxxxxxxx>
---
drivers/dma/qcom/bam_dma.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
index d5e0a9c..0880345 100644
--- a/drivers/dma/qcom/bam_dma.c
+++ b/drivers/dma/qcom/bam_dma.c
@@ -807,7 +807,8 @@ static irqreturn_t bam_dma_irq(int irq, void *data)
/* don't allow reorder of the various accesses to the BAM registers */
mb();

- writel_relaxed(clr_mask, bam_addr(bdev, 0, BAM_IRQ_CLR));
+ if (srcs & BAM_IRQ)
+ writel_relaxed(clr_mask, bam_addr(bdev, 0, BAM_IRQ_CLR));

return IRQ_HANDLED;
}
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation