lkml.org 
[lkml]   [2014]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 1/2] PPC: powernv: remove redundant cpuidle_idle_call()
    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@linux.vnet.ibm.com>
    ---
    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@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();
    > - }
    > -}
    > -
    > 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,
    >



    \
     
     \ /
      Last update: 2014-02-14 13:01    [W:3.815 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site