summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2013-02-13 14:25:24 +0530
committerKevin Hilman <khilman@linaro.org>2013-04-09 10:53:06 -0700
commit72433ebada5a270899a7b1b1fa5afdc40d24998c (patch)
tree378ff2799598f61ff78db61d909a1d5d19ffca14 /arch/arm/mach-omap2
parentc309f7f46167e85d1aae2fd31f23e7d2b5cdfbe0 (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')
-rw-r--r--arch/arm/mach-omap2/omap-mpuss-lowpower.c5
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