Caller side code changes regarding memory mapped IO. This patch applies for mips architectures and is used by xf86-video-siliconmotion. --- xorg-server-1.7.6.orig/hw/xfree86/common/compiler.h 2010-03-12 05:38:22.000000000 +0100 +++ xorg-server-1.7.6/hw/xfree86/common/compiler.h 2010-06-05 09:43:12.531809482 +0200 @@ -713,42 +713,43 @@ xf86WriteMmio32LeNB(__volatile__ void *b # define PORT_SIZE short # endif -_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ +_X_EXPORT volatile unsigned char *ioBase; /* Memory mapped I/O port area */ + static __inline__ void outb(unsigned PORT_SIZE port, unsigned char val) { - *(volatile unsigned char*)(((unsigned PORT_SIZE)(port))+IOPortBase) = val; + *(volatile unsigned char*)(((unsigned PORT_SIZE)(port))+ioBase) = val; } static __inline__ void outw(unsigned PORT_SIZE port, unsigned short val) { - *(volatile unsigned short*)(((unsigned PORT_SIZE)(port))+IOPortBase) = val; + *(volatile unsigned short*)(((unsigned PORT_SIZE)(port))+ioBase) = val; } static __inline__ void outl(unsigned PORT_SIZE port, unsigned int val) { - *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))+IOPortBase) = val; + *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))+ioBase) = val; } static __inline__ unsigned int inb(unsigned PORT_SIZE port) { - return *(volatile unsigned char*)(((unsigned PORT_SIZE)(port))+IOPortBase); + return *(volatile unsigned char*)(((unsigned PORT_SIZE)(port))+ioBase); } static __inline__ unsigned int inw(unsigned PORT_SIZE port) { - return *(volatile unsigned short*)(((unsigned PORT_SIZE)(port))+IOPortBase); + return *(volatile unsigned short*)(((unsigned PORT_SIZE)(port))+ioBase); } static __inline__ unsigned int inl(unsigned PORT_SIZE port) { - return *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))+IOPortBase); + return *(volatile unsigned int*)(((unsigned PORT_SIZE)(port))+ioBase); }