powerpc/64s/idle: Move soft interrupt mask logic into C code
This simplifies the asm and fixes irq-off tracing over sleep instructions. Also move powersave_nap check for POWER8 into C code, and move PSSCR register value calculation for POWER9 into C. Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
committed by
Michael Ellerman
parent
42bed04255
commit
2201f994a5
@@ -481,11 +481,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);
|
||||
|
||||
Reference in New Issue
Block a user