dmaengine: ti: k3-udma: Add missing dma_sync call for rx flush descriptor
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Tue, 12 May 2020 13:45:44 +0000 (16:45 +0300)
committerVinod Koul <vkoul@kernel.org>
Fri, 15 May 2020 05:52:41 +0000 (11:22 +0530)
The TR mode rx flush descriptor did not had a dma_sync_single_for_device()
call to make sure that the DMA see the correct information.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20200512134544.5839-1-peter.ujfalusi@ti.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/ti/k3-udma.c

index 80d64f7..58af578 100644 (file)
@@ -3463,6 +3463,9 @@ static int udma_setup_rx_flush(struct udma_dev *ud)
        tr_req->icnt0 = rx_flush->buffer_size;
        tr_req->icnt1 = 1;
 
+       dma_sync_single_for_device(dev, hwdesc->cppi5_desc_paddr,
+                                  hwdesc->cppi5_desc_size, DMA_TO_DEVICE);
+
        /* Set up descriptor to be used for packet mode */
        hwdesc = &rx_flush->hwdescs[1];
        hwdesc->cppi5_desc_size = ALIGN(sizeof(struct cppi5_host_desc_t) +