diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2010-06-18 04:30:08 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-08-06 12:55:51 -0400 |
commit | eb9649095f4e81a6535c10377da3d5f48b9ad822 (patch) | |
tree | 9f95ef1ccaa4551d7a3794631562d1a4e6254682 /arch/blackfin | |
parent | d1401e1dc22606a91f577ad3dfd68ae7e60e0357 (diff) |
Blackfin: make sure mmiowb inserts a write barrier with SSYNC
Add SSYNC to our implementation of I/O write barrier to ensure ordering
of I/O space writes. This will make sure that writes following the
barrier will arrive after all previous writes.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin')
-rw-r--r-- | arch/blackfin/include/asm/io.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/blackfin/include/asm/io.h b/arch/blackfin/include/asm/io.h index 29e55b9d88bc..234fbac17ec1 100644 --- a/arch/blackfin/include/asm/io.h +++ b/arch/blackfin/include/asm/io.h | |||
@@ -124,7 +124,13 @@ static inline unsigned int readl(const volatile void __iomem *addr) | |||
124 | #define iowrite16(val, x) writew(val, x) | 124 | #define iowrite16(val, x) writew(val, x) |
125 | #define iowrite32(val, x) writel(val, x) | 125 | #define iowrite32(val, x) writel(val, x) |
126 | 126 | ||
127 | #define mmiowb() wmb() | 127 | /** |
128 | * I/O write barrier | ||
129 | * | ||
130 | * Ensure ordering of I/O space writes. This will make sure that writes | ||
131 | * following the barrier will arrive after all previous writes. | ||
132 | */ | ||
133 | #define mmiowb() do { SSYNC(); wmb(); } while (0) | ||
128 | 134 | ||
129 | #define IO_SPACE_LIMIT 0xffffffff | 135 | #define IO_SPACE_LIMIT 0xffffffff |
130 | 136 | ||