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 8static 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 21static 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_ */ 29