]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/blackfin/include/asm/cacheflush.h
Merge branch 'linus' into core/urgent
[linux-2.6-omap-h63xx.git] / arch / blackfin / include / asm / cacheflush.h
index 5ef9e35e9c3bce6b1444200320648166fca5f04d..4403415583fa67f8809e3e14399e8c648b72562a 100644 (file)
 #ifndef _BLACKFIN_CACHEFLUSH_H
 #define _BLACKFIN_CACHEFLUSH_H
 
-extern void blackfin_icache_dcache_flush_range(unsigned int, unsigned int);
-extern void blackfin_icache_flush_range(unsigned int, unsigned int);
-extern void blackfin_dcache_flush_range(unsigned int, unsigned int);
-extern void blackfin_dcache_invalidate_range(unsigned int, unsigned int);
-extern void blackfin_dflush_page(void *);
+extern void blackfin_icache_dcache_flush_range(unsigned long start_address, unsigned long end_address);
+extern void blackfin_icache_flush_range(unsigned long start_address, unsigned long end_address);
+extern void blackfin_dcache_flush_range(unsigned long start_address, unsigned long end_address);
+extern void blackfin_dcache_invalidate_range(unsigned long start_address, unsigned long end_address);
+extern void blackfin_dflush_page(void *page);
 
 #define flush_dcache_mmap_lock(mapping)                do { } while (0)
 #define flush_dcache_mmap_unlock(mapping)      do { } while (0)
@@ -85,4 +85,21 @@ do { memcpy(dst, src, len); \
 # define flush_dcache_page(page)                       do { } while (0)
 #endif
 
+extern unsigned long reserved_mem_dcache_on;
+extern unsigned long reserved_mem_icache_on;
+
+static inline int bfin_addr_dcachable(unsigned long addr)
+{
+#ifdef CONFIG_BFIN_DCACHE
+       if (addr < (_ramend - DMA_UNCACHED_REGION))
+               return 1;
+#endif
+
+       if (reserved_mem_dcache_on &&
+               addr >= _ramend && addr < physical_mem_end)
+               return 1;
+
+       return 0;
+}
+
 #endif                         /* _BLACKFIN_ICACHEFLUSH_H */