Commit 591ac0cb authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Ingo Molnar

cpuidle/powernv: Remove redundant cpuidle_idle_call()

The core idle loop now takes care of it. We need to add the runlatch
function calls to the idle routines which was earlier taken care of by
the arch specific idle routine.
Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
Signed-off-by: default avatarPreeti U Murthy <preeti@linux.vnet.ibm.com>
Reviewed-by: default avatarDeepthi Dharwar <deepthi@linux.vnet.ibm.com>
Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: linux-pm@vger.kernel.org
Cc: linaro-kernel@lists.linaro.org
Link: http://lkml.kernel.org/n/tip-nr4mtbkkzf2oomaj85m24o7c@git.kernel.orgSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent d987fc7f
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <linux/of_fdt.h> #include <linux/of_fdt.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/bug.h> #include <linux/bug.h>
#include <linux/cpuidle.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <asm/machdep.h> #include <asm/machdep.h>
...@@ -225,16 +224,6 @@ static int __init pnv_probe(void) ...@@ -225,16 +224,6 @@ static int __init pnv_probe(void)
return 1; return 1;
} }
void powernv_idle(void)
{
/* Hook to cpuidle framework if available, else
* call on default platform idle code
*/
if (cpuidle_idle_call()) {
power7_idle();
}
}
define_machine(powernv) { define_machine(powernv) {
.name = "PowerNV", .name = "PowerNV",
.probe = pnv_probe, .probe = pnv_probe,
...@@ -244,7 +233,7 @@ define_machine(powernv) { ...@@ -244,7 +233,7 @@ define_machine(powernv) {
.show_cpuinfo = pnv_show_cpuinfo, .show_cpuinfo = pnv_show_cpuinfo,
.progress = pnv_progress, .progress = pnv_progress,
.machine_shutdown = pnv_shutdown, .machine_shutdown = pnv_shutdown,
.power_save = powernv_idle, .power_save = power7_idle,
.calibrate_decr = generic_calibrate_decr, .calibrate_decr = generic_calibrate_decr,
.dma_set_mask = pnv_dma_set_mask, .dma_set_mask = pnv_dma_set_mask,
#ifdef CONFIG_KEXEC #ifdef CONFIG_KEXEC
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/firmware.h> #include <asm/firmware.h>
#include <asm/runlatch.h>
struct cpuidle_driver powernv_idle_driver = { struct cpuidle_driver powernv_idle_driver = {
.name = "powernv_idle", .name = "powernv_idle",
...@@ -30,12 +31,14 @@ static int snooze_loop(struct cpuidle_device *dev, ...@@ -30,12 +31,14 @@ static int snooze_loop(struct cpuidle_device *dev,
local_irq_enable(); local_irq_enable();
set_thread_flag(TIF_POLLING_NRFLAG); set_thread_flag(TIF_POLLING_NRFLAG);
ppc64_runlatch_off();
while (!need_resched()) { while (!need_resched()) {
HMT_low(); HMT_low();
HMT_very_low(); HMT_very_low();
} }
HMT_medium(); HMT_medium();
ppc64_runlatch_on();
clear_thread_flag(TIF_POLLING_NRFLAG); clear_thread_flag(TIF_POLLING_NRFLAG);
smp_mb(); smp_mb();
return index; return index;
...@@ -45,7 +48,9 @@ static int nap_loop(struct cpuidle_device *dev, ...@@ -45,7 +48,9 @@ static int nap_loop(struct cpuidle_device *dev,
struct cpuidle_driver *drv, struct cpuidle_driver *drv,
int index) int index)
{ {
ppc64_runlatch_off();
power7_idle(); power7_idle();
ppc64_runlatch_on();
return index; return index;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment