linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-parisc / io.h
index c421ac1..0db00ad 100644 (file)
@@ -41,7 +41,7 @@ extern void __raw_bad_addr(const volatile void __iomem *addr);
 #define __raw_check_addr(addr)                                 \
        if (((unsigned long)addr >> NYBBLE_SHIFT) != 0xe)       \
                __raw_bad_addr(addr);                   \
-       addr = (void *)((unsigned long)addr | (0xfUL << NYBBLE_SHIFT));
+       addr = (void __iomem *)((unsigned long)addr | (0xfUL << NYBBLE_SHIFT));
 #else
 #define gsc_check_addr(addr)
 #define __raw_check_addr(addr)
@@ -273,10 +273,11 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add
 }
 #endif /* !USE_HPPA_IOREMAP */
 
+/* readb can never be const, so use __fswab instead of le*_to_cpu */
 #define readb(addr) __raw_readb(addr)
-#define readw(addr) le16_to_cpu(__raw_readw(addr))
-#define readl(addr) le32_to_cpu(__raw_readl(addr))
-#define readq(addr) le64_to_cpu(__raw_readq(addr))
+#define readw(addr) __fswab16(__raw_readw(addr))
+#define readl(addr) __fswab32(__raw_readl(addr))
+#define readq(addr) __fswab64(__raw_readq(addr))
 #define writeb(b, addr) __raw_writeb(b, addr)
 #define writew(b, addr) __raw_writew(cpu_to_le16(b), addr)
 #define writel(b, addr) __raw_writel(cpu_to_le32(b), addr)
@@ -403,4 +404,15 @@ extern void outsl (unsigned long port, const void *src, unsigned long count);
 
 #include <asm-generic/iomap.h>
 
+/*
+ * Convert a physical pointer to a virtual kernel pointer for /dev/mem
+ * access
+ */
+#define xlate_dev_mem_ptr(p)   __va(p)
+
+/*
+ * Convert a virtual cached pointer to an uncached pointer
+ */
+#define xlate_dev_kmem_ptr(p)  p
+
 #endif