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

Eric Miao eric.miao at linaro.org
Wed Dec 21 21:50:58 EST 2011


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:


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