Commit | Line | Data |
---|---|---|
797a796a HM |
1 | #ifndef _ASM_IO_64_NONATOMIC_LO_HI_H_ |
2 | #define _ASM_IO_64_NONATOMIC_LO_HI_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 | low = readl(p); | |
14 | high = readl(p + 1); | |
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, addr); | |
24 | writel(val >> 32, addr + 4); | |
25 | } | |
26 | #endif | |
27 | ||
28 | #endif /* _ASM_IO_64_NONATOMIC_LO_HI_H_ */ |