Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56ee5240 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

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: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
[mpe: Split out of larger patch]
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent aafc8a83
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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.