| #ifndef _ASM_IO_64_NONATOMIC_HI_LO_H_ | 
 | #define _ASM_IO_64_NONATOMIC_HI_LO_H_ | 
 |  | 
 | #include <linux/io.h> | 
 | #include <asm-generic/int-ll64.h> | 
 |  | 
 | static inline __u64 hi_lo_readq(const volatile void __iomem *addr) | 
 | { | 
 | 	const volatile u32 __iomem *p = addr; | 
 | 	u32 low, high; | 
 |  | 
 | 	high = readl(p + 1); | 
 | 	low = readl(p); | 
 |  | 
 | 	return low + ((u64)high << 32); | 
 | } | 
 |  | 
 | static inline void hi_lo_writeq(__u64 val, volatile void __iomem *addr) | 
 | { | 
 | 	writel(val >> 32, addr + 4); | 
 | 	writel(val, addr); | 
 | } | 
 |  | 
 | #ifndef readq | 
 | #define readq hi_lo_readq | 
 | #endif | 
 |  | 
 | #ifndef writeq | 
 | #define writeq hi_lo_writeq | 
 | #endif | 
 |  | 
 | #endif	/* _ASM_IO_64_NONATOMIC_HI_LO_H_ */ |