| Hitoshi Mitake | 797a796 | 2012-02-07 11:45:33 +0900 | [diff] [blame] | 1 | #ifndef _ASM_IO_64_NONATOMIC_HI_LO_H_ | 
 | 2 | #define _ASM_IO_64_NONATOMIC_HI_LO_H_ | 
 | 3 |  | 
 | 4 | #include <linux/io.h> | 
 | 5 | #include <asm-generic/int-ll64.h> | 
 | 6 |  | 
 | 7 | #ifndef readq | 
 | 8 | static inline __u64 readq(const volatile void __iomem *addr) | 
 | 9 | { | 
 | 10 | 	const volatile u32 __iomem *p = addr; | 
 | 11 | 	u32 low, high; | 
 | 12 |  | 
 | 13 | 	high = readl(p + 1); | 
 | 14 | 	low = readl(p); | 
 | 15 |  | 
 | 16 | 	return low + ((u64)high << 32); | 
 | 17 | } | 
 | 18 | #endif | 
 | 19 |  | 
 | 20 | #ifndef writeq | 
 | 21 | static inline void writeq(__u64 val, volatile void __iomem *addr) | 
 | 22 | { | 
 | 23 | 	writel(val >> 32, addr + 4); | 
 | 24 | 	writel(val, addr); | 
 | 25 | } | 
 | 26 | #endif | 
 | 27 |  | 
 | 28 | #endif	/* _ASM_IO_64_NONATOMIC_HI_LO_H_ */ |