summaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/assembler.h
diff options
context:
space:
mode:
authorRobin Murphy2017-07-25 12:55:42 +0200
committerCatalin Marinas2017-08-09 13:15:45 +0200
commitd50e071fdaa33c1b399c764c44fa1ce879881185 (patch)
treec0af7e49c8f4124195159e1d6380d521bea435d3 /arch/arm64/include/asm/assembler.h
parentarm64: Handle trapped DC CVAP (diff)
downloadkernel-qcow2-linux-d50e071fdaa33c1b399c764c44fa1ce879881185.tar.gz
kernel-qcow2-linux-d50e071fdaa33c1b399c764c44fa1ce879881185.tar.xz
kernel-qcow2-linux-d50e071fdaa33c1b399c764c44fa1ce879881185.zip
arm64: Implement pmem API support
Add a clean-to-point-of-persistence cache maintenance helper, and wire up the basic architectural support for the pmem driver based on it. Reviewed-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Robin Murphy <robin.murphy@arm.com> [catalin.marinas@arm.com: move arch_*_pmem() functions to arch/arm64/mm/flush.c] [catalin.marinas@arm.com: change dmb(sy) to dmb(osh)] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/assembler.h')
-rw-r--r--arch/arm64/include/asm/assembler.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index 1b67c3782d00..5d8903c45031 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -353,6 +353,12 @@ alternative_if_not ARM64_WORKAROUND_CLEAN_CACHE
alternative_else
dc civac, \kaddr
alternative_endif
+ .elseif (\op == cvap)
+alternative_if ARM64_HAS_DCPOP
+ sys 3, c7, c12, 1, \kaddr // dc cvap
+alternative_else
+ dc cvac, \kaddr
+alternative_endif
.else
dc \op, \kaddr
.endif