[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