Hi Deepthi, On 02/07/2014 03:15 PM, Deepthi Dharwar wrote: > Hi Preeti, > > Thanks for the patch. > > On 02/07/2014 12:31 PM, Preeti U Murthy wrote: >> Hi Nicolas, >> >> Find below the patch that will need to be squashed with this one. >> This patch is based on the mainline.Adding Deepthi, the author of >> the patch which introduced the powernv cpuidle driver. Deepthi, >> do you think the below patch looks right? We do not need to do an >> explicit local_irq_enable() since we are in the call path of >> cpuidle driver and that explicitly enables irqs on exit from >> idle states. > > Yes, We enable irqs explicitly while entering snooze loop and we always > have interrupts enabled in the snooze state. > For NAP state, we exit out of this state with interrupts enabled so we > do not need an explicit enable of irqs. > >> On 02/07/2014 06:47 AM, Nicolas Pitre wrote: >>> On Thu, 6 Feb 2014, Preeti U Murthy wrote: >>> >>>> Hi Daniel, >>>> >>>> On 02/06/2014 09:55 PM, Daniel Lezcano wrote: >>>>> Hi Nico, >>>>> >>>>> >>>>> On 6 February 2014 14:16, Nicolas Pitre <nicolas.pi...@linaro.org> wrote: >>>>> >>>>>> The core idle loop now takes care of it. >>>>>> >>>>>> Signed-off-by: Nicolas Pitre <n...@linaro.org> >>>>>> --- >>>>>> 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(); >>>>>> - } >>>>>> >> >> drivers/cpuidle/cpuidle-powernv.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/cpuidle/cpuidle-powernv.c >> b/drivers/cpuidle/cpuidle-powernv.c >> index 78fd174..130f081 100644 >> --- a/drivers/cpuidle/cpuidle-powernv.c >> +++ b/drivers/cpuidle/cpuidle-powernv.c >> @@ -31,11 +31,13 @@ static int snooze_loop(struct cpuidle_device *dev, >> set_thread_flag(TIF_POLLING_NRFLAG); >> >> while (!need_resched()) { >> + ppc64_runlatch_off(); > ^^^^^^^^^^^^^^^ > We could move this before the while() loop. > It would ideal to turn off latch when we enter snooze and > turn it on when we are about to exit, rather than doing > it over and over in the while loop.
You are right, this can be moved out of the loop. Thanks Regards Preeti U Murthy _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev