diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2013-02-13 14:25:24 +0530 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2013-04-09 10:53:06 -0700 |
commit | 72433ebada5a270899a7b1b1fa5afdc40d24998c (patch) | |
tree | 378ff2799598f61ff78db61d909a1d5d19ffca14 /arch/arm/mach-omap2/omap-mpuss-lowpower.c | |
parent | c309f7f46167e85d1aae2fd31f23e7d2b5cdfbe0 (diff) |
ARM: OMAP4: PM: Avoid expensive cpu_suspend() path for all CPU power states except off
Current CPU PM code code make use of common cpu_suspend() path for all the
CPU power states which is not optimal. In fact cpu_suspend() path is needed
only when we put CPU power domain to off state where the CPU context is lost.
Update the code accordingly so that the expensive cpu_suspend() path
can be avoided for the shallow CPU power states like CPU PD INA/CSWR.
The patch has been tested on OMAP4430 and OMAP5430(with few out of tree patches)
devices for suspend and CPUidle.
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Reported-by: Richard Woodruff <r-woodruff2@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Kevin Hilman <khilman@linaro.org>
Diffstat (limited to 'arch/arm/mach-omap2/omap-mpuss-lowpower.c')
-rw-r--r-- | arch/arm/mach-omap2/omap-mpuss-lowpower.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c index 8bcb64bcdcdb..d650f91f15de 100644 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c @@ -246,7 +246,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state) /* * Call low level function with targeted low power state. */ - cpu_suspend(save_state, omap4_finish_suspend); + if (save_state) + cpu_suspend(save_state, omap4_finish_suspend); + else + omap4_finish_suspend(save_state); /* * Restore the CPUx power state to ON otherwise CPUx |