1
0
Fork 0

powerpc/64s: POWER9 can execute stop without a sync sequence

We don't need to use IDLE_STATE_ENTER_SEQ_NORET on Power9.

Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
[mpe: Split out of larger patch]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
hifive-unleashed-5.1
Nicholas Piggin 2017-08-29 21:34:40 +10:00 committed by Michael Ellerman
parent aafc8a8300
commit 56ee52408e
1 changed files with 4 additions and 3 deletions

View File

@ -333,7 +333,7 @@ power_enter_stop:
andis. r4,r3,PSSCR_EC_ESL_MASK_SHIFTED
clrldi r3,r3,60 /* r3 = Bits[60:63] = Requested Level (RL) */
bne .Lhandle_esl_ec_set
IDLE_STATE_ENTER_SEQ(PPC_STOP)
PPC_STOP
li r3,0 /* Since we didn't lose state, return 0 */
/*
@ -366,7 +366,8 @@ power_enter_stop:
ld r4,ADDROFF(pnv_first_deep_stop_state)(r5)
cmpd r3,r4
bge .Lhandle_deep_stop
IDLE_STATE_ENTER_SEQ_NORET(PPC_STOP)
PPC_STOP /* Does not return (system reset interrupt) */
.Lhandle_deep_stop:
/*
* Entering deep idle state.
@ -388,7 +389,7 @@ lwarx_loop_stop:
bl save_sprs_to_stack
IDLE_STATE_ENTER_SEQ_NORET(PPC_STOP)
PPC_STOP /* Does not return (system reset interrupt) */
/*
* Entered with MSR[EE]=0 and no soft-masked interrupts pending.