]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/powerpc/include/asm/processor.h
Merge tag 'powerpc-4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[karo-tx-linux.git] / arch / powerpc / include / asm / processor.h
index 1189d04f3bd1ce6db0f6ed5da3414f25dc3f4c38..fab7ff877304e3bb8b5cceaf07af42ea2e459adc 100644 (file)
@@ -421,6 +421,26 @@ static inline unsigned long __pack_fe01(unsigned int fpmode)
 
 #ifdef CONFIG_PPC64
 #define cpu_relax()    do { HMT_low(); HMT_medium(); barrier(); } while (0)
+
+#define spin_begin()   HMT_low()
+
+#define spin_cpu_relax()       barrier()
+
+#define spin_cpu_yield()       spin_cpu_relax()
+
+#define spin_end()     HMT_medium()
+
+#define spin_until_cond(cond)                                  \
+do {                                                           \
+       if (unlikely(!(cond))) {                                \
+               spin_begin();                                   \
+               do {                                            \
+                       spin_cpu_relax();                       \
+               } while (!(cond));                              \
+               spin_end();                                     \
+       }                                                       \
+} while (0)
+
 #else
 #define cpu_relax()    barrier()
 #endif
@@ -474,11 +494,11 @@ extern unsigned long cpuidle_disable;
 enum idle_boot_override {IDLE_NO_OVERRIDE = 0, IDLE_POWERSAVE_OFF};
 
 extern int powersave_nap;      /* set if nap mode can be used in idle loop */
-extern unsigned long power7_nap(int check_irq);
-extern unsigned long power7_sleep(void);
-extern unsigned long power7_winkle(void);
-extern unsigned long power9_idle_stop(unsigned long stop_psscr_val,
-                                     unsigned long stop_psscr_mask);
+extern unsigned long power7_idle_insn(unsigned long type); /* PNV_THREAD_NAP/etc*/
+extern void power7_idle_type(unsigned long type);
+extern unsigned long power9_idle_stop(unsigned long psscr_val);
+extern void power9_idle_type(unsigned long stop_psscr_val,
+                             unsigned long stop_psscr_mask);
 
 extern void flush_instruction_cache(void);
 extern void hard_reset_now(void);