Merge branch 'powernv-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/benh...
[linux-2.6-block.git] / arch / powerpc / kernel / exceptions-64s.S
index 4c34c3c827ad5be65a4f59381c9f485086662fe9..d9c650ec7dac2ee047e5c9ab32d4dda61d31d808 100644 (file)
@@ -121,9 +121,10 @@ BEGIN_FTR_SECTION
        cmpwi   cr1,r13,2
        /* Total loss of HV state is fatal, we could try to use the
         * PIR to locate a PACA, then use an emergency stack etc...
-        * but for now, let's just stay stuck here
+        * OPAL v3 based powernv platforms have new idle states
+        * which fall in this catagory.
         */
-       bgt     cr1,.
+       bgt     cr1,8f
        GET_PACA(r13)
 
 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
@@ -141,6 +142,11 @@ BEGIN_FTR_SECTION
        beq     cr1,2f
        b       .power7_wakeup_noloss
 2:     b       .power7_wakeup_loss
+
+       /* Fast Sleep wakeup on PowerNV */
+8:     GET_PACA(r13)
+       b       .power7_wakeup_tb_loss
+
 9:
 END_FTR_SECTION_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
 #endif /* CONFIG_PPC_P7_NAP */