patch-2.3.32 linux/include/asm-arm/arch-rpc/io.h

Next file: linux/include/asm-arm/arch-sa1100/io.h
Previous file: linux/include/asm-arm/arch-nexuspci/io.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.31/linux/include/asm-arm/arch-rpc/io.h linux/include/asm-arm/arch-rpc/io.h
@@ -9,11 +9,7 @@
 #ifndef __ASM_ARM_ARCH_IO_H
 #define __ASM_ARM_ARCH_IO_H
 
-/*
- * This architecture does not require any delayed IO, and
- * has the constant-optimised IO
- */
-#undef	ARCH_IO_DELAY
+#define IO_SPACE_LIMIT 0xffffffff
 
 /*
  * We use two different types of addressing - PC style addresses, and ARM
@@ -25,8 +21,7 @@
 #define __PORT_PCIO(x)	(!((x) & 0x80000000))
 
 /*
- * Dynamic IO functions - let the compiler
- * optimize the expressions
+ * Dynamic IO functions.
  */
 extern __inline__ void __outb (unsigned int value, unsigned int port)
 {
@@ -188,6 +183,14 @@
 
 #define __ioaddrc(port)								\
 	(__PORT_PCIO((port)) ? PCIO_BASE + ((port) << 2) : IO_BASE + ((port) << 2))
+
+#define inb(p)	 	(__builtin_constant_p((p)) ? __inbc(p)    : __inb(p))
+#define inw(p)	 	(__builtin_constant_p((p)) ? __inwc(p)    : __inw(p))
+#define inl(p)	 	(__builtin_constant_p((p)) ? __inlc(p)    : __inl(p))
+#define outb(v,p)	(__builtin_constant_p((p)) ? __outbc(v,p) : __outb(v,p))
+#define outw(v,p)	(__builtin_constant_p((p)) ? __outwc(v,p) : __outw(v,p))
+#define outl(v,p)	(__builtin_constant_p((p)) ? __outlc(v,p) : __outl(v,p))
+#define __ioaddr(p)	(__builtin_constant_p((p)) ? __ioaddr(p)  : __ioaddrc(p))
 
 /*
  * Translated address IO functions

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)