vserver 1.9.5.x5
[linux-2.6.git] / include / asm-arm / arch-ebsa285 / io.h
index 8511b2c..70576b1 100644 (file)
 /*
  * Translation of various region addresses to virtual addresses
  */
-#define __io(a)                        (PCIO_BASE + (a))
+#define __io(a)                        ((void __iomem *)(PCIO_BASE + (a)))
 #if 1
-#define __mem_pci(a)           ((unsigned long)(a))
-#define __mem_isa(a)           (PCIMEM_BASE + (unsigned long)(a))
+#define __mem_pci(a)           (a)
+#define __mem_isa(a)           ((a) + PCIMEM_BASE)
 #else
 
-static inline unsigned long ___mem_pci(unsigned long a)
+static inline void __iomem *___mem_pci(void __iomem *p)
 {
+       unsigned long a = (unsigned long)p;
        BUG_ON(a <= 0xc0000000 || a >= 0xe0000000);
-       return a;
+       return p;
 }
 
-static inline unsigned long ___mem_isa(unsigned long a)
+static inline void __iomem *___mem_isa(void __iomem *p)
 {
+       unsigned long a = (unsigned long)p;
        BUG_ON(a >= 16*1048576);
-       return PCIMEM_BASE + a;
+       return p + PCIMEM_BASE;
 }
-#define __mem_pci(a)           ___mem_pci((unsigned long)(a))
-#define __mem_isa(a)           ___mem_isa((unsigned long)(a))
+#define __mem_pci(a)           ___mem_pci(a)
+#define __mem_isa(a)           ___mem_isa(a)
 #endif
 
 #endif