提交 56ee5240 编写于 作者: N Nicholas Piggin 提交者: Michael Ellerman

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: NGautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: NNicholas Piggin <npiggin@gmail.com>
[mpe: Split out of larger patch]
Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
上级 aafc8a83
...@@ -333,7 +333,7 @@ power_enter_stop: ...@@ -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: ...@@ -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: ...@@ -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.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册