Message ID | 1456748580-10519-2-git-send-email-shreyas@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Mon, Feb 29, 2016 at 05:52:58PM +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. Comments below... > diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h > index 93ae809fe5ea..0082290314eb 100644 > --- a/arch/powerpc/include/asm/exception-64s.h > +++ b/arch/powerpc/include/asm/exception-64s.h > @@ -254,6 +254,25 @@ do_kvm_##n: \ > #define KVM_HANDLER_SKIP(area, h, n) > #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; > + > + > #define NOTEST(n) I'd rather keep NOTEST together with the definitions of KVMTEST etc. I suggest you add this block at the end of exceptions-64s.h (just before the final #endif). Paul.
diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h index 93ae809fe5ea..0082290314eb 100644 --- a/arch/powerpc/include/asm/exception-64s.h +++ b/arch/powerpc/include/asm/exception-64s.h @@ -254,6 +254,25 @@ do_kvm_##n: \ #define KVM_HANDLER_SKIP(area, h, n) #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; + + #define NOTEST(n) /* diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S index cf4fb5429cf1..abc53e88a5b4 100644 --- a/arch/powerpc/kernel/idle_power7.S +++ b/arch/powerpc/kernel/idle_power7.S @@ -20,6 +20,7 @@ #include <asm/opal.h> #include <asm/cpuidle.h> #include <asm/mmu-hash64.h> +#include <asm/exception-64s.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)
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. Signed-off-by: Shreyas B. Prabhu <shreyas@linux.vnet.ibm.com> --- arch/powerpc/include/asm/exception-64s.h | 19 +++++++++++++++++++ arch/powerpc/kernel/idle_power7.S | 20 +------------------- 2 files changed, 20 insertions(+), 19 deletions(-)