Re: [PATCH v2 1/9] powerpc/powernv: Move CHECK_HMI_INTERRUPT to exception-64s header

Gautham R Shenoy
2016-05-18T04:36:07Z

On Tue, May 03, 2016 at 01:54:30PM +0530, Shreyas B. Prabhu wrote:
> CHECK_HMI_INTERRUPT is used to check for HMI's in reset vector. Move
> the macro to a common location (exception-64s.h)
> This patch does not change any functionality.
>

I suppose this code movement is to facilitate the invocation of
CHECK_HMI_INTERRUPT in some later patch ? In this case you could
add this to the commit message.

Otherwise,
Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
> ---
> arch/powerpc/include/asm/exception-64s.h | 18 ++++++++++++++++++
> arch/powerpc/kernel/idle_power7.S | 20 +-------------------
> 2 files changed, 19 insertions(+), 19 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h
> index 93ae809..6a625af 100644
> --- a/arch/powerpc/include/asm/exception-64s.h
> +++ b/arch/powerpc/include/asm/exception-64s.h
> @@ -545,4 +545,22 @@ END_FTR_SECTION_IFSET(CPU_FTR_CAN_NAP)
> #define FINISH_NAP
> #endif
>
> +#define CHECK_HMI_INTERRUPT \
> + mfspr r0,SPRN_SRR1; \
> +BEGIN_FTR_SECTION_NESTED(66); \
> + rlwinm r0,r0,45-31,0xf; /* extract wake reason field (P8) */ \
> +FTR_SECTION_ELSE_NESTED(66); \
> + rlwinm r0,r0,45-31,0xe; /* P7 wake reason field is 3 bits */ \
> +ALT_FTR_SECTION_END_NESTED_IFSET(CPU_FTR_ARCH_207S, 66); \
> + cmpwi r0,0xa; /* Hypervisor maintenance ? */ \
> + bne 20f; \
> + /* Invoke opal call to handle hmi */ \
> + ld r2,PACATOC(r13); \
> + ld r1,PACAR1(r13); \
> + std r3,ORIG_GPR3(r1); /* Save original r3 */ \
> + li r0,OPAL_HANDLE_HMI; /* Pass opal token argument*/ \
> + bl opal_call_realmode; \
> + ld r3,ORIG_GPR3(r1); /* Restore original r3 */ \
> +20: nop;
> +
> #endif /* _ASM_POWERPC_EXCEPTION_H */
> diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
> index 470ceeb..6b3404b 100644
> --- a/arch/powerpc/kernel/idle_power7.S
> +++ b/arch/powerpc/kernel/idle_power7.S
> @@ -19,6 +19,7 @@
> #include <asm/kvm_book3s_asm.h>
> #include <asm/opal.h>
> #include <asm/cpuidle.h>
> +#include <asm/exception-64s.h>
> #include <asm/book3s/64/mmu-hash.h>
>
> #undef DEBUG
> @@ -257,25 +258,6 @@ _GLOBAL(power7_winkle)
> b power7_powersave_common
> /* No return */
>
> -#define CHECK_HMI_INTERRUPT \
> - mfspr r0,SPRN_SRR1; \
> -BEGIN_FTR_SECTION_NESTED(66); \
> - rlwinm r0,r0,45-31,0xf; /* extract wake reason field (P8) */ \
> -FTR_SECTION_ELSE_NESTED(66); \
> - rlwinm r0,r0,45-31,0xe; /* P7 wake reason field is 3 bits */ \
> -ALT_FTR_SECTION_END_NESTED_IFSET(CPU_FTR_ARCH_207S, 66); \
> - cmpwi r0,0xa; /* Hypervisor maintenance ? */ \
> - bne 20f; \
> - /* Invoke opal call to handle hmi */ \
> - ld r2,PACATOC(r13); \
> - ld r1,PACAR1(r13); \
> - std r3,ORIG_GPR3(r1); /* Save original r3 */ \
> - li r0,OPAL_HANDLE_HMI; /* Pass opal token argument*/ \
> - bl opal_call_realmode; \
> - ld r3,ORIG_GPR3(r1); /* Restore original r3 */ \
> -20: nop;
> -
> -
> _GLOBAL(power7_wakeup_tb_loss)
> ld r2,PACATOC(r13);
> ld r1,PACAR1(r13)
> --
> 2.4.11
>