bcm2835-dma: Avoid losing CS flags after interrupt
authorDom Cobley <popcornmix@gmail.com>
Wed, 6 Jan 2021 18:16:10 +0000 (18:16 +0000)
committerpopcornmix <popcornmix@gmail.com>
Wed, 27 Jan 2021 19:13:31 +0000 (19:13 +0000)
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
drivers/dma/bcm2835-dma.c

index 8b97b9f..94a1b40 100644 (file)
@@ -715,7 +715,7 @@ static irqreturn_t bcm2835_dma_callback(int irq, void *data)
         * if this IRQ handler is threaded.) If the channel is finished, it
         * will remain idle despite the ACTIVE flag being set.
         */
-       writel(BCM2835_DMA_INT | BCM2835_DMA_ACTIVE,
+       writel(BCM2835_DMA_INT | BCM2835_DMA_ACTIVE | BCM2835_DMA_CS_FLAGS(c->dreq),
               c->chan_base + BCM2835_DMA_CS);
 
        d = c->desc;