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

Signed-off-by: Pramod Gurav <gpra...@codeaurora.org>
---
 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

Reply via email to