summaryrefslogtreecommitdiff
path: root/include/asm-arm/cacheflush.h
diff options
context:
space:
mode:
authorJared Hulbert <jaredeh@gmail.com>2007-08-22 17:38:25 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-08-23 12:31:31 +0100
commit90833fdab89da02fc0276224167f0a42e5176f41 (patch)
tree98faf88d640260ccd7d4d6f8050d3daac29e4374 /include/asm-arm/cacheflush.h
parentcb00e99c0abd844b884c64c6b54aa3b7d345ebb1 (diff)
[ARM] 4554/1: replace consistent_sync() with flush_ioremap_region()
This fixes a regression from around 2.6.18, consistent_sync() will now BUG() under these circumstances. The use of consistent_sync() was a hack, replacing it's usage here with a new function, flush_ioremap_region(). Signed-off-by: Jared Hulbert <jaredeh@gmail.com> Acked-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/cacheflush.h')
-rw-r--r--include/asm-arm/cacheflush.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/asm-arm/cacheflush.h b/include/asm-arm/cacheflush.h
index d1294a46c70c..6c1c968b2987 100644
--- a/include/asm-arm/cacheflush.h
+++ b/include/asm-arm/cacheflush.h
@@ -426,6 +426,13 @@ static inline void flush_anon_page(struct vm_area_struct *vma,
*/
#define flush_icache_page(vma,page) do { } while (0)
+static inline void flush_ioremap_region(unsigned long phys, void __iomem *virt,
+ unsigned offset, size_t size)
+{
+ const void *start = (void __force *)virt + offset;
+ dmac_inv_range(start, start + size);
+}
+
#define __cacheid_present(val) (val != read_cpuid(CPUID_ID))
#define __cacheid_type_v7(val) ((val & (7 << 29)) == (4 << 29))