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>
This commit is contained in:
Родитель
aafc8a8300
Коммит
56ee52408e
|
@ -333,7 +333,7 @@ power_enter_stop:
|
||||||
andis. r4,r3,PSSCR_EC_ESL_MASK_SHIFTED
|
andis. r4,r3,PSSCR_EC_ESL_MASK_SHIFTED
|
||||||
clrldi r3,r3,60 /* r3 = Bits[60:63] = Requested Level (RL) */
|
clrldi r3,r3,60 /* r3 = Bits[60:63] = Requested Level (RL) */
|
||||||
bne .Lhandle_esl_ec_set
|
bne .Lhandle_esl_ec_set
|
||||||
IDLE_STATE_ENTER_SEQ(PPC_STOP)
|
PPC_STOP
|
||||||
li r3,0 /* Since we didn't lose state, return 0 */
|
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)
|
ld r4,ADDROFF(pnv_first_deep_stop_state)(r5)
|
||||||
cmpd r3,r4
|
cmpd r3,r4
|
||||||
bge .Lhandle_deep_stop
|
bge .Lhandle_deep_stop
|
||||||
IDLE_STATE_ENTER_SEQ_NORET(PPC_STOP)
|
PPC_STOP /* Does not return (system reset interrupt) */
|
||||||
|
|
||||||
.Lhandle_deep_stop:
|
.Lhandle_deep_stop:
|
||||||
/*
|
/*
|
||||||
* Entering deep idle state.
|
* Entering deep idle state.
|
||||||
|
@ -388,7 +389,7 @@ lwarx_loop_stop:
|
||||||
|
|
||||||
bl save_sprs_to_stack
|
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.
|
* Entered with MSR[EE]=0 and no soft-masked interrupts pending.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче