* [PATCH 0/2] remove newly introduced calls to cpuidle_idle_call()
@ 2014-02-17 15:59 Nicolas Pitre
2014-02-17 15:59 ` [PATCH 1/2] cpuidle/powernv: remove redundant cpuidle_idle_call() Nicolas Pitre
2014-02-17 15:59 ` [PATCH 2/2] cpuidle/arm64: " Nicolas Pitre
0 siblings, 2 replies; 3+ messages in thread
From: Nicolas Pitre @ 2014-02-17 15:59 UTC (permalink / raw)
To: Ingo Molnar, Peter Zijlstra
Cc: Paul Burton, Deepthi Dharwar, Preeti U Murthy, Rafael J. Wysocki,
Daniel Lezcano, linux-kernel, linux-pm, linaro-kernel
Peter/Ingo: Those should probably go into tip as soon as possible
to follow what I already sent earlier. These are new references to
cpuidle_idle_call that were introduced since -rc1.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] cpuidle/powernv: remove redundant cpuidle_idle_call()
2014-02-17 15:59 [PATCH 0/2] remove newly introduced calls to cpuidle_idle_call() Nicolas Pitre
@ 2014-02-17 15:59 ` Nicolas Pitre
2014-02-17 15:59 ` [PATCH 2/2] cpuidle/arm64: " Nicolas Pitre
1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Pitre @ 2014-02-17 15:59 UTC (permalink / raw)
To: Ingo Molnar, Peter Zijlstra
Cc: Paul Burton, Deepthi Dharwar, Preeti U Murthy, Rafael J. Wysocki,
Daniel Lezcano, linux-kernel, linux-pm, linaro-kernel
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: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Reviewed-by: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/powerpc/platforms/powernv/setup.c | 13 +------------
drivers/cpuidle/cpuidle-powernv.c | 5 +++++
2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c
index 110f4fbd31..81a7a0a79b 100644
--- a/arch/powerpc/platforms/powernv/setup.c
+++ b/arch/powerpc/platforms/powernv/setup.c
@@ -26,7 +26,6 @@
#include <linux/of_fdt.h>
#include <linux/interrupt.h>
#include <linux/bug.h>
-#include <linux/cpuidle.h>
#include <linux/pci.h>
#include <asm/machdep.h>
@@ -225,16 +224,6 @@ static int __init pnv_probe(void)
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) {
.name = "PowerNV",
.probe = pnv_probe,
@@ -244,7 +233,7 @@ define_machine(powernv) {
.show_cpuinfo = pnv_show_cpuinfo,
.progress = pnv_progress,
.machine_shutdown = pnv_shutdown,
- .power_save = powernv_idle,
+ .power_save = power7_idle,
.calibrate_decr = generic_calibrate_decr,
.dma_set_mask = pnv_dma_set_mask,
#ifdef CONFIG_KEXEC
diff --git a/drivers/cpuidle/cpuidle-powernv.c b/drivers/cpuidle/cpuidle-powernv.c
index 78fd174c57..f48607cd25 100644
--- a/drivers/cpuidle/cpuidle-powernv.c
+++ b/drivers/cpuidle/cpuidle-powernv.c
@@ -14,6 +14,7 @@
#include <asm/machdep.h>
#include <asm/firmware.h>
+#include <asm/runlatch.h>
struct cpuidle_driver powernv_idle_driver = {
.name = "powernv_idle",
@@ -30,12 +31,14 @@ static int snooze_loop(struct cpuidle_device *dev,
local_irq_enable();
set_thread_flag(TIF_POLLING_NRFLAG);
+ ppc64_runlatch_off();
while (!need_resched()) {
HMT_low();
HMT_very_low();
}
HMT_medium();
+ ppc64_runlatch_on();
clear_thread_flag(TIF_POLLING_NRFLAG);
smp_mb();
return index;
@@ -45,7 +48,9 @@ static int nap_loop(struct cpuidle_device *dev,
struct cpuidle_driver *drv,
int index)
{
+ ppc64_runlatch_off();
power7_idle();
+ ppc64_runlatch_on();
return index;
}
--
1.8.4.108.g55ea5f6
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] cpuidle/arm64: remove redundant cpuidle_idle_call()
2014-02-17 15:59 [PATCH 0/2] remove newly introduced calls to cpuidle_idle_call() Nicolas Pitre
2014-02-17 15:59 ` [PATCH 1/2] cpuidle/powernv: remove redundant cpuidle_idle_call() Nicolas Pitre
@ 2014-02-17 15:59 ` Nicolas Pitre
1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Pitre @ 2014-02-17 15:59 UTC (permalink / raw)
To: Ingo Molnar, Peter Zijlstra
Cc: Paul Burton, Deepthi Dharwar, Preeti U Murthy, Rafael J. Wysocki,
Daniel Lezcano, linux-kernel, linux-pm, linaro-kernel
The core idle loop now takes care of it.
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/arm64/kernel/process.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 1c0a9be2ff..9cce0098f4 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -33,7 +33,6 @@
#include <linux/kallsyms.h>
#include <linux/init.h>
#include <linux/cpu.h>
-#include <linux/cpuidle.h>
#include <linux/elfcore.h>
#include <linux/pm.h>
#include <linux/tick.h>
@@ -94,10 +93,8 @@ void arch_cpu_idle(void)
* This should do all the clock switching and wait for interrupt
* tricks
*/
- if (cpuidle_idle_call()) {
- cpu_do_idle();
- local_irq_enable();
- }
+ cpu_do_idle();
+ local_irq_enable();
}
#ifdef CONFIG_HOTPLUG_CPU
--
1.8.4.108.g55ea5f6
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-02-17 16:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-17 15:59 [PATCH 0/2] remove newly introduced calls to cpuidle_idle_call() Nicolas Pitre
2014-02-17 15:59 ` [PATCH 1/2] cpuidle/powernv: remove redundant cpuidle_idle_call() Nicolas Pitre
2014-02-17 15:59 ` [PATCH 2/2] cpuidle/arm64: " Nicolas Pitre
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).