diff options
author | Scott Williams <scwilliams@nvidia.com> | 2011-07-27 21:30:14 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:46:59 -0800 |
commit | 3a83ad92158b2daa2e03b7e9f62ba0a55c444205 (patch) | |
tree | 4d614f7d08d71df696880e7d826fa97d9513d90e /arch/arm/mach-tegra/sleep-t2.S | |
parent | 111021ac897ab0f8256201de00b1e6ad6b8f0dd1 (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.S | 3 |
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} |