[PATCH] ARM: imx6q: resume PL310 only when CACHE_L2X0 defined
Shawn Guo
shawn.guo at freescale.com
Sun Dec 25 21:17:28 EST 2011
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 <lw at karo-electronics.de>
> Cc: Shawn Guo <shawn.guo at linaro.org>
> Signed-off-by: Eric Miao <eric.miao at linaro.org>
> ---
> 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);
}
More information about the linux-arm-kernel
mailing list