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