diff options
author | Vineet Gupta | 2016-03-16 12:08:57 +0100 |
---|---|---|
committer | Vineet Gupta | 2016-03-19 10:04:09 +0100 |
commit | f2e3d55397ff7ad62e159e14281b346760857935 (patch) | |
tree | c24a20b11bd69c34412fa023da623843fccaf575 /arch/arc/mm/dma.c | |
parent | ARC: dma: ioremap: use phys_addr_t consistenctly in code paths (diff) | |
download | kernel-qcow2-linux-f2e3d55397ff7ad62e159e14281b346760857935.tar.gz kernel-qcow2-linux-f2e3d55397ff7ad62e159e14281b346760857935.tar.xz kernel-qcow2-linux-f2e3d55397ff7ad62e159e14281b346760857935.zip |
ARC: dma: reintroduce platform specific dma<->phys
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/mm/dma.c')
-rw-r--r-- | arch/arc/mm/dma.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/arc/mm/dma.c b/arch/arc/mm/dma.c index 608c143e9d38..8c8e36fa5659 100644 --- a/arch/arc/mm/dma.c +++ b/arch/arc/mm/dma.c @@ -60,8 +60,7 @@ static void *arc_dma_alloc(struct device *dev, size_t size, /* This is linear addr (0x8000_0000 based) */ paddr = page_to_phys(page); - /* For now bus address is exactly same as paddr */ - *dma_handle = paddr; + *dma_handle = plat_phys_to_dma(dev, paddr); /* This is kernel Virtual address (0x7000_0000 based) */ if (need_kvaddr) { @@ -134,7 +133,7 @@ static dma_addr_t arc_dma_map_page(struct device *dev, struct page *page, { phys_addr_t paddr = page_to_phys(page) + offset; _dma_cache_sync(paddr, size, dir); - return (dma_addr_t)paddr; + return plat_phys_to_dma(dev, paddr); } static int arc_dma_map_sg(struct device *dev, struct scatterlist *sg, @@ -153,13 +152,13 @@ static int arc_dma_map_sg(struct device *dev, struct scatterlist *sg, static void arc_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction dir) { - _dma_cache_sync(dma_handle, size, DMA_FROM_DEVICE); + _dma_cache_sync(plat_dma_to_phys(dev, dma_handle), size, DMA_FROM_DEVICE); } static void arc_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction dir) { - _dma_cache_sync(dma_handle, size, DMA_TO_DEVICE); + _dma_cache_sync(plat_dma_to_phys(dev, dma_handle), size, DMA_TO_DEVICE); } static void arc_dma_sync_sg_for_cpu(struct device *dev, |