[PATCH v2 6/6] arm/imx6q: add suspend/resume support

Shawn Guo shawn.guo at freescale.com
Sat Sep 17 08:32:59 EDT 2011


On Sat, Sep 17, 2011 at 04:30:09PM +0800, Shawn Guo wrote:
[...]
> > > +ENTRY(v7_cpu_resume)
> > > +	bl	v7_invalidate_l1
> > > +	bl	pl310_resume
> > > +	b	cpu_resume
> > > +ENDPROC(v7_cpu_resume)
> > > +
> > > +/*
> > > + * The following code is located into the .data section.  This is to
> > > + * allow pl310_pbase and pl310_aux_ctrl to be accessed with a relative
> > > + * load as we are running on physical address here.
> > > + */
> > > +	.data
> > > +	.align
> > > +ENTRY(pl310_resume)
> > > +	adr	r2, pl310_pbase
> > > +	ldmia	r2, {r0, r1}
> > > +	str	r1, [r0, #L2X0_AUX_CTRL]	@ restore aux_ctrl
> > > +	mov	r1, #0x1
> > > +	str	r1, [r0, #L2X0_CTRL]		@ re-enable L2
> > > +	mov	pc, lr
> > > +ENDPROC(pl310_resume)
> > > +
> > > +pl310_pbase:
> > > +	.long	0
> > > +pl310_aux_ctrl:
> > > +	.long	0
> > 
> > You might want to inline it and avoid the jump.
> > 
> One reason that I implemented pl310_resume as a function call is that
> I was trying to minimize the code that we have to put in .data section.
> Now I do not think it's a point that really matters.  So following your
> suggestion, here it is.  Please let me know it is not what you meant to
> see.
> 
> /*
>  * The following code is located into the .data section.  This is to
>  * allow pl310_pbase and pl310_aux_ctrl to be accessed with a relative
>  * load as we are running on physical address here.
>  */
>         .data
>         .align
> 
>         .macro  pl310_resume
>         adr     r2, pl310_pbase
>         ldmia   r2, {r0, r1}
>         str     r1, [r0, #L2X0_AUX_CTRL]        @ restore aux_ctrl
>         mov     r1, #0x1
>         str     r1, [r0, #L2X0_CTRL]            @ re-enable L2
>         .endm
> 
> ENTRY(v7_cpu_resume)
>         bl      v7_invalidate_l1
>         pl310_resume
>         b       cpu_resume
> ENDPROC(v7_cpu_resume)
> 
> .globl

Sorry.  This is a left-over of .globl playing, which should not be here.

> pl310_pbase:
>         .long   0
> pl310_aux_ctrl:
>         .long   0
> 

-- 
Regards,
Shawn




More information about the linux-arm-kernel mailing list