summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/sleep-t2.S
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2011-07-27 21:30:14 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:46:59 -0800
commit3a83ad92158b2daa2e03b7e9f62ba0a55c444205 (patch)
tree4d614f7d08d71df696880e7d826fa97d9513d90e /arch/arm/mach-tegra/sleep-t2.S
parent111021ac897ab0f8256201de00b1e6ad6b8f0dd1 (diff)
ARM: tegra: power: Clean up stack pointer handling
Clean up some rather fragile manipulation of the stack pointer in the CPU suspend code. It's all unnecssary except in one case where Tegra2 can abort a suspend because of activity on the other CPU. Change-Id: Ic872364c5abd58f704b2afeeae4d8722f127d3bb Signed-off-by: Scott Williams <scwilliams@nvidia.com> Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com> Rebase-Id: R5873dd120df2e98cc5bfcc74f86ebea6cc10f9b2
Diffstat (limited to 'arch/arm/mach-tegra/sleep-t2.S')
-rw-r--r--arch/arm/mach-tegra/sleep-t2.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/sleep-t2.S b/arch/arm/mach-tegra/sleep-t2.S
index 071932713871..c94043e44590 100644
--- a/arch/arm/mach-tegra/sleep-t2.S
+++ b/arch/arm/mach-tegra/sleep-t2.S
@@ -218,6 +218,7 @@ ENTRY(tegra2_sleep_wfi)
* r11 contains the original actlr
*/
+ mov sp, r7 @ restore SP for aborted suspend
bl tegra_pen_lock
mov32 r3, TEGRA_PMC_VIRT
@@ -238,6 +239,8 @@ ENTRY(tegra2_sleep_wfi)
bl __cpuc_flush_kern_all
#endif
+ /* FIXME: The next two instructions should be removed if our change to
+ save the diagnostic regsiter in the CPU context is accepted. */
ldmfd sp!, {r4}
mcr p15, 0, r4, c15, c0, 1 @ write diagnostic register
ldmfd sp!, {lr}