dmaengine: stm32-dma: fix stm32_dma_prep_slave_sg in case of MDMA chaining
[platform/kernel/linux-starfive.git] / drivers / dma / stm32-dma.c
index 5c36811..7427acc 100644 (file)
@@ -1113,8 +1113,10 @@ static struct dma_async_tx_descriptor *stm32_dma_prep_slave_sg(
                chan->chan_reg.dma_scr &= ~STM32_DMA_SCR_PFCTRL;
 
        /* Activate Double Buffer Mode if DMA triggers STM32 MDMA and more than 1 sg */
-       if (chan->trig_mdma && sg_len > 1)
+       if (chan->trig_mdma && sg_len > 1) {
                chan->chan_reg.dma_scr |= STM32_DMA_SCR_DBM;
+               chan->chan_reg.dma_scr &= ~STM32_DMA_SCR_CT;
+       }
 
        for_each_sg(sgl, sg, sg_len, i) {
                ret = stm32_dma_set_xfer_param(chan, direction, &buswidth,