vserver 1.9.5.x5
[linux-2.6.git] / arch / arm / kernel / io.c
index 34d6a86..6c20c11 100644 (file)
@@ -7,12 +7,13 @@
  * Copy data from IO memory space to "real" memory space.
  * This needs to be optimized.
  */
-void _memcpy_fromio(void * to, unsigned long from, size_t count)
+void _memcpy_fromio(void *to, void __iomem *from, size_t count)
 {
+       unsigned char *t = to;
        while (count) {
                count--;
-               *(char *) to = readb(from);
-               ((char *) to)++;
+               *t = readb(from);
+               t++;
                from++;
        }
 }
@@ -21,12 +22,13 @@ void _memcpy_fromio(void * to, unsigned long from, size_t count)
  * Copy data from "real" memory space to IO memory space.
  * This needs to be optimized.
  */
-void _memcpy_toio(unsigned long to, const void * from, size_t count)
+void _memcpy_toio(void __iomem *to, const void *from, size_t count)
 {
+       const unsigned char *f = from;
        while (count) {
                count--;
-               writeb(*(char *) from, to);
-               ((char *) from)++;
+               writeb(*f, to);
+               f++;
                to++;
        }
 }
@@ -35,7 +37,7 @@ void _memcpy_toio(unsigned long to, const void * from, size_t count)
  * "memset" on IO memory space.
  * This needs to be optimized.
  */
-void _memset_io(unsigned long dst, int c, size_t count)
+void _memset_io(void __iomem *dst, int c, size_t count)
 {
        while (count) {
                count--;