Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Subject | PATCH: add generic ide iops | Date | Tue, 18 Feb 2003 17:57:26 +0000 (GMT) | From | Alan Cox <> |
| |
This abstracts out the mmio copies as PPC at least has better ways to this and there are other issues on other platforms. It keeps DaveM happy too 8)
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux-2.5.61/include/asm-generic/ide_iops.h linux-2.5.61-ac2/include/asm-generic/ide_iops.h --- linux-2.5.61/include/asm-generic/ide_iops.h 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.5.61-ac2/include/asm-generic/ide_iops.h 2003-02-18 14:31:01.000000000 +0000 @@ -0,0 +1,38 @@ +/* Generic I/O and MEMIO string operations. */ + +#define __ide_insw insw +#define __ide_insl insl +#define __ide_outsw outsw +#define __ide_outsl outsl + +static __inline__ void __ide_mm_insw(unsigned long port, void *addr, u32 count) +{ + while (count--) { + *(u16 *)addr = readw(port); + addr += 2; + } +} + +static __inline__ void __ide_mm_insl(unsigned long port, void *addr, u32 count) +{ + while (count--) { + *(u32 *)addr = readl(port); + addr += 4; + } +} + +static __inline__ void __ide_mm_outsw(unsigned long port, void *addr, u32 count) +{ + while (count--) { + writew(*(u16 *)addr, port); + addr += 2; + } +} + +static __inline__ void __ide_mm_outsl(unsigned long port, void *addr, u32 count) +{ + while (count--) { + writel(*(u32 *)addr, port); + addr += 4; + } +} - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |