summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/cp15.h
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2013-01-17 03:57:33 +0400
committerNicolas Pitre <nicolas.pitre@linaro.org>2013-05-29 23:50:34 +0400
commitbbc8d77db655be61a21d7623428c46c578a866d3 (patch)
treec5f138fdd654299e44ba073a43a681f0a5c91b0e /arch/arm/include/asm/cp15.h
parent62158f817ad3e0368480b8e9480be34bffd8c74a (diff)
downloadlinux-bbc8d77db655be61a21d7623428c46c578a866d3.tar.xz
ARM: introduce common set_auxcr/get_auxcr functions
Move the private set_auxcr/get_auxcr functions from drivers/cpuidle/cpuidle-calxeda.c so they can be used across platforms. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Nicolas Pitre <nico@linaro.org> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm/include/asm/cp15.h')
-rw-r--r--arch/arm/include/asm/cp15.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/include/asm/cp15.h b/arch/arm/include/asm/cp15.h
index 1f3262e99d81..cedd3721318b 100644
--- a/arch/arm/include/asm/cp15.h
+++ b/arch/arm/include/asm/cp15.h
@@ -61,6 +61,20 @@ static inline void set_cr(unsigned int val)
isb();
}
+static inline unsigned int get_auxcr(void)
+{
+ unsigned int val;
+ asm("mrc p15, 0, %0, c1, c0, 1 @ get AUXCR" : "=r" (val));
+ return val;
+}
+
+static inline void set_auxcr(unsigned int val)
+{
+ asm volatile("mcr p15, 0, %0, c1, c0, 1 @ set AUXCR"
+ : : "r" (val));
+ isb();
+}
+
#ifndef CONFIG_SMP
extern void adjust_cr(unsigned long mask, unsigned long set);
#endif