aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-exynos/headsmp.S
diff options
context:
space:
mode:
authorBen Dooks2016-06-21 11:20:24 +0100
committerKrzysztof Kozlowski2016-06-21 13:25:58 +0200
commit458ad21df1c38d229aaa4c494199168d742302ab (patch)
tree738f776820ef323c479a9741cbb70a16dee07b2a /arch/arm/mach-exynos/headsmp.S
parentf4c24f36c3e457cb727f9f548f146d805739e8e0 (diff)
ARM: EXYNOS: Fixups for big-endian operation
If the kernel is built big endian, then using the __raw read and write IO accessors is not going to work as they end up writing big-endian data to little-endian IO registers. Fix this by using the readl and writel relaxed versions which ensure little endian IO. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Diffstat (limited to 'arch/arm/mach-exynos/headsmp.S')
-rw-r--r--arch/arm/mach-exynos/headsmp.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S
index b54f9701e421..d3d24ab351ae 100644
--- a/arch/arm/mach-exynos/headsmp.S
+++ b/arch/arm/mach-exynos/headsmp.S
@@ -12,12 +12,15 @@
#include <linux/linkage.h>
#include <linux/init.h>
+#include <asm/assembler.h>
+
/*
* exynos4 specific entry point for secondary CPUs. This provides
* a "holding pen" into which all secondary cores are held until we're
* ready for them to initialise.
*/
ENTRY(exynos4_secondary_startup)
+ARM_BE8(setend be)
mrc p15, 0, r0, c0, c0, 5
and r0, r0, #15
adr r4, 1f