[PATCH v2 4/9] powerpc/powernv: Make power7_powersave_common more generic

Gautham R Shenoy ego at linux.vnet.ibm.com
Wed May 18 16:37:09 AEST 2016


Hi Shreyas,

On Tue, May 03, 2016 at 01:54:33PM +0530, Shreyas B. Prabhu wrote:
> power7_powersave_common does common steps needed before entering idle
> state and eventually changes MSR to MSR_IDLE and does rfid to
> power7_enter_nap_mode.
> 
> Make it more generic by passing the rfid address as a function parameter.
> Also make function name more generic.

[..snip..]

> 
>  _GLOBAL(power7_winkle)
> -	li	r3,3
> +	li	r3,PNV_THREAD_WINKLE

This particular change above can go as an independent patch.

> 
>  _GLOBAL(power7_wakeup_tb_loss)
> diff --git a/arch/powerpc/kernel/idle_power_common.S b/arch/powerpc/kernel/idle_power_common.S
> index 05954ae..ff7a541 100644
> --- a/arch/powerpc/kernel/idle_power_common.S
> +++ b/arch/powerpc/kernel/idle_power_common.S
> @@ -21,8 +21,10 @@
>   * To check IRQ_HAPPENED in r4
>   * 	0 - don't check
>   * 	1 - check
> + *
> + * Address to 'rfid' to in r5
>   */
> -_GLOBAL(power7_powersave_common)
> +_GLOBAL(power_powersave_common)
>  	/* Use r3 to pass state nap/sleep/winkle */
>  	/* NAP is a state loss, we create a regs frame on the
>  	 * stack, fill it up with the state we care about and
> @@ -79,13 +81,12 @@ _GLOBAL(power7_powersave_common)
>  	 * because as soon as we do that, another thread can switch
>  	 * the MMU context to the guest.
>  	 */
> -	LOAD_REG_IMMEDIATE(r5, MSR_IDLE)
> +	LOAD_REG_IMMEDIATE(r7, MSR_IDLE)
>  	li	r6, MSR_RI
>  	andc	r6, r9, r6
> -	LOAD_REG_ADDR(r7, power7_enter_nap_mode)
>  	mtmsrd	r6, 1		/* clear RI before setting SRR0/1 */
> -	mtspr	SPRN_SRR0, r7
> -	mtspr	SPRN_SRR1, r5
> +	mtspr	SPRN_SRR0, r5
> +	mtspr	SPRN_SRR1, r7
>  	rfid
>  	/* No return */

Any particular reason why you swapped the roles of r5 and r7 ?

--
Thanks and Regards
gautham.



More information about the Linuxppc-dev mailing list