diff options
Diffstat (limited to 'arch/arm/include/asm/cacheflush.h')
-rw-r--r-- | arch/arm/include/asm/cacheflush.h | 21 |
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 | */ |
154 | extern void dmac_map_area(const void *, size_t, int); | 173 | extern void dmac_map_area(const void *, size_t, int); |
155 | extern void dmac_unmap_area(const void *, size_t, int); | 174 | extern void dmac_unmap_area(const void *, size_t, int); |
175 | extern void dmac_inv_range(const void *, const void *); | ||
176 | extern void dmac_clean_range(const void *, const void *); | ||
156 | extern void dmac_flush_range(const void *, const void *); | 177 | extern void dmac_flush_range(const void *, const void *); |
157 | 178 | ||
158 | #endif | 179 | #endif |