summaryrefslogtreecommitdiff
path: root/drivers/cpuidle/cpuidle-calxeda.c
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/cpuidle-calxeda.c
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/cpuidle-calxeda.c')
-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;
}