[PATCH v2 1/5] ARM: omap4: Correct definition of do_wfi() for CONFIG_THUMB2_KERNEL

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Feb 3 14:07:58 EST 2011


On Fri, Feb 04, 2011 at 12:09:34AM +0530, Santosh Shilimkar wrote:
> > -----Original Message-----
> > From: Dave Martin [mailto:dave.martin at linaro.org]
> > Sent: Thursday, February 03, 2011 11:33 PM
> > To: linux-arm-kernel at lists.infradead.org
> > Cc: Dave Martin; Tony Lindgren; Santosh Shilimkar; Jean Pihet;
> > linux-omap at vger.kernel.org; Nicolas Pitre
> > Subject: [PATCH v2 1/5] ARM: omap4: Correct definition of do_wfi()
> > for CONFIG_THUMB2_KERNEL
> >
> > For the Thumb-2 case, the "wfi" mnemonic is used, since in this
> > case the tools will necessarily be new enough to support it.
> >
> > Signed-off-by: Dave Martin <dave.martin at linaro.org>
> 
> I guess, we discussed this patch in your previous post.
> Acked-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> 
> > ---
> >  arch/arm/mach-omap2/include/mach/omap4-common.h |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/include/mach/omap4-common.h
> > b/arch/arm/mach-omap2/include/mach/omap4-common.h
> > index 5b0270b..68ce058 100644
> > --- a/arch/arm/mach-omap2/include/mach/omap4-common.h
> > +++ b/arch/arm/mach-omap2/include/mach/omap4-common.h
> > @@ -17,8 +17,13 @@
> >   * wfi used in low power code. Directly opcode is used instead
> >   * of instruction to avoid mulit-omap build break
> >   */
> > +#ifdef CONFIG_THUMB2_KERNEL
> > +#define do_wfi()			\
> > +		__asm__ __volatile__ ("wfi" : : : "memory")
> > +#else
> >  #define do_wfi()			\
> >  		__asm__ __volatile__ (".word	0xe320f003" : : :
> > "memory")
> > +#endif

We actually have this:

#if __LINUX_ARM_ARCH__ >= 7 ||          \
        (__LINUX_ARM_ARCH__ == 6 && defined(CONFIG_CPU_32v6K))
#define sev()   __asm__ __volatile__ ("sev" : : : "memory")
#define wfe()   __asm__ __volatile__ ("wfe" : : : "memory")
#define wfi()   __asm__ __volatile__ ("wfi" : : : "memory")
#endif

in asm/system.h, so maybe it should be using wfe() from asm/system.h ?



More information about the linux-arm-kernel mailing list