From d26d1a0d703d4b3e79052e6f47375f4c808de785 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 May 2023 16:08:15 +0100 Subject: [PATCH] dmaengine: bcm2835: Use dma_map_resource The commit titled "bcm2835-dma: Derive slave DMA addresses correctly" (now squashed into DMA roll-up) moved the responsibility for calculating DMA addresses to the DMA driver. Unfortunately it committed the sin of using phys_to_dma directly rather than using the approved API, i.e. dma_map_resource. Signed-off-by: Phil Elwell --- drivers/dma/bcm2835-dma.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c index 811909e942862..6c1b2da367a4a 100644 --- a/drivers/dma/bcm2835-dma.c +++ b/drivers/dma/bcm2835-dma.c @@ -18,7 +18,6 @@ * Copyright 2012 Marvell International Ltd. */ #include -#include #include #include #include @@ -1024,12 +1023,14 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg( if (direction == DMA_DEV_TO_MEM) { if (c->cfg.src_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) return NULL; - src = phys_to_dma(chan->device->dev, c->cfg.src_addr); + src = dma_map_resource(chan->device->dev, DMA_SLAVE_BUSWIDTH_4_BYTES, + c->cfg.src_addr, DMA_FROM_DEVICE, 0); info |= BCM2835_DMA_S_DREQ | BCM2835_DMA_D_INC; } else { if (c->cfg.dst_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) return NULL; - dst = phys_to_dma(chan->device->dev, c->cfg.dst_addr); + dst = dma_map_resource(chan->device->dev, DMA_SLAVE_BUSWIDTH_4_BYTES, + c->cfg.dst_addr, DMA_TO_DEVICE, 0); info |= BCM2835_DMA_D_DREQ | BCM2835_DMA_S_INC; } @@ -1099,13 +1100,15 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic( if (direction == DMA_DEV_TO_MEM) { if (c->cfg.src_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) return NULL; - src = phys_to_dma(chan->device->dev, c->cfg.src_addr); + src = dma_map_resource(chan->device->dev, DMA_SLAVE_BUSWIDTH_4_BYTES, + c->cfg.src_addr, DMA_FROM_DEVICE, 0); dst = buf_addr; info |= BCM2835_DMA_S_DREQ | BCM2835_DMA_D_INC; } else { if (c->cfg.dst_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) return NULL; - dst = phys_to_dma(chan->device->dev, c->cfg.dst_addr); + dst = dma_map_resource(chan->device->dev, DMA_SLAVE_BUSWIDTH_4_BYTES, + c->cfg.dst_addr, DMA_TO_DEVICE, 0); src = buf_addr; info |= BCM2835_DMA_D_DREQ | BCM2835_DMA_S_INC;