diff options
author | Rob Herring <rob.herring@calxeda.com> | 2013-02-26 17:16:53 -0500 |
---|---|---|
committer | Rob Herring <rob.herring@calxeda.com> | 2013-10-01 17:30:18 -0400 |
commit | 34a5eeb202eb43f36dd39a287669e0b686ddf728 (patch) | |
tree | 397f060b5d3ffb124210e7b13af4cca4d8551803 /drivers/cpuidle | |
parent | 15c03dd4859ab16f9212238f29dd315654aa94f6 (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.c | 4 |
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 | ||