aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpuidle
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2013-02-26 17:16:53 -0500
committerRob Herring <rob.herring@calxeda.com>2013-10-01 17:30:18 -0400
commit34a5eeb202eb43f36dd39a287669e0b686ddf728 (patch)
tree397f060b5d3ffb124210e7b13af4cca4d8551803 /drivers/cpuidle
parent15c03dd4859ab16f9212238f29dd315654aa94f6 (diff)
cpuidle: calxeda: add cpu_pm_enter/exit calls
Wnen powergating the core, we need to call cpu pm notifiers to save VFP state (!SMP only) and resetting the breakpoint h/w. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: linux-pm@vger.kernel.org
Diffstat (limited to 'drivers/cpuidle')
-rw-r--r--drivers/cpuidle/cpuidle-calxeda.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/cpuidle/cpuidle-calxeda.c b/drivers/cpuidle/cpuidle-calxeda.c
index 346058479572..bed707ab6d6e 100644
--- a/drivers/cpuidle/cpuidle-calxeda.c
+++ b/drivers/cpuidle/cpuidle-calxeda.c
@@ -21,6 +21,7 @@
21 */ 21 */
22 22
23#include <linux/cpuidle.h> 23#include <linux/cpuidle.h>
24#include <linux/cpu_pm.h>
24#include <linux/init.h> 25#include <linux/init.h>
25#include <linux/io.h> 26#include <linux/io.h>
26#include <linux/of.h> 27#include <linux/of.h>
@@ -66,8 +67,11 @@ static int calxeda_pwrdown_idle(struct cpuidle_device *dev,
66 struct cpuidle_driver *drv, 67 struct cpuidle_driver *drv,
67 int index) 68 int index)
68{ 69{
70 cpu_pm_enter();
69 highbank_set_cpu_jump(smp_processor_id(), cpu_resume); 71 highbank_set_cpu_jump(smp_processor_id(), cpu_resume);
70 cpu_suspend(0, calxeda_idle_finish); 72 cpu_suspend(0, calxeda_idle_finish);
73 cpu_pm_exit();
74
71 return index; 75 return index;
72} 76}
73 77