Index: include/asm-mips/ide.h =================================================================== RCS file: /cvs/linux/include/asm-mips/ide.h,v retrieving revision 1.11 diff -u -r1.11 ide.h --- include/asm-mips/ide.h 2001/08/17 12:17:58 1.11 +++ include/asm-mips/ide.h 2002/01/17 12:01:03 @@ -125,6 +125,57 @@ #if defined(__MIPSEB__) +/* get rid of defs from io.h - ide has its private and conflicting versions */ +#ifdef insw +#undef insw +#endif +#ifdef outsw +#undef outsw +#endif +#ifdef insl +#undef insl +#endif +#ifdef outsl +#undef outsl +#endif + +#define insw(port, addr, count) ide_insw(port, addr, count) +#define insl(port, addr, count) ide_insl(port, addr, count) +#define outsw(port, addr, count) ide_outsw(port, addr, count) +#define outsl(port, addr, count) ide_outsl(port, addr, count) + +static inline void ide_insw(unsigned long port, void *addr, unsigned int count) +{ + while (count--) { + *(u16 *)addr = *(volatile u16 *)(mips_io_port_base + port); + addr += 2; + } +} + +static inline void ide_outsw(unsigned long port, void *addr, unsigned int count) +{ + while (count--) { + *(volatile u16 *)(mips_io_port_base + (port)) = *(u16 *)addr; + addr += 2; + } +} + +static inline void ide_insl(unsigned long port, void *addr, unsigned int count) +{ + while (count--) { + *(u32 *)addr = *(volatile u32 *)(mips_io_port_base + port); + addr += 4; + } +} + +static inline void ide_outsl(unsigned long port, void *addr, unsigned int count) +{ + while (count--) { + *(volatile u32 *)(mips_io_port_base + (port)) = *(u32 *)addr; + addr += 4; + } +} + #define T_CHAR (0x0000) /* char: don't touch */ #define T_SHORT (0x4000) /* short: 12 -> 21 */ #define T_INT (0x8000) /* int: 1234 -> 4321 */ Index: include/asm-mips/io.h =================================================================== RCS file: /cvs/linux/include/asm-mips/io.h,v retrieving revision 1.29.2.4 diff -u -r1.29.2.4 io.h --- include/asm-mips/io.h 2001/12/26 23:41:26 1.29.2.4 +++ include/asm-mips/io.h 2002/01/17 12:01:03 @@ -249,22 +249,29 @@ SLOW_DOWN_IO; \ } while(0) -static inline unsigned char inb(unsigned long port) +#define inb(port) __inb(port) +#define inw(port) __inw(port) +#define inl(port) __inl(port) +#define inb_p(port) __inb_p(port) +#define inw_p(port) __inw_p(port) +#define inl_p(port) __inl_p(port) + +static inline unsigned char __inb(unsigned long port) { return __ioswab8(*(volatile u8 *)(mips_io_port_base + port)); } -static inline unsigned short inw(unsigned long port) +static inline unsigned short __inw(unsigned long port) { return __ioswab16(*(volatile u16 *)(mips_io_port_base + port)); } -static inline unsigned int inl(unsigned long port) +static inline unsigned int __inl(unsigned long port) { return __ioswab32(*(volatile u32 *)(mips_io_port_base + port)); } -static inline unsigned char inb_p(unsigned long port) +static inline unsigned char __inb_p(unsigned long port) { u8 __val; @@ -274,7 +281,7 @@ return __ioswab8(__val); } -static inline unsigned short inw_p(unsigned long port) +static inline unsigned short __inw_p(unsigned long port) { u16 __val; @@ -284,7 +291,7 @@ return __ioswab16(__val); } -static inline unsigned int inl_p(unsigned long port) +static inline unsigned int __inl_p(unsigned long port) { u32 __val; @@ -292,8 +299,15 @@ SLOW_DOWN_IO; return __ioswab32(__val); } + +#define outsb(port, addr, count) __outsb(port, addr, count) +#define insb(port, addr, count) __insb(port, addr, count) +#define outsw(port, addr, count) __outsw(port, addr, count) +#define insw(port, addr, count) __insw(port, addr, count) +#define outsl(port, addr, count) __outsl(port, addr, count) +#define insl(port, addr, count) __insl(port, addr, count) -static inline void outsb(unsigned long port, void *addr, unsigned int count) +static inline void __outsb(unsigned long port, void *addr, unsigned int count) { while (count--) { outb(*(u8 *)addr, port); @@ -301,7 +315,7 @@ } } -static inline void insb(unsigned long port, void *addr, unsigned int count) +static inline void __insb(unsigned long port, void *addr, unsigned int count) { while (count--) { *(u8 *)addr = inb(port); @@ -309,7 +323,7 @@ } } -static inline void outsw(unsigned long port, void *addr, unsigned int count) +static inline void __outsw(unsigned long port, void *addr, unsigned int count) { while (count--) { outw(*(u16 *)addr, port); @@ -317,7 +331,7 @@ } } -static inline void insw(unsigned long port, void *addr, unsigned int count) +static inline void __insw(unsigned long port, void *addr, unsigned int count) { while (count--) { *(u16 *)addr = inw(port); @@ -325,7 +339,7 @@ } } -static inline void outsl(unsigned long port, void *addr, unsigned int count) +static inline void __outsl(unsigned long port, void *addr, unsigned int count) { while (count--) { outl(*(u32 *)addr, port); @@ -333,7 +347,7 @@ } } -static inline void insl(unsigned long port, void *addr, unsigned int count) +static inline void __insl(unsigned long port, void *addr, unsigned int count) { while (count--) { *(u32 *)addr = inl(port);