Blame view
include/linux/io-64-nonatomic-hi-lo.h
2.41 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 |
c81d64d3d io-64-nonatomic: ... |
54 55 |
#ifndef ioread64_hi_lo #define ioread64_hi_lo ioread64_hi_lo |
8f28ca6bd iomap: constify i... |
56 |
static inline u64 ioread64_hi_lo(const void __iomem *addr) |
c81d64d3d io-64-nonatomic: ... |
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
{ u32 low, high; high = ioread32(addr + sizeof(u32)); low = ioread32(addr); return low + ((u64)high << 32); } #endif #ifndef iowrite64_hi_lo #define iowrite64_hi_lo iowrite64_hi_lo static inline void iowrite64_hi_lo(u64 val, void __iomem *addr) { iowrite32(val >> 32, addr + sizeof(u32)); iowrite32(val, addr); } #endif #ifndef ioread64be_hi_lo #define ioread64be_hi_lo ioread64be_hi_lo |
8f28ca6bd iomap: constify i... |
78 |
static inline u64 ioread64be_hi_lo(const void __iomem *addr) |
c81d64d3d io-64-nonatomic: ... |
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
{ u32 low, high; high = ioread32be(addr); low = ioread32be(addr + sizeof(u32)); return low + ((u64)high << 32); } #endif #ifndef iowrite64be_hi_lo #define iowrite64be_hi_lo iowrite64be_hi_lo static inline void iowrite64be_hi_lo(u64 val, void __iomem *addr) { iowrite32be(val >> 32, addr); iowrite32be(val, addr + sizeof(u32)); } #endif #ifndef ioread64 #define ioread64_is_nonatomic #define ioread64 ioread64_hi_lo #endif #ifndef iowrite64 #define iowrite64_is_nonatomic #define iowrite64 iowrite64_hi_lo #endif #ifndef ioread64be #define ioread64be_is_nonatomic #define ioread64be ioread64be_hi_lo #endif #ifndef iowrite64be #define iowrite64be_is_nonatomic #define iowrite64be iowrite64be_hi_lo #endif |
2f8e2c877 move io-64-nonato... |
117 |
#endif /* _LINUX_IO_64_NONATOMIC_HI_LO_H_ */ |