]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - include/asm-arm/cacheflush.h
Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
[mv-sheeva.git] / include / asm-arm / cacheflush.h
index d1294a46c70c62237c9d0e266d90c645f1182bf0..70b0fe724b62686a3485b66e747b46300117d8ec 100644 (file)
 # endif
 #endif
 
+#if defined(CONFIG_CPU_FEROCEON)
+# define MULTI_CACHE 1
+#endif
+
 #if defined(CONFIG_CPU_V6)
 //# ifdef _CACHE
 #  define MULTI_CACHE 1
@@ -402,6 +406,13 @@ extern void flush_dcache_page(struct page *);
 
 extern void __flush_dcache_page(struct address_space *mapping, struct page *page);
 
+static inline void __flush_icache_all(void)
+{
+       asm("mcr        p15, 0, %0, c7, c5, 0   @ invalidate I-cache\n"
+           :
+           : "r" (0));
+}
+
 #define ARCH_HAS_FLUSH_ANON_PAGE
 static inline void flush_anon_page(struct vm_area_struct *vma,
                         struct page *page, unsigned long vmaddr)
@@ -426,6 +437,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))