diff options
author | Stephen Warren <swarren@nvidia.com> | 2013-04-16 13:09:09 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2013-04-18 12:35:19 -0400 |
commit | c312908a10677cc866b2473f4f3fabb448bdfb64 (patch) | |
tree | 3a9a0bc460eec47a22006eaf02ca5cb0c13e0250 | |
parent | a65dc10ffad1e041b4ad3559a026a8bb2b40b77e (diff) |
ARM: tegra: solve adr range issue with THUMB2_KERNEL enabled
When building the kernel with CONFIG_THUMB2_KERNEL enabled, older
assemblers may emit the following error:
reset-handler.S:78: Error: invalid immediate for address calculation (value = 0x00000004)
Using an explicit adr.w instruction will solve this. Newer assemblers do
this automatically. Use the W() macro to do this under Thumb mode only.
Inspired-by: Joseph Lo <josephl@nvidia.com>
Suggested-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/mach-tegra/sleep.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/sleep.h b/arch/arm/mach-tegra/sleep.h index 4ffae541726e..bb308eab9079 100644 --- a/arch/arm/mach-tegra/sleep.h +++ b/arch/arm/mach-tegra/sleep.h | |||
@@ -92,7 +92,7 @@ | |||
92 | 92 | ||
93 | #ifdef CONFIG_CACHE_L2X0 | 93 | #ifdef CONFIG_CACHE_L2X0 |
94 | .macro l2_cache_resume, tmp1, tmp2, tmp3, phys_l2x0_saved_regs | 94 | .macro l2_cache_resume, tmp1, tmp2, tmp3, phys_l2x0_saved_regs |
95 | adr \tmp1, \phys_l2x0_saved_regs | 95 | W(adr) \tmp1, \phys_l2x0_saved_regs |
96 | ldr \tmp1, [\tmp1] | 96 | ldr \tmp1, [\tmp1] |
97 | ldr \tmp2, [\tmp1, #L2X0_R_PHY_BASE] | 97 | ldr \tmp2, [\tmp1, #L2X0_R_PHY_BASE] |
98 | ldr \tmp3, [\tmp2, #L2X0_CTRL] | 98 | ldr \tmp3, [\tmp2, #L2X0_CTRL] |