diff options
Diffstat (limited to 'include/asm-generic/io.h')
| -rw-r--r-- | include/asm-generic/io.h | 61 | 
1 files changed, 23 insertions, 38 deletions
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index d1e93284d72..ac9da00e9f2 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h @@ -12,7 +12,6 @@  #define __ASM_GENERIC_IO_H  #include <asm/page.h> /* I/O is all done through memory accesses */ -#include <asm/cacheflush.h>  #include <linux/types.h>  #ifdef CONFIG_GENERIC_IOMAP @@ -54,8 +53,18 @@ static inline u32 __raw_readl(const volatile void __iomem *addr)  #endif  #define readb __raw_readb -#define readw(addr) __le16_to_cpu(__raw_readw(addr)) -#define readl(addr) __le32_to_cpu(__raw_readl(addr)) + +#define readw readw +static inline u16 readw(const volatile void __iomem *addr) +{ +	return __le16_to_cpu(__raw_readw(addr)); +} + +#define readl readl +static inline u32 readl(const volatile void __iomem *addr) +{ +	return __le32_to_cpu(__raw_readl(addr)); +}  #ifndef __raw_writeb  static inline void __raw_writeb(u8 b, volatile void __iomem *addr) @@ -90,7 +99,11 @@ static inline u64 __raw_readq(const volatile void __iomem *addr)  }  #endif -#define readq(addr) __le64_to_cpu(__raw_readq(addr)) +#define readq readq +static inline u64 readq(const volatile void __iomem *addr) +{ +	return __le64_to_cpu(__raw_readq(addr)); +}  #ifndef __raw_writeq  static inline void __raw_writeq(u64 b, volatile void __iomem *addr) @@ -223,48 +236,18 @@ static inline void outsl(unsigned long addr, const void *buffer, int count)  }  #endif -static inline void readsl(const void __iomem *addr, void *buf, int len) -{ -	insl(addr - PCI_IOBASE, buf, len); -} - -static inline void readsw(const void __iomem *addr, void *buf, int len) -{ -	insw(addr - PCI_IOBASE, buf, len); -} - -static inline void readsb(const void __iomem *addr, void *buf, int len) -{ -	insb(addr - PCI_IOBASE, buf, len); -} - -static inline void writesl(const void __iomem *addr, const void *buf, int len) -{ -	outsl(addr - PCI_IOBASE, buf, len); -} - -static inline void writesw(const void __iomem *addr, const void *buf, int len) -{ -	outsw(addr - PCI_IOBASE, buf, len); -} - -static inline void writesb(const void __iomem *addr, const void *buf, int len) -{ -	outsb(addr - PCI_IOBASE, buf, len); -} -  #ifndef CONFIG_GENERIC_IOMAP  #define ioread8(addr)		readb(addr)  #define ioread16(addr)		readw(addr) -#define ioread16be(addr)	be16_to_cpu(ioread16(addr)) +#define ioread16be(addr)	__be16_to_cpu(__raw_readw(addr))  #define ioread32(addr)		readl(addr) -#define ioread32be(addr)	be32_to_cpu(ioread32(addr)) +#define ioread32be(addr)	__be32_to_cpu(__raw_readl(addr))  #define iowrite8(v, addr)	writeb((v), (addr))  #define iowrite16(v, addr)	writew((v), (addr)) -#define iowrite16be(v, addr)	iowrite16(be16_to_cpu(v), (addr)) +#define iowrite16be(v, addr)	__raw_writew(__cpu_to_be16(v), addr)  #define iowrite32(v, addr)	writel((v), (addr)) -#define iowrite32be(v, addr)	iowrite32(be32_to_cpu(v), (addr)) +#define iowrite32be(v, addr)	__raw_writel(__cpu_to_be32(v), addr)  #define ioread8_rep(p, dst, count) \  	insb((unsigned long) (p), (dst), (count)) @@ -363,6 +346,7 @@ extern void ioport_unmap(void __iomem *p);  #define xlate_dev_kmem_ptr(p)	p  #define xlate_dev_mem_ptr(p)	__va(p) +#ifdef CONFIG_VIRT_TO_BUS  #ifndef virt_to_bus  static inline unsigned long virt_to_bus(volatile void *address)  { @@ -374,6 +358,7 @@ static inline void *bus_to_virt(unsigned long address)  	return (void *) address;  }  #endif +#endif  #ifndef memset_io  #define memset_io(a, b, c)	memset(__io_virt(a), (b), (c))  |