diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c index 811909e942862e..6c1b2da367a4a4 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; diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index 5b4e6d3bf7bcca..082ac54f50544a 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -505,7 +505,7 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents, dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr, size_t size, enum dma_data_direction dir, unsigned long attrs) { - dma_addr_t dma_addr = paddr; + dma_addr_t dma_addr = phys_to_dma_direct(dev, paddr); if (unlikely(!dma_capable(dev, dma_addr, size, false))) { dev_err_once(dev,