1 #ifndef _LINUX_IO_64_NONATOMIC_LO_HI_H_ 2 #define _LINUX_IO_64_NONATOMIC_LO_HI_H_ 3 4 #include <linux/io.h> 5 #include <asm-generic/int-ll64.h> 6 lo_hi_readq(const volatile void __iomem * addr)7static inline __u64 lo_hi_readq(const volatile void __iomem *addr) 8 { 9 const volatile u32 __iomem *p = addr; 10 u32 low, high; 11 12 low = readl(p); 13 high = readl(p + 1); 14 15 return low + ((u64)high << 32); 16 } 17 lo_hi_writeq(__u64 val,volatile void __iomem * addr)18static inline void lo_hi_writeq(__u64 val, volatile void __iomem *addr) 19 { 20 writel(val, addr); 21 writel(val >> 32, addr + 4); 22 } 23 24 #ifndef readq 25 #define readq lo_hi_readq 26 #endif 27 28 #ifndef writeq 29 #define writeq lo_hi_writeq 30 #endif 31 32 #endif /* _LINUX_IO_64_NONATOMIC_LO_HI_H_ */ 33