summaryrefslogtreecommitdiffstats
path: root/arch/arm/cpu
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-01-17 16:38:19 -0800
committerSascha Hauer <s.hauer@pengutronix.de>2019-01-21 10:33:30 +0100
commitc3616911c39b73746f12b6c6bfedecb827426b6c (patch)
treefcf7a334908532d4fc734167866e02841cdc11da /arch/arm/cpu
parenta543f35b69170456221403549c52d721cda6c763 (diff)
downloadbarebox-c3616911c39b73746f12b6c6bfedecb827426b6c.tar.gz
barebox-c3616911c39b73746f12b6c6bfedecb827426b6c.tar.xz
ARM64: mmu: Use arch_remap_range() internally
Instead of calling map_region() explicitly, call arch_regmap_range() instead to simplify the code. This also ensures that tlb_invalidate() gets called when dma_free_coherent() is invoked. Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/cpu')
-rw-r--r--arch/arm/cpu/mmu_64.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/arm/cpu/mmu_64.c b/arch/arm/cpu/mmu_64.c
index e2dd5b4d82..cd9b745605 100644
--- a/arch/arm/cpu/mmu_64.c
+++ b/arch/arm/cpu/mmu_64.c
@@ -261,8 +261,7 @@ void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle)
if (dma_handle)
*dma_handle = (dma_addr_t)ret;
- map_region((unsigned long)ret, (unsigned long)ret, size, UNCACHED_MEM);
- tlb_invalidate();
+ arch_remap_range(ret, size, MAP_UNCACHED);
return ret;
}
@@ -270,8 +269,7 @@ void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle)
void dma_free_coherent(void *mem, dma_addr_t dma_handle, size_t size)
{
size = PAGE_ALIGN(size);
-
- map_region((unsigned long)mem, (unsigned long)mem, size, CACHED_MEM);
+ arch_remap_range(mem, size, MAP_CACHED);
free(mem);
}