Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: reduce visibility of dmac_* functions

The dmac_* functions are private to the ARM DMA API implementation, and
should not be used by drivers. In order to discourage their use, remove
their prototypes and macros from asm/*.h.

We have to leave dmac_flush_range() behind as Exynos and MSM IOMMU code
use these; once these sites are fixed, this can be moved also.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

+33 -6
-4
arch/arm/include/asm/cacheflush.h
··· 140 140 * is visible to DMA, or data written by DMA to system memory is 141 141 * visible to the CPU. 142 142 */ 143 - #define dmac_map_area cpu_cache.dma_map_area 144 - #define dmac_unmap_area cpu_cache.dma_unmap_area 145 143 #define dmac_flush_range cpu_cache.dma_flush_range 146 144 147 145 #else ··· 159 161 * is visible to DMA, or data written by DMA to system memory is 160 162 * visible to the CPU. 161 163 */ 162 - extern void dmac_map_area(const void *, size_t, int); 163 - extern void dmac_unmap_area(const void *, size_t, int); 164 164 extern void dmac_flush_range(const void *, const void *); 165 165 166 166 #endif
-2
arch/arm/include/asm/glue-cache.h
··· 158 158 #define __cpuc_coherent_user_range __glue(_CACHE,_coherent_user_range) 159 159 #define __cpuc_flush_dcache_area __glue(_CACHE,_flush_kern_dcache_area) 160 160 161 - #define dmac_map_area __glue(_CACHE,_dma_map_area) 162 - #define dmac_unmap_area __glue(_CACHE,_dma_unmap_area) 163 161 #define dmac_flush_range __glue(_CACHE,_dma_flush_range) 164 162 #endif 165 163
+1
arch/arm/mm/dma-mapping.c
··· 39 39 #include <asm/system_info.h> 40 40 #include <asm/dma-contiguous.h> 41 41 42 + #include "dma.h" 42 43 #include "mm.h" 43 44 44 45 /*
+32
arch/arm/mm/dma.h
··· 1 + #ifndef DMA_H 2 + #define DMA_H 3 + 4 + #include <asm/glue-cache.h> 5 + 6 + #ifndef MULTI_CACHE 7 + #define dmac_map_area __glue(_CACHE,_dma_map_area) 8 + #define dmac_unmap_area __glue(_CACHE,_dma_unmap_area) 9 + 10 + /* 11 + * These are private to the dma-mapping API. Do not use directly. 12 + * Their sole purpose is to ensure that data held in the cache 13 + * is visible to DMA, or data written by DMA to system memory is 14 + * visible to the CPU. 15 + */ 16 + extern void dmac_map_area(const void *, size_t, int); 17 + extern void dmac_unmap_area(const void *, size_t, int); 18 + 19 + #else 20 + 21 + /* 22 + * These are private to the dma-mapping API. Do not use directly. 23 + * Their sole purpose is to ensure that data held in the cache 24 + * is visible to DMA, or data written by DMA to system memory is 25 + * visible to the CPU. 26 + */ 27 + #define dmac_map_area cpu_cache.dma_map_area 28 + #define dmac_unmap_area cpu_cache.dma_unmap_area 29 + 30 + #endif 31 + 32 + #endif