Message ID | 8c52750bfcd2a7c65673fc82763df7a7f335c79c.1489383815.git.ego@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Mon, 13 Mar 2017 11:31:26 +0530 "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> wrote: > [Changelog written with inputs from svaidy@linux.vnet.ibm.com] > Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> > --- > arch/powerpc/platforms/powernv/smp.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c > index e39e6c4..8d5b99e 100644 > --- a/arch/powerpc/platforms/powernv/smp.c > +++ b/arch/powerpc/platforms/powernv/smp.c > @@ -192,8 +192,16 @@ static void pnv_smp_cpu_kill_self(void) > } else if ((idle_states & OPAL_PM_SLEEP_ENABLED) || > (idle_states & OPAL_PM_SLEEP_ENABLED_ER1)) { > srr1 = power7_sleep(); > - } else { > + } else if (idle_states & OPAL_PM_NAP_ENABLED) { > srr1 = power7_nap(1); > + } else { > + /* This is the fallback method. We emulate snooze */ > + while (!generic_check_cpu_restart(cpu)) { > + HMT_low(); > + HMT_very_low(); > + } > + srr1 = 0; > + HMT_medium(); > } > > ppc64_runlatch_on();
diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c index e39e6c4..8d5b99e 100644 --- a/arch/powerpc/platforms/powernv/smp.c +++ b/arch/powerpc/platforms/powernv/smp.c @@ -192,8 +192,16 @@ static void pnv_smp_cpu_kill_self(void) } else if ((idle_states & OPAL_PM_SLEEP_ENABLED) || (idle_states & OPAL_PM_SLEEP_ENABLED_ER1)) { srr1 = power7_sleep(); - } else { + } else if (idle_states & OPAL_PM_NAP_ENABLED) { srr1 = power7_nap(1); + } else { + /* This is the fallback method. We emulate snooze */ + while (!generic_check_cpu_restart(cpu)) { + HMT_low(); + HMT_very_low(); + } + srr1 = 0; + HMT_medium(); } ppc64_runlatch_on();