diff options
Diffstat (limited to 'drivers/char/rio/rio_linux.h')
-rw-r--r-- | drivers/char/rio/rio_linux.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/char/rio/rio_linux.h b/drivers/char/rio/rio_linux.h index 99c7447b6113..55b9c97e8477 100644 --- a/drivers/char/rio/rio_linux.h +++ b/drivers/char/rio/rio_linux.h | |||
@@ -138,12 +138,23 @@ static inline void __iomem *rio_memcpy_toio(void __iomem *dummy, void __iomem *d | |||
138 | 138 | ||
139 | while (n--) { | 139 | while (n--) { |
140 | writeb(*src++, dst++); | 140 | writeb(*src++, dst++); |
141 | (void) readb(dummy); /* WTF? */ | 141 | (void) readb(dummy); |
142 | } | 142 | } |
143 | 143 | ||
144 | return dest; | 144 | return dest; |
145 | } | 145 | } |
146 | 146 | ||
147 | static inline void __iomem *rio_copy_toio(void __iomem *dest, void *source, int n) | ||
148 | { | ||
149 | char __iomem *dst = dest; | ||
150 | char *src = source; | ||
151 | |||
152 | while (n--) | ||
153 | writeb(*src++, dst++); | ||
154 | |||
155 | return dest; | ||
156 | } | ||
157 | |||
147 | 158 | ||
148 | static inline void *rio_memcpy_fromio(void *dest, void __iomem *source, int n) | 159 | static inline void *rio_memcpy_fromio(void *dest, void __iomem *source, int n) |
149 | { | 160 | { |
@@ -158,6 +169,7 @@ static inline void *rio_memcpy_fromio(void *dest, void __iomem *source, int n) | |||
158 | 169 | ||
159 | #else | 170 | #else |
160 | #define rio_memcpy_toio(dummy,dest,source,n) memcpy_toio(dest, source, n) | 171 | #define rio_memcpy_toio(dummy,dest,source,n) memcpy_toio(dest, source, n) |
172 | #define rio_copy_toio memcpy_toio | ||
161 | #define rio_memcpy_fromio memcpy_fromio | 173 | #define rio_memcpy_fromio memcpy_fromio |
162 | #endif | 174 | #endif |
163 | 175 | ||