1 #ifndef _ASM_POWERPC_CPUIDLE_H 2 #define _ASM_POWERPC_CPUIDLE_H 3 4 #ifdef CONFIG_PPC_POWERNV 5 /* Used in powernv idle state management */ 6 #define PNV_THREAD_RUNNING 0 7 #define PNV_THREAD_NAP 1 8 #define PNV_THREAD_SLEEP 2 9 #define PNV_THREAD_WINKLE 3 10 #define PNV_CORE_IDLE_LOCK_BIT 0x100 11 #define PNV_CORE_IDLE_THREAD_BITS 0x0FF 12 13 #ifndef __ASSEMBLY__ 14 extern u32 pnv_fastsleep_workaround_at_entry[]; 15 extern u32 pnv_fastsleep_workaround_at_exit[]; 16 17 extern u64 pnv_first_deep_stop_state; 18 #endif 19 20 #endif 21 22 /* Idle state entry routines */ 23 #ifdef CONFIG_PPC_P7_NAP 24 #define IDLE_STATE_ENTER_SEQ(IDLE_INST) \ 25 /* Magic NAP/SLEEP/WINKLE mode enter sequence */ \ 26 std r0,0(r1); \ 27 ptesync; \ 28 ld r0,0(r1); \ 29 1: cmpd cr0,r0,r0; \ 30 bne 1b; \ 31 IDLE_INST; \ 32 b . 33 #endif /* CONFIG_PPC_P7_NAP */ 34 35 #endif 36