diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2014-11-11 13:55:45 -0500 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2014-11-11 13:55:45 -0500 |
| commit | 1c8d29696f0d79902962526d6c54ebfeb842c61d (patch) | |
| tree | 047caddef4ee91e42002bc1234d273c6fbc54967 /include/asm-generic | |
| parent | 3ba5acf368ae415cd14d026b7cfe29de942b65fc (diff) | |
| parent | a8e0aead70b4af957e6b27b82fba849c6179b707 (diff) | |
Merge branch 'io' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into asm-generic
* 'io' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux:
documentation: memory-barriers: clarify relaxed io accessor semantics
x86: io: implement dummy relaxed accessor macros for writes
tile: io: implement dummy relaxed accessor macros for writes
sparc: io: implement dummy relaxed accessor macros for writes
powerpc: io: implement dummy relaxed accessor macros for writes
parisc: io: implement dummy relaxed accessor macros for writes
mn10300: io: implement dummy relaxed accessor macros for writes
m68k: io: implement dummy relaxed accessor macros for writes
m32r: io: implement dummy relaxed accessor macros for writes
ia64: io: implement dummy relaxed accessor macros for writes
cris: io: implement dummy relaxed accessor macros for writes
frv: io: implement dummy relaxed accessor macros for writes
xtensa: io: remove dummy relaxed accessor macros for reads
s390: io: remove dummy relaxed accessor macros for reads
microblaze: io: remove dummy relaxed accessor macros
asm-generic: io: implement relaxed accessor macros as conditional wrappers
Conflicts:
include/asm-generic/io.h
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/asm-generic')
| -rw-r--r-- | include/asm-generic/io.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index 00483d769d86..9db042304df3 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h | |||
| @@ -175,6 +175,43 @@ static inline void writeq(u64 value, volatile void __iomem *addr) | |||
| 175 | #endif /* CONFIG_64BIT */ | 175 | #endif /* CONFIG_64BIT */ |
| 176 | 176 | ||
| 177 | /* | 177 | /* |
| 178 | * {read,write}{b,w,l,q}_relaxed() are like the regular version, but | ||
| 179 | * are not guaranteed to provide ordering against spinlocks or memory | ||
| 180 | * accesses. | ||
| 181 | */ | ||
| 182 | #ifndef readb_relaxed | ||
| 183 | #define readb_relaxed readb | ||
| 184 | #endif | ||
| 185 | |||
| 186 | #ifndef readw_relaxed | ||
| 187 | #define readw_relaxed readw | ||
| 188 | #endif | ||
| 189 | |||
| 190 | #ifndef readl_relaxed | ||
| 191 | #define readl_relaxed readl | ||
| 192 | #endif | ||
| 193 | |||
| 194 | #ifndef readq_relaxed | ||
| 195 | #define readq_relaxed readq | ||
| 196 | #endif | ||
| 197 | |||
| 198 | #ifndef writeb_relaxed | ||
| 199 | #define writeb_relaxed writeb | ||
| 200 | #endif | ||
| 201 | |||
| 202 | #ifndef writew_relaxed | ||
| 203 | #define writew_relaxed writew | ||
| 204 | #endif | ||
| 205 | |||
| 206 | #ifndef writel_relaxed | ||
| 207 | #define writel_relaxed writel | ||
| 208 | #endif | ||
| 209 | |||
| 210 | #ifndef writeq_relaxed | ||
| 211 | #define writeq_relaxed writeq | ||
| 212 | #endif | ||
| 213 | |||
| 214 | /* | ||
| 178 | * {read,write}s{b,w,l,q}() repeatedly access the same memory address in | 215 | * {read,write}s{b,w,l,q}() repeatedly access the same memory address in |
| 179 | * native endianness in 8-, 16-, 32- or 64-bit chunks (@count times). | 216 | * native endianness in 8-, 16-, 32- or 64-bit chunks (@count times). |
| 180 | */ | 217 | */ |
