===== drivers/ide/ide-iops.c 1.1 vs edited ===== --- 1.1/drivers/ide/ide-iops.c Wed Sep 11 08:54:11 2002 +++ edited/drivers/ide/ide-iops.c Wed Sep 25 14:19:58 2002 @@ -54,12 +54,20 @@ static inline void ide_insw (u32 port, void *addr, u32 count) { +#ifdef __BIG_ENDIAN + insw(port, addr, count); +#else while (count--) { *(u16 *)addr = IN_WORD(port); addr += 2; } +#endif } static inline void ide_insw_p (u32 port, void *addr, u32 count) { - while (count--) { *(u16 *)addr = IN_WORD_P(port); addr += 2; } +#ifdef __BIG_ENDIAN + insw(port, addr, count); +#else + while (count--) { *(u16 *)addr = IN_WORD(port); addr += 2; } +#endif } static inline u32 ide_inl (u32 port) @@ -106,12 +114,20 @@ static inline void ide_outsw (u32 port, void *addr, u32 count) { +#ifdef __BIG_ENDIAN + outsw(port, addr, count); +#else while (count--) { OUT_WORD(*(u16 *)addr, port); addr += 2; } +#endif } static inline void ide_outsw_p (u32 port, void *addr, u32 count) { +#ifdef __BIG_ENDIAN + outsw(port, addr, count); +#else while (count--) { OUT_WORD_P(*(u16 *)addr, port); addr += 2; } +#endif } static inline void ide_outl (u32 addr, u32 port)