summaryrefslogtreecommitdiffstats
path: root/arch/xtensa/include/asm
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2015-10-09 02:44:23 +0300
committerMax Filippov <jcmvbkbc@gmail.com>2015-11-09 01:25:37 +0300
commitc7ca9fe17b84719ef2edbe854e1b0cac04a91e2f (patch)
treeaf1d9766ac0e0c5749cae43412245cf0e918ae31 /arch/xtensa/include/asm
parente2b31f75406ed4ae700f5d954603f8119d9e94ca (diff)
downloadop-kernel-dev-c7ca9fe17b84719ef2edbe854e1b0cac04a91e2f.zip
op-kernel-dev-c7ca9fe17b84719ef2edbe854e1b0cac04a91e2f.tar.gz
xtensa: support DMA to high memory
- don't bugcheck if high memory page is passed to xtensa_map_page; - turn empty dcache flush macros into functions so that they could be passed as function parameters; - use kmap_atomic to map high memory pages for cache invalidation/ flushing performed by xtensa_sync_single_for_{cpu,device}. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/include/asm')
-rw-r--r--arch/xtensa/include/asm/cacheflush.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/xtensa/include/asm/cacheflush.h b/arch/xtensa/include/asm/cacheflush.h
index 7158881..397d6a1 100644
--- a/arch/xtensa/include/asm/cacheflush.h
+++ b/arch/xtensa/include/asm/cacheflush.h
@@ -55,9 +55,14 @@ extern void __flush_dcache_range(unsigned long, unsigned long);
extern void __flush_invalidate_dcache_page(unsigned long);
extern void __flush_invalidate_dcache_range(unsigned long, unsigned long);
#else
-# define __flush_dcache_range(p,s) do { } while(0)
-# define __flush_dcache_page(p) do { } while(0)
-# define __flush_invalidate_dcache_page(p) __invalidate_dcache_page(p)
+static inline void __flush_dcache_page(unsigned long va)
+{
+}
+static inline void __flush_dcache_range(unsigned long va, unsigned long sz)
+{
+}
+# define __flush_invalidate_dcache_all() __invalidate_dcache_all()
+# define __flush_invalidate_dcache_page(p) __invalidate_dcache_page(p)
# define __flush_invalidate_dcache_range(p,s) __invalidate_dcache_range(p,s)
#endif
OpenPOWER on IntegriCloud