summaryrefslogtreecommitdiffstats
path: root/arch/riscv
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2023-06-22 09:59:18 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2023-06-22 09:59:18 +0200
commit440f9ded5bf2fda32c7618d988065ba3b227831f (patch)
treef2f51b213932a0079c5eb00607242969bf0f0af7 /arch/riscv
parente692fd2127763b06d215a0fca51e2dbc338bd06c (diff)
parente3e5f59ce5149d8f7bbe4314c1774cf1d25e8816 (diff)
downloadbarebox-440f9ded5bf2fda32c7618d988065ba3b227831f.tar.gz
barebox-440f9ded5bf2fda32c7618d988065ba3b227831f.tar.xz
Merge branch 'for-next/dma-streaming-interface'
Diffstat (limited to 'arch/riscv')
-rw-r--r--arch/riscv/cpu/dma.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/arch/riscv/cpu/dma.c b/arch/riscv/cpu/dma.c
index 5a4d714e5e..511170aaa4 100644
--- a/arch/riscv/cpu/dma.c
+++ b/arch/riscv/cpu/dma.c
@@ -52,23 +52,24 @@ void dma_set_ops(const struct dma_ops *ops)
dma_ops = ops;
}
-void dma_sync_single_for_cpu(dma_addr_t address, size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(void *vaddr, size_t size,
+ enum dma_data_direction dir)
{
- /*
- * FIXME: This function needs a device argument to support non 1:1 mappings
- */
+ unsigned long start = (unsigned long)vaddr;
+ unsigned long end = start + size;
+
if (dir != DMA_TO_DEVICE)
- dma_ops->inv_range(address, address + size);
+ dma_ops->inv_range(start, end);
}
-void dma_sync_single_for_device(dma_addr_t address, size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(void *vaddr, size_t size,
+ enum dma_data_direction dir)
{
- /*
- * FIXME: This function needs a device argument to support non 1:1 mappings
- */
+ unsigned long start = (unsigned long)vaddr;
+ unsigned long end = start + size;
if (dir == DMA_FROM_DEVICE)
- dma_ops->inv_range(address, address + size);
+ dma_ops->inv_range(start, end);
else
- dma_ops->flush_range(address, address + size);
+ dma_ops->flush_range(start, end);
}