Skip to content

Commit 1234e3f

Browse files
author
Russell King
committed
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>
1 parent 9ac87c5 commit 1234e3f

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

arch/arm/include/asm/cacheflush.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,6 @@ extern struct cpu_cache_fns cpu_cache;
140140
* is visible to DMA, or data written by DMA to system memory is
141141
* visible to the CPU.
142142
*/
143-
#define dmac_map_area cpu_cache.dma_map_area
144-
#define dmac_unmap_area cpu_cache.dma_unmap_area
145143
#define dmac_flush_range cpu_cache.dma_flush_range
146144

147145
#else
@@ -161,8 +159,6 @@ extern void __cpuc_flush_dcache_area(void *, size_t);
161159
* is visible to DMA, or data written by DMA to system memory is
162160
* visible to the CPU.
163161
*/
164-
extern void dmac_map_area(const void *, size_t, int);
165-
extern void dmac_unmap_area(const void *, size_t, int);
166162
extern void dmac_flush_range(const void *, const void *);
167163

168164
#endif

arch/arm/include/asm/glue-cache.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,6 @@ static inline void nop_dma_unmap_area(const void *s, size_t l, int f) { }
158158
#define __cpuc_coherent_user_range __glue(_CACHE,_coherent_user_range)
159159
#define __cpuc_flush_dcache_area __glue(_CACHE,_flush_kern_dcache_area)
160160

161-
#define dmac_map_area __glue(_CACHE,_dma_map_area)
162-
#define dmac_unmap_area __glue(_CACHE,_dma_unmap_area)
163161
#define dmac_flush_range __glue(_CACHE,_dma_flush_range)
164162
#endif
165163

arch/arm/mm/dma-mapping.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#include <asm/system_info.h>
4040
#include <asm/dma-contiguous.h>
4141

42+
#include "dma.h"
4243
#include "mm.h"
4344

4445
/*

arch/arm/mm/dma.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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

0 commit comments

Comments
 (0)