diff options
author | Magnus Damm <damm@igel.co.jp> | 2007-09-10 03:08:42 (GMT) |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-09-21 02:57:52 (GMT) |
commit | da6b003adc73011fd441a89c30d4f896667e24ba (patch) | |
tree | 8e31224884e3b01bb6d479329090f5e2e7758e0a /include/asm-sh/io.h | |
parent | 9d4c82625914c31fd21e341765d476784cc74f14 (diff) | |
download | linux-da6b003adc73011fd441a89c30d4f896667e24ba.tar.xz |
sh: add writesb(), readsb(), writesw() and readsw() to io.h
This patch adds inline versions of writesb(), readsb(), writesw() and
readsw() to include/asm-sh/io.h. Stolen from include/asm-avr32/io.h.
These functions are needed to compile certain device drivers such as
ax88796.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include/asm-sh/io.h')
-rw-r--r-- | include/asm-sh/io.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/asm-sh/io.h b/include/asm-sh/io.h index e6a1877..1a336cd 100644 --- a/include/asm-sh/io.h +++ b/include/asm-sh/io.h @@ -135,6 +135,32 @@ void __raw_readsl(unsigned long addr, void *data, int longlen); # define writel(v,a) ({ __raw_writel((v),(a)); mb(); }) #endif +#define __BUILD_MEMORY_STRING(bwlq, type) \ + \ +static inline void writes##bwlq(volatile void __iomem *mem, \ + const void *addr, unsigned int count) \ +{ \ + const volatile type *__addr = addr; \ + \ + while (count--) { \ + __raw_write##bwlq(*__addr, mem); \ + __addr++; \ + } \ +} \ + \ +static inline void reads##bwlq(volatile void __iomem *mem, void *addr, \ + unsigned int count) \ +{ \ + volatile type *__addr = addr; \ + \ + while (count--) { \ + *__addr = __raw_read##bwlq(mem); \ + __addr++; \ + } \ +} + +__BUILD_MEMORY_STRING(b, u8) +__BUILD_MEMORY_STRING(w, u16) #define writesl __raw_writesl #define readsl __raw_readsl |