diff options
author | Rajendra Nayak <rnayak@ti.com> | 2008-09-26 17:49:56 +0530 |
---|---|---|
committer | Kevin Hilman <khilman@deeprootsystems.com> | 2009-11-11 14:42:25 -0800 |
commit | 61255ab9e853ddbbe092328c30921d2ba9434134 (patch) | |
tree | fb98af6ee37546e36ebce77da40d4a6fd99aee78 /arch/arm/mach-omap2/pm34xx.c | |
parent | 57f277b0122722ffa1de1b53aceb70646ce9a8e1 (diff) | |
download | lwn-61255ab9e853ddbbe092328c30921d2ba9434134.tar.gz lwn-61255ab9e853ddbbe092328c30921d2ba9434134.zip |
OMAP3: PM: MPU off-mode support
Adds a 'save_state' option when calling into SRAM idle function
and adds some minor cleanups of SRAM asm code.
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-omap2/pm34xx.c')
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 8b5bf91dc070..9fb087607e76 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -28,6 +28,7 @@ #include <plat/powerdomain.h> #include <plat/control.h> #include <plat/serial.h> +#include <plat/sdrc.h> #include <asm/tlbflush.h> @@ -223,6 +224,9 @@ static void omap_sram_idle(void) /* No need to save context */ save_state = 0; break; + case PWRDM_POWER_OFF: + save_state = 3; + break; default: /* Invalid state */ printk(KERN_ERR "Invalid mpu state in sram_idle\n"); @@ -248,7 +252,12 @@ static void omap_sram_idle(void) prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN); } - _omap_sram_idle(NULL, save_state); + /* + * omap3_arm_context is the location where ARM registers + * get saved. The restore path then reads from this + * location and restores them back. + */ + _omap_sram_idle(omap3_arm_context, save_state); cpu_init(); /* Restore table entry modified during MMU restoration */ |