Re: [PATCH 1/2] PPC: powernv: remove redundant cpuidle_idle_call()

From: Deepthi Dharwar
Date: Fri Feb 14 2014 - 06:25:46 EST


On 02/14/2014 04:47 PM, Preeti U Murthy wrote:
> Hi Nicolas,
>
> You will have to include the below patch with yours. You
> could squash the two I guess, I have added the changelog
> just for clarity. And you also might want to change the subject to
> cpuidle/powernv. It gives a better picture.
>
> Thanks
>
> Regards
> Preeti U Murthy
>
>
> cpuidle/powernv: Add ppc64_runlatch_off/on() to idle routines
>
> Following moving of cpuidle_idle_call() to the generic idle loop, we need to
> add the runlatch functions to the idle routines on powernv which was earlier
> taken care of by the arch specific idle routine.
>
> Signed-off-by: Preeti U Murthy <preeti@xxxxxxxxxxxxxxxxxx>

Reviewed-by: Deepthi Dharwar <deepthi@xxxxxxxxxxxxxxxxxx>

> ---
> drivers/cpuidle/cpuidle-powernv.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/cpuidle/cpuidle-powernv.c b/drivers/cpuidle/cpuidle-powernv.c
> index 78fd174..f48607c 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;
> }
>
>
> On 02/06/2014 07:46 PM, Nicolas Pitre wrote:
>> The core idle loop now takes care of it.
>>
>> Signed-off-by: Nicolas Pitre <nico@xxxxxxxxxx>
>> ---
>> arch/powerpc/platforms/powernv/setup.c | 13 +------------
>> 1 file changed, 1 insertion(+), 12 deletions(-)
>>
>> diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c
>> index 21166f65c9..a932feb290 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 <asm/machdep.h>
>> #include <asm/firmware.h>
>> @@ -217,16 +216,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,
>> @@ -236,7 +225,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,
>> #ifdef CONFIG_KEXEC
>> .kexec_cpu_down = pnv_kexec_cpu_down,
>>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@xxxxxxxxxxxxxxxx
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/