Skip to content

Commit

Permalink
powerpc/64s: POWER9 can execute stop without a sync sequence
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Nicholas Piggin authored and Michael Ellerman committed Aug 29, 2017
1 parent aafc8a8 commit 56ee524
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions arch/powerpc/kernel/idle_book3s.S
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

/*
Expand Down Expand Up @@ -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.
Expand All @@ -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.
Expand Down

0 comments on commit 56ee524

Please sign in to comment.