From patchwork Mon Dec 26 02:17:28 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: ARM: imx6q: resume PL310 only when CACHE_L2X0 defined Date: Sun, 25 Dec 2011 16:17:28 -0000 From: Shawn Guo X-Patchwork-Id: 133204 Message-Id: <20111226021727.GN8240@S2100-06.ap.freescale.net> To: Eric Miao Cc: Shawn Guo , linux-arm-kernel , Lothar =?iso-8859-1?Q?Wa=DFmann?= On Thu, Dec 22, 2011 at 11:55:01AM +0800, Eric Miao wrote: > Original patch from Lothar Waßmann, this patch fixes a building error > when CONFIG_CACHE_L2X0 is not defined. > > Cc: Lothar Waßmann > Cc: Shawn Guo > Signed-off-by: Eric Miao > --- > arch/arm/mach-imx/head-v7.S | 13 +++++++++---- > 1 files changed, 9 insertions(+), 4 deletions(-) > > 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 > -- > 1.7.5.4 > The following change on pm-imx6q.c needs to amended, otherwise we will see LD .tmp_vmlinux1 arch/arm/mach-imx/built-in.o: In function `imx6q_pm_init': arch/arm/mach-imx/pm-imx6q.c:70: undefined reference to `phys_l2x0_saved_regs' arch/arm/mach-imx/pm-imx6q.c:70: undefined reference to `l2x0_saved_regs' I fixed it up and queued for 3.3. Thanks. Regards, Shawn 8<---- diff --git a/arch/arm/mach-imx/pm-imx6q.c b/arch/arm/mach-imx/pm-imx6q.c index f20f191..f7b0c2b 100644 --- a/arch/arm/mach-imx/pm-imx6q.c +++ b/arch/arm/mach-imx/pm-imx6q.c @@ -64,7 +64,9 @@ void __init imx6q_pm_init(void) * address of the data structure used by l2x0 core to save registers, * and later restore the necessary ones in imx6q resume entry. */ +#ifdef CONFIG_CACHE_L2X0 phys_l2x0_saved_regs = __pa(&l2x0_saved_regs); +#endif suspend_set_ops(&imx6q_pm_ops); }