[PATCH] ARM: imx6q: build pm code only when CONFIG_PM selected

Shawn Guo shawn.guo at freescale.com
Wed Dec 21 22:30:52 EST 2011


On Thu, Dec 22, 2011 at 10:50:58AM +0800, Eric Miao wrote:
> On Wed, Dec 21, 2011 at 11:33 PM, Shawn Guo <shawn.guo at freescale.com> wrote:
> > On Wed, Dec 21, 2011 at 11:23:47PM +0800, Shawn Guo wrote:
> >> > diff --git a/arch/arm/mach-imx/head-v7.S b/arch/arm/mach-imx/head-v7.S
> >> > index 6229efb..830b5c8 100644
> >> > --- a/arch/arm/mach-imx/head-v7.S
> >> > +++ b/arch/arm/mach-imx/head-v7.S
> >> > @@ -80,12 +80,14 @@ ENDPROC(v7_secondary_startup)
> >> >     .align
> >> >
> >> >     .macro  pl310_resume
> >> > +#ifdef CONFIG_CACHE_L2X0
> >> >     ldr     r2, phys_l2x0_saved_regs
> >> >     ldr     r0, [r2, #L2X0_R_PHY_BASE]      @ get physical base of l2x0
> >> >     ldr     r1, [r2, #L2X0_R_AUX_CTRL]      @ get aux_ctrl value
> >> >     str     r1, [r0, #L2X0_AUX_CTRL]        @ restore aux_ctrl
> >> >     mov     r1, #0x1
> >> >     str     r1, [r0, #L2X0_CTRL]            @ re-enable L2
> >> > +#endif
> >> >     .endm
> >> >
> >> >  ENTRY(v7_cpu_resume)
> >> > @@ -94,6 +96,8 @@ ENTRY(v7_cpu_resume)
> >> >     b       cpu_resume
> >> >  ENDPROC(v7_cpu_resume)
> >> >
> >> > +#ifdef CONFIG_CACHE_L2X0
> >> >     .globl  phys_l2x0_saved_regs
> >> >  phys_l2x0_saved_regs:
> >> >          .long   0
> >> > +#endif
> >>
> >> But I'm thinking about if we can solve this at L2X0 level instead of
> >> introducing ifdef all over every platform code.
> >>
> > Never mind.  Even if we have L2X0_R_PHY_BASE L2X0_R_AUX_CTRL defined
> > for non-L2X0 build, we still need ifdef for pl310_resume calling.
> >
> > But can we save one ifdef by leaving phys_l2x0_saved_regs there?
> 
> Or we can have something like this:
> 

Looks good to me.  Care to create a patch for this?  I will try to
queue both of them.

-- 
Regards,
Shawn

> 
> diff --git a/arch/arm/mach-imx/head-v7.S b/arch/arm/mach-imx/head-v7.S
> index a59cae7..cec23a8 100644
> --- a/arch/arm/mach-imx/head-v7.S
> +++ b/arch/arm/mach-imx/head-v7.S
> @@ -80,6 +80,7 @@ ENDPROC(v7_secondary_startup)
>         .data
>         .align
> 
> +#ifdef CONFIG_CACHE_L2X0
>         .macro  pl310_resume
>         ldr     r2, phys_l2x0_saved_regs
>         ldr     r0, [r2, #L2X0_R_PHY_BASE]      @ get physical base of l2x0
> @@ -89,13 +90,17 @@ ENDPROC(v7_secondary_startup)
>         str     r1, [r0, #L2X0_CTRL]            @ re-enable L2
>         .endm
> 
> +       .globl  phys_l2x0_saved_regs
> +phys_l2x0_saved_regs:
> +        .long   0
> +#else
> +       .macro  pl310_resume
> +       .endm
> +#endif
> +
>  ENTRY(v7_cpu_resume)
>         bl      v7_invalidate_l1
>         pl310_resume
>         b       cpu_resume
>  ENDPROC(v7_cpu_resume)
> -
> -       .globl  phys_l2x0_saved_regs
> -phys_l2x0_saved_regs:
> -        .long   0
>  #endif
> 




More information about the linux-arm-kernel mailing list