> -----Original Message----- > From: Dave Martin [mailto:dave.martin@xxxxxxxxxx] > Sent: Friday, February 04, 2011 4:28 PM > To: Santosh Shilimkar > Cc: Russell King - ARM Linux; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; > Tony Lindgren; Nicolas Pitre; linux-omap@xxxxxxxxxxxxxxx; Jean > Pihet-XID > Subject: Re: [PATCH v2 1/5] ARM: omap4: Correct definition of > do_wfi() forCONFIG_THUMB2_KERNEL > > On Thu, Feb 3, 2011 at 7:30 PM, Santosh Shilimkar > <santosh.shilimkar@xxxxxx> wrote: > >> -----Original Message----- [....] > >> 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 > >> ? > > I assume you mean wfi here. > > The problem is, omap2plus build breaks because it builds > > CPU_32v6 and CPU_32v7 as well which doesn't support the wfi > > instruction. Hence I used opcode directly to keep build > > working. > > I guess that's right, OMAP2 is ARM1136 and doesn't have the K > extensions. > > Would it make sense to have the v6 MCR equivalent as an altetnative? > Something like: > > #elseif __LINUX_ARM_ARCH__ >= 6 > #define wfi() __asm__ __volatile__ ( \ > "mov r0, #0\n\t" \ > "mcr p15, 0, r0, c7, c0, 4\n\t" \ > ::: "r0" > ) > #endif > > This MCR is a mandatory part of the architecture for v6, but it's > not > mandatory for older processors. > That should do as well. Regards, Santosh -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html