diff options
author | Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com> | 2014-05-08 14:43:52 -0400 |
---|---|---|
committer | Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com> | 2014-05-13 12:32:46 -0400 |
commit | ef9b405510b379c70e71e1fa2bdbec1b4d89483d (patch) | |
tree | 95137bc25af552b1f20978cb8469e86ac9d2a41b | |
parent | 1cd4822f117d32c31b8aa30a0942e1b39fa65094 (diff) |
ENGR00312939 ARM:imx6x: Ensure that the suspend/resume code saves the registers.
The suspend/resume code needs to save the ARM registers that is used
in the code. The return paths from the suspend code can be different, based
on if an interrupt is pending. So we cannot depend on the kernel code to
restore the registers.
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
-rw-r--r-- | arch/arm/mach-imx/suspend-imx6.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/suspend-imx6.S b/arch/arm/mach-imx/suspend-imx6.S index 261a29080c30..f21e1359bc5c 100644 --- a/arch/arm/mach-imx/suspend-imx6.S +++ b/arch/arm/mach-imx/suspend-imx6.S | |||
@@ -558,6 +558,8 @@ | |||
558 | 558 | ||
559 | ENTRY(imx6_suspend) | 559 | ENTRY(imx6_suspend) |
560 | 560 | ||
561 | push {r4-r12} | ||
562 | |||
561 | /* | 563 | /* |
562 | * counting the resume address in iram | 564 | * counting the resume address in iram |
563 | * to set it in SRC register. | 565 | * to set it in SRC register. |
@@ -873,6 +875,8 @@ poll_dvfs_clear_2: | |||
873 | ldr r6, =0x0 | 875 | ldr r6, =0x0 |
874 | mcr p15, 0, r6, c8, c3, 0 | 876 | mcr p15, 0, r6, c8, c3, 0 |
875 | 877 | ||
878 | pop {r4-r12} | ||
879 | |||
876 | /* return to suspend finish */ | 880 | /* return to suspend finish */ |
877 | mov pc, lr | 881 | mov pc, lr |
878 | 882 | ||