lkml.org 
[lkml]   [2016]   [May]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 5/9] powerpc/powernv: Move idle related macros to cpuidle.h
    Date
    Move idle related macros to a common location asm/cpuidle.h so that
    they can be used for stop instruction support.

    Signed-off-by: Shreyas B. Prabhy <shreyas@linux.vnet.ibm.com>
    ---
    arch/powerpc/include/asm/cpuidle.h | 27 +++++++++++++++++++++++++++
    arch/powerpc/kernel/idle_power7.S | 26 --------------------------
    2 files changed, 27 insertions(+), 26 deletions(-)

    diff --git a/arch/powerpc/include/asm/cpuidle.h b/arch/powerpc/include/asm/cpuidle.h
    index d2f99ca..faa97b7 100644
    --- a/arch/powerpc/include/asm/cpuidle.h
    +++ b/arch/powerpc/include/asm/cpuidle.h
    @@ -17,4 +17,31 @@ extern u32 pnv_fastsleep_workaround_at_exit[];

    #endif

    +/* Idle state entry routines */
    +#ifdef CONFIG_PPC_P7_NAP
    +#define IDLE_STATE_ENTER_SEQ(IDLE_INST) \
    + /* Magic NAP/SLEEP/WINKLE mode enter sequence */ \
    + std r0,0(r1); \
    + ptesync; \
    + ld r0,0(r1); \
    +1: cmp cr0,r0,r0; \
    + bne 1b; \
    + IDLE_INST; \
    + b .
    +#endif /* CONFIG_PPC_P7_NAP */
    +
    +/*
    + * Use unused space in the interrupt stack to save and restore
    + * registers for deep-idle support.
    + */
    +#define _SDR1 GPR3
    +#define _RPR GPR4
    +#define _SPURR GPR5
    +#define _PURR GPR6
    +#define _TSCR GPR7
    +#define _DSCR GPR8
    +#define _AMOR GPR9
    +#define _WORT GPR10
    +#define _WORC GPR11
    +
    #endif
    diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
    index 1ea71d4..6a24769 100644
    --- a/arch/powerpc/kernel/idle_power7.S
    +++ b/arch/powerpc/kernel/idle_power7.S
    @@ -24,32 +24,6 @@

    #undef DEBUG

    -/*
    - * Use unused space in the interrupt stack to save and restore
    - * registers for winkle support.
    - */
    -#define _SDR1 GPR3
    -#define _RPR GPR4
    -#define _SPURR GPR5
    -#define _PURR GPR6
    -#define _TSCR GPR7
    -#define _DSCR GPR8
    -#define _AMOR GPR9
    -#define _WORT GPR10
    -#define _WORC GPR11
    -
    -/* Idle state entry routines */
    -
    -#define IDLE_STATE_ENTER_SEQ(IDLE_INST) \
    - /* Magic NAP/SLEEP/WINKLE mode enter sequence */ \
    - std r0,0(r1); \
    - ptesync; \
    - ld r0,0(r1); \
    -1: cmp cr0,r0,r0; \
    - bne 1b; \
    - IDLE_INST; \
    - b .
    -
    .text

    /*
    --
    2.4.11
    \
     
     \ /
      Last update: 2016-05-03 10:41    [W:6.099 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site