linux/debian/patches/bugfix/m68k/debian-2.6.21-2-rom-isa.diff

85 lines
2.9 KiB
Diff

--- l/include/asm-m68k/io.h.org 2007-05-18 18:24:41.000000000 +0200
+++ l/include/asm-m68k/io.h 2007-05-18 21:57:22.000000000 +0200
@@ -245,9 +245,16 @@
#if defined(CONFIG_ATARI_ROM_ISA)
#define isa_rom_inb(port) rom_in_8(isa_itb(port))
#define isa_rom_inw(port) (ISA_SEX ? rom_in_be16(isa_itw(port)) : rom_in_le16(isa_itw(port)))
+#define isa_rom_inl(port) (ISA_SEX ? rom_in_be32(isa_itw(port)) : rom_in_le32(isa_itw(port)))
#define isa_rom_outb(val,port) rom_out_8(isa_itb(port),(val))
#define isa_rom_outw(val,port) (ISA_SEX ? rom_out_be16(isa_itw(port),(val)) : rom_out_le16(isa_itw(port),(val)))
+#define isa_rom_outl(val,port) (ISA_SEX ? rom_out_be32(isa_itw(port),(val)) : rom_out_le32(isa_itw(port),(val)))
+
+#define isa_rom_readb(p) rom_in_8(isa_mtb((unsigned long)(p)))
+#define isa_rom_readw(p) \
+ (ISA_SEX ? rom_in_be16(isa_mtw((unsigned long)(p))) \
+ : rom_in_le16(isa_mtw((unsigned long)(p))))
#define isa_rom_writeb(val,p) rom_out_8(isa_mtb((unsigned long)(p)),(val))
#define isa_rom_writew(val,p) \
@@ -315,12 +322,20 @@
(ISA_SEX ? raw_rom_insw(isa_itw(port), (u16 *)(buf), (nr)) : \
raw_rom_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
+#define isa_rom_insl(port, buf, nr) \
+ (ISA_SEX ? raw_rom_insl(isa_itw(port), (u32 *)(buf), (nr)) : \
+ raw_rom_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
+
#define isa_rom_outsb(port, buf, nr) raw_rom_outsb(isa_itb(port), (u8 *)(buf), (nr))
#define isa_rom_outsw(port, buf, nr) \
(ISA_SEX ? raw_rom_outsw(isa_itw(port), (u16 *)(buf), (nr)) : \
raw_rom_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
+#define isa_rom_outsl(port, buf, nr) \
+ (ISA_SEX ? raw_rom_outsl(isa_itw(port), (u32 *)(buf), (nr)) : \
+ raw_rom_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
+
#endif
#endif /* CONFIG_ISA */
@@ -421,8 +436,16 @@
#define insb isa_rom_insb
#define insw isa_rom_insw
+#define insl isa_rom_insl
#define outsb isa_rom_outsb
#define outsw isa_rom_outsw
+#define outsl isa_rom_outsl
+
+#define readb isa_readb
+#define readw isa_readw
+#define writeb isa_writeb
+#define writew isa_writew
+
#endif
#if !defined(CONFIG_ISA) && !defined(CONFIG_PCI) && !defined(CONFIG_ATARI_ROM_ISA)
--- l/include/asm-m68k/raw_io.h.org 2007-05-18 18:24:41.000000000 +0200
+++ l/include/asm-m68k/raw_io.h 2007-05-19 08:58:33.000000000 +0200
@@ -436,6 +436,24 @@
for (i = 0; i < nr; i++)
rom_out_le16(port, *buf++);
}
+
+static inline void raw_rom_insl(volatile u16 __iomem *port, u32 *buf,
+ unsigned int nr)
+{
+ unsigned int i;
+
+ for (i = 0; i < nr; i++)
+ *buf++ = rom_in_be32(port);
+}
+
+static inline void raw_rom_outsl(volatile u16 __iomem *port, const u32 *buf,
+ unsigned int nr)
+{
+ unsigned int i;
+
+ for (i = 0; i < nr; i++)
+ rom_out_be32(port, *buf++);
+}
#endif /* CONFIG_ATARI_ROM_ISA */
#endif /* __KERNEL__ */