summary refs log tree commit diff
path: root/drivers/cpuidle
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2013-02-26 16:16:53 -0600
committerRob Herring <rob.herring@calxeda.com>2013-10-01 16:30:18 -0500
commit34a5eeb202eb43f36dd39a287669e0b686ddf728 (patch)
tree397f060b5d3ffb124210e7b13af4cca4d8551803 /drivers/cpuidle
parent15c03dd4859ab16f9212238f29dd315654aa94f6 (diff)
downloadlinux-34a5eeb202eb43f36dd39a287669e0b686ddf728.tar.gz
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 @@
  */
 
 #include <linux/cpuidle.h>
+#include <linux/cpu_pm.h>
 #include <linux/init.h>
 #include <linux/io.h>
 #include <linux/of.h>
@@ -66,8 +67,11 @@ static int calxeda_pwrdown_idle(struct cpuidle_device *dev,
 				struct cpuidle_driver *drv,
 				int index)
 {
+	cpu_pm_enter();
 	highbank_set_cpu_jump(smp_processor_id(), cpu_resume);
 	cpu_suspend(0, calxeda_idle_finish);
+	cpu_pm_exit();
+
 	return index;
 }