]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - arch/powerpc/platforms/powernv/smp.c
powernv/powerpc: Add winkle support for offline cpus
[mirror_ubuntu-zesty-kernel.git] / arch / powerpc / platforms / powernv / smp.c
index c0691d0fb38504841694d5ed23bf164f9a8c0987..6c551a28e89979df16c100a8f4bcc8f357fce2d5 100644 (file)
@@ -167,12 +167,17 @@ static void pnv_smp_cpu_kill_self(void)
         */
        mtspr(SPRN_LPCR, mfspr(SPRN_LPCR) & ~(u64)LPCR_PECE1);
        while (!generic_check_cpu_restart(cpu)) {
+
                ppc64_runlatch_off();
-               if ((idle_states & OPAL_PM_SLEEP_ENABLED) ||
+
+               if (idle_states & OPAL_PM_WINKLE_ENABLED)
+                       srr1 = power7_winkle();
+               else if ((idle_states & OPAL_PM_SLEEP_ENABLED) ||
                                (idle_states & OPAL_PM_SLEEP_ENABLED_ER1))
                        srr1 = power7_sleep();
                else
                        srr1 = power7_nap(1);
+
                ppc64_runlatch_on();
 
                /*