]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
ARM: OMAP4: PM: Avoid expensive cpu_suspend() path for all CPU power states except off
authorSantosh Shilimkar <santosh.shilimkar@ti.com>
Wed, 13 Feb 2013 08:55:24 +0000 (14:25 +0530)
committerKevin Hilman <khilman@linaro.org>
Tue, 9 Apr 2013 17:53:06 +0000 (10:53 -0700)
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>
arch/arm/mach-omap2/omap-mpuss-lowpower.c

index 8bcb64bcdcdb37a5642b387a65fbd9dddc04b5f8..d650f91f15ded052b0eb9c90063a87e1cef98722 100644 (file)
@@ -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