Re: [PATCH v6 07/11] powerpc/powernv: set power_save func after the idle states are initialized

From: Michael Neuling
Date: Wed Jun 22 2016 - 01:11:41 EST


On Wed, 2016-06-22 at 11:54 +1000, Benjamin Herrenschmidt wrote:
> On Wed, 2016-06-08 at 11:54 -0500, Shreyas B. Prabhu wrote:
> >
> > pnv_init_idle_states discovers supported idle states from the
> > device tree and does the required initialization. Set power_save
> > function pointer only after this initialization is done
> >
> > Reviewed-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Shreyas B. Prabhu <shreyas@xxxxxxxxxxxxxxxxxx>
> Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
>
> Please merge that one as-is now, no need to wait for the rest, as
> otherwise pwoer9 crashes at boot. It doesn't need to wait for the
> rest of the series.

Acked-by: Michael Neuling <mikey@xxxxxxxxxxx>

For the same reason. Without this we need powersave=off on the cmdline on
POWER9.

Mikey

>
> Cheers,
> Ben.
>
> >
> > ---
> > - No changes since v1
> >
> > Âarch/powerpc/platforms/powernv/idle.cÂÂ| 3 +++
> > Âarch/powerpc/platforms/powernv/setup.c | 2 +-
> > Â2 files changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/powerpc/platforms/powernv/idle.c
> > b/arch/powerpc/platforms/powernv/idle.c
> > index fcc8b68..fbb09fb 100644
> > --- a/arch/powerpc/platforms/powernv/idle.c
> > +++ b/arch/powerpc/platforms/powernv/idle.c
> > @@ -285,6 +285,9 @@ static int __init pnv_init_idle_states(void)
> > Â }
> > Â
> > Â pnv_alloc_idle_core_states();
> > +
> > + if (supported_cpuidle_states & OPAL_PM_NAP_ENABLED)
> > + ppc_md.power_save = power7_idle;
> > Âout_free:
> > Â kfree(flags);
> > Âout:
> > diff --git a/arch/powerpc/platforms/powernv/setup.c
> > b/arch/powerpc/platforms/powernv/setup.c
> > index ee6430b..8492bbb 100644
> > --- a/arch/powerpc/platforms/powernv/setup.c
> > +++ b/arch/powerpc/platforms/powernv/setup.c
> > @@ -315,7 +315,7 @@ define_machine(powernv) {
> > Â .get_proc_freqÂÂÂÂÂÂÂÂÂÂ= pnv_get_proc_freq,
> > Â .progress = pnv_progress,
> > Â .machine_shutdown = pnv_shutdown,
> > - .power_saveÂÂÂÂÂÂÂÂÂÂÂÂÂ= power7_idle,
> > + .power_saveÂÂÂÂÂÂÂÂÂÂÂÂÂ= NULL,
> > Â .calibrate_decr = generic_calibrate_decr,
> > Â#ifdef CONFIG_KEXEC
> > Â .kexec_cpu_down = pnv_kexec_cpu_down,