Blame view
include/linux/io-64-nonatomic-hi-lo.h
1.14 KB
b24413180 License cleanup: ... |
1 |
/* SPDX-License-Identifier: GPL-2.0 */ |
2f8e2c877 move io-64-nonato... |
2 3 |
#ifndef _LINUX_IO_64_NONATOMIC_HI_LO_H_ #define _LINUX_IO_64_NONATOMIC_HI_LO_H_ |
797a796a1 asm-generic: arch... |
4 5 6 |
#include <linux/io.h> #include <asm-generic/int-ll64.h> |
3a044178c readq/writeq: Add... |
7 |
static inline __u64 hi_lo_readq(const volatile void __iomem *addr) |
797a796a1 asm-generic: arch... |
8 9 10 11 12 13 14 15 16 |
{ const volatile u32 __iomem *p = addr; u32 low, high; high = readl(p + 1); low = readl(p); return low + ((u64)high << 32); } |
797a796a1 asm-generic: arch... |
17 |
|
3a044178c readq/writeq: Add... |
18 |
static inline void hi_lo_writeq(__u64 val, volatile void __iomem *addr) |
797a796a1 asm-generic: arch... |
19 20 21 22 |
{ writel(val >> 32, addr + 4); writel(val, addr); } |
3a044178c readq/writeq: Add... |
23 |
|
e511267bc io-64-nonatomic: ... |
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
static inline __u64 hi_lo_readq_relaxed(const volatile void __iomem *addr) { const volatile u32 __iomem *p = addr; u32 low, high; high = readl_relaxed(p + 1); low = readl_relaxed(p); return low + ((u64)high << 32); } static inline void hi_lo_writeq_relaxed(__u64 val, volatile void __iomem *addr) { writel_relaxed(val >> 32, addr + 4); writel_relaxed(val, addr); } |
3a044178c readq/writeq: Add... |
40 41 42 43 44 45 |
#ifndef readq #define readq hi_lo_readq #endif #ifndef writeq #define writeq hi_lo_writeq |
797a796a1 asm-generic: arch... |
46 |
#endif |
e511267bc io-64-nonatomic: ... |
47 48 49 50 51 52 53 |
#ifndef readq_relaxed #define readq_relaxed hi_lo_readq_relaxed #endif #ifndef writeq_relaxed #define writeq_relaxed hi_lo_writeq_relaxed #endif |
2f8e2c877 move io-64-nonato... |
54 |
#endif /* _LINUX_IO_64_NONATOMIC_HI_LO_H_ */ |