diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-09 20:25:00 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-09 20:25:00 -0500 |
commit | a0e4467726cd26bacb16f13d207ffcfa82ffc07d (patch) | |
tree | 98b5fcbda0cd787b07d09da90d25c87b3883c567 /Documentation | |
parent | ed8efd2de75479a175bd21df073d9e97df65a820 (diff) | |
parent | cb61f6769b8836081940ba26249f1b756400c7df (diff) |
Merge tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
Pull asm-generic asm/io.h rewrite from Arnd Bergmann:
"While there normally is no reason to have a pull request for
asm-generic but have all changes get merged through whichever tree
needs them, I do have a series for 3.19.
There are two sets of patches that change significant portions of
asm/io.h, and this branch contains both in order to resolve the
conflicts:
- Will Deacon has done a set of patches to ensure that all
architectures define {read,write}{b,w,l,q}_relaxed() functions or
get them by including asm-generic/io.h.
These functions are commonly used on ARM specific drivers to avoid
expensive L2 cache synchronization implied by the normal
{read,write}{b,w,l,q}, but we need to define them on all
architectures in order to share the drivers across architectures
and to enable CONFIG_COMPILE_TEST configurations for them
- Thierry Reding has done an unrelated set of patches that extends
the asm-generic/io.h file to the degree necessary to make it useful
on ARM64 and potentially other architectures"
* tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: (29 commits)
ARM64: use GENERIC_PCI_IOMAP
sparc: io: remove duplicate relaxed accessors on sparc32
ARM: sa11x0: Use void __iomem * in MMIO accessors
arm64: Use include/asm-generic/io.h
ARM: Use include/asm-generic/io.h
asm-generic/io.h: Implement generic {read,write}s*()
asm-generic/io.h: Reconcile I/O accessor overrides
/dev/mem: Use more consistent data types
Change xlate_dev_{kmem,mem}_ptr() prototypes
ARM: ixp4xx: Properly override I/O accessors
ARM: ixp4xx: Fix build with IXP4XX_INDIRECT_PCI
ARM: ebsa110: Properly override I/O accessors
ARC: Remove redundant PCI_IOBASE declaration
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
...
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/memory-barriers.txt | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 22a969cdd476..4af4cea8cff0 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -2465,10 +2465,15 @@ functions: | |||
2465 | Please refer to the PCI specification for more information on interactions | 2465 | Please refer to the PCI specification for more information on interactions |
2466 | between PCI transactions. | 2466 | between PCI transactions. |
2467 | 2467 | ||
2468 | (*) readX_relaxed() | 2468 | (*) readX_relaxed(), writeX_relaxed() |
2469 | 2469 | ||
2470 | These are similar to readX(), but are not guaranteed to be ordered in any | 2470 | These are similar to readX() and writeX(), but provide weaker memory |
2471 | way. Be aware that there is no I/O read barrier available. | 2471 | ordering guarantees. Specifically, they do not guarantee ordering with |
2472 | respect to normal memory accesses (e.g. DMA buffers) nor do they guarantee | ||
2473 | ordering with respect to LOCK or UNLOCK operations. If the latter is | ||
2474 | required, an mmiowb() barrier can be used. Note that relaxed accesses to | ||
2475 | the same peripheral are guaranteed to be ordered with respect to each | ||
2476 | other. | ||
2472 | 2477 | ||
2473 | (*) ioreadX(), iowriteX() | 2478 | (*) ioreadX(), iowriteX() |
2474 | 2479 | ||