diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2013-02-13 03:55:24 -0500 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2013-04-09 13:53:06 -0400 |
commit | 72433ebada5a270899a7b1b1fa5afdc40d24998c (patch) | |
tree | 378ff2799598f61ff78db61d909a1d5d19ffca14 | |
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>
-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) | |||
246 | /* | 246 | /* |
247 | * Call low level function with targeted low power state. | 247 | * Call low level function with targeted low power state. |
248 | */ | 248 | */ |
249 | cpu_suspend(save_state, omap4_finish_suspend); | 249 | if (save_state) |
250 | cpu_suspend(save_state, omap4_finish_suspend); | ||
251 | else | ||
252 | omap4_finish_suspend(save_state); | ||
250 | 253 | ||
251 | /* | 254 | /* |
252 | * Restore the CPUx power state to ON otherwise CPUx | 255 | * Restore the CPUx power state to ON otherwise CPUx |