|
@@ -431,3 +431,72 @@ static inline void iowrite8_rep(void __iomem *addr, const void *vaddr,
|
|
outsb(port & PIO_MASK, vaddr, count);
|
|
outsb(port & PIO_MASK, vaddr, count);
|
|
else
|
|
else
|
|
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
|
|
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
|
|
|
|
+ __raw_writesb(addr, vaddr, count);
|
|
|
|
+#else
|
|
|
|
+ __indirect_writesb(addr, vaddr, count);
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#define iowrite16(v, p) iowrite16(v, p)
|
|
|
|
+static inline void iowrite16(u16 value, void __iomem *addr)
|
|
|
|
+{
|
|
|
|
+ unsigned long port = (unsigned long __force)addr;
|
|
|
|
+ if (__is_io_address(port))
|
|
|
|
+ outw(value, port & PIO_MASK);
|
|
|
|
+ else
|
|
|
|
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
|
|
|
|
+ __raw_writew(cpu_to_le16(value), addr);
|
|
|
|
+#else
|
|
|
|
+ __indirect_writew(value, addr);
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#define iowrite16_rep(p, v, c) iowrite16_rep(p, v, c)
|
|
|
|
+static inline void iowrite16_rep(void __iomem *addr, const void *vaddr,
|
|
|
|
+ u32 count)
|
|
|
|
+{
|
|
|
|
+ unsigned long port = (unsigned long __force)addr;
|
|
|
|
+ if (__is_io_address(port))
|
|
|
|
+ outsw(port & PIO_MASK, vaddr, count);
|
|
|
|
+ else
|
|
|
|
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
|
|
|
|
+ __raw_writesw(addr, vaddr, count);
|
|
|
|
+#else
|
|
|
|
+ __indirect_writesw(addr, vaddr, count);
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#define iowrite32(v, p) iowrite32(v, p)
|
|
|
|
+static inline void iowrite32(u32 value, void __iomem *addr)
|
|
|
|
+{
|
|
|
|
+ unsigned long port = (unsigned long __force)addr;
|
|
|
|
+ if (__is_io_address(port))
|
|
|
|
+ outl(value, port & PIO_MASK);
|
|
|
|
+ else
|
|
|
|
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
|
|
|
|
+ __raw_writel((u32 __force)cpu_to_le32(value), addr);
|
|
|
|
+#else
|
|
|
|
+ __indirect_writel(value, addr);
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#define iowrite32_rep(p, v, c) iowrite32_rep(p, v, c)
|
|
|
|
+static inline void iowrite32_rep(void __iomem *addr, const void *vaddr,
|
|
|
|
+ u32 count)
|
|
|
|
+{
|
|
|
|
+ unsigned long port = (unsigned long __force)addr;
|
|
|
|
+ if (__is_io_address(port))
|
|
|
|
+ outsl(port & PIO_MASK, vaddr, count);
|
|
|
|
+ else
|
|
|
|
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
|
|
|
|
+ __raw_writesl(addr, vaddr, count);
|
|
|
|
+#else
|
|
|
|
+ __indirect_writesl(addr, vaddr, count);
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET))
|
|
|
|
+#define ioport_unmap(addr)
|
|
|
|
+#endif /* CONFIG_PCI */
|
|
|
|
+
|
|
|
|
+#endif /* __ASM_ARM_ARCH_IO_H */
|