aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/cacheflush.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/include/asm/cacheflush.h')
-rw-r--r--arch/arm/include/asm/cacheflush.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
index 1252a2675ca..584fe0b6fcd 100644
--- a/arch/arm/include/asm/cacheflush.h
+++ b/arch/arm/include/asm/cacheflush.h
@@ -87,6 +87,21 @@
87 * DMA Cache Coherency 87 * DMA Cache Coherency
88 * =================== 88 * ===================
89 * 89 *
90 * dma_inv_range(start, end)
91 *
92 * Invalidate (discard) the specified virtual address range.
93 * May not write back any entries. If 'start' or 'end'
94 * are not cache line aligned, those lines must be written
95 * back.
96 * - start - virtual start address
97 * - end - virtual end address
98 *
99 * dma_clean_range(start, end)
100 *
101 * Clean (write back) the specified virtual address range.
102 * - start - virtual start address
103 * - end - virtual end address
104 *
90 * dma_flush_range(start, end) 105 * dma_flush_range(start, end)
91 * 106 *
92 * Clean and invalidate the specified virtual address range. 107 * Clean and invalidate the specified virtual address range.
@@ -107,6 +122,8 @@ struct cpu_cache_fns {
107 void (*dma_map_area)(const void *, size_t, int); 122 void (*dma_map_area)(const void *, size_t, int);
108 void (*dma_unmap_area)(const void *, size_t, int); 123 void (*dma_unmap_area)(const void *, size_t, int);
109 124
125 void (*dma_inv_range)(const void *, const void *);
126 void (*dma_clean_range)(const void *, const void *);
110 void (*dma_flush_range)(const void *, const void *); 127 void (*dma_flush_range)(const void *, const void *);
111}; 128};
112 129
@@ -133,6 +150,8 @@ extern struct cpu_cache_fns cpu_cache;
133 */ 150 */
134#define dmac_map_area cpu_cache.dma_map_area 151#define dmac_map_area cpu_cache.dma_map_area
135#define dmac_unmap_area cpu_cache.dma_unmap_area 152#define dmac_unmap_area cpu_cache.dma_unmap_area
153#define dmac_inv_range cpu_cache.dma_inv_range
154#define dmac_clean_range cpu_cache.dma_clean_range
136#define dmac_flush_range cpu_cache.dma_flush_range 155#define dmac_flush_range cpu_cache.dma_flush_range
137 156
138#else 157#else
@@ -153,6 +172,8 @@ extern void __cpuc_flush_dcache_area(void *, size_t);
153 */ 172 */
154extern void dmac_map_area(const void *, size_t, int); 173extern void dmac_map_area(const void *, size_t, int);
155extern void dmac_unmap_area(const void *, size_t, int); 174extern void dmac_unmap_area(const void *, size_t, int);
175extern void dmac_inv_range(const void *, const void *);
176extern void dmac_clean_range(const void *, const void *);
156extern void dmac_flush_range(const void *, const void *); 177extern void dmac_flush_range(const void *, const void *);
157 178
158#endif 179#endif