summaryrefslogtreecommitdiff
path: root/drivers/char/rio/rio_linux.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-06-20 15:38:12 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-20 15:38:12 -0700
commit077e98945db7e54a9865b5f29a1f02f531eca414 (patch)
treebb24d180075a2d5ac35bd0d893bdc867405bee03 /drivers/char/rio/rio_linux.h
parentd9eaec9e295a84a80b663996d0489fcff3a1dca9 (diff)
parent92af11cdec410f5de4e8d702d24e1672ce26a1f6 (diff)
Merge branch 'rio.b19' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bird
* 'rio.b19' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bird: [PATCH] missing readb/readw in rio [PATCH] copy_to_user() from iomem is a bad thing [PATCH] forgotten swap of copyout() arguments [PATCH] handling rio MEMDUMP [PATCH] fix rio_copy_to_card() for OLDPCI case [PATCH] uses of ->Copy() in rioroute are bogus [PATCH] bogus order of copy_from_user() arguments [PATCH] rio ->Copy() expects the sourse as first argument [PATCH] trivial annotations in rio
Diffstat (limited to 'drivers/char/rio/rio_linux.h')
-rw-r--r--drivers/char/rio/rio_linux.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/char/rio/rio_linux.h b/drivers/char/rio/rio_linux.h
index 4ce77fb1fae5..55b9c97e8477 100644
--- a/drivers/char/rio/rio_linux.h
+++ b/drivers/char/rio/rio_linux.h
@@ -131,9 +131,9 @@ struct vpd_prom {
#ifdef CONFIG_RIO_OLDPCI
-static inline void *rio_memcpy_toio(void *dummy, void *dest, void *source, int n)
+static inline void __iomem *rio_memcpy_toio(void __iomem *dummy, void __iomem *dest, void *source, int n)
{
- char *dst = dest;
+ char __iomem *dst = dest;
char *src = source;
while (n--) {
@@ -144,11 +144,22 @@ static inline void *rio_memcpy_toio(void *dummy, void *dest, void *source, int n
return dest;
}
+static inline void __iomem *rio_copy_toio(void __iomem *dest, void *source, int n)
+{
+ char __iomem *dst = dest;
+ char *src = source;
+
+ while (n--)
+ writeb(*src++, dst++);
-static inline void *rio_memcpy_fromio(void *dest, void *source, int n)
+ return dest;
+}
+
+
+static inline void *rio_memcpy_fromio(void *dest, void __iomem *source, int n)
{
char *dst = dest;
- char *src = source;
+ char __iomem *src = source;
while (n--)
*dst++ = readb(src++);
@@ -158,6 +169,7 @@ static inline void *rio_memcpy_fromio(void *dest, void *source, int n)
#else
#define rio_memcpy_toio(dummy,dest,source,n) memcpy_toio(dest, source, n)
+#define rio_copy_toio memcpy_toio
#define rio_memcpy_fromio memcpy_fromio
#endif