ARM: omap4: Provide do_wfi() for Thumb-2
authorDave Martin <dave.martin@linaro.org>
Fri, 4 Mar 2011 15:33:53 +0000 (15:33 +0000)
committerKevin Hilman <khilman@ti.com>
Thu, 10 Mar 2011 00:38:35 +0000 (16:38 -0800)
For CONFIG_THUMB2_KERNEL, the existing definition of do_wfi() will
insert invalid code into the instruction stream.

Any assembler which can assemble Thumb-2 is guaranteed to accept
the "wfi" mnemonic, so for the Thumb-2 case, just use the mnemonic.

The ARM case is left as-is.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/include/mach/omap4-common.h

index 5b0270b289348116fe92a7741f2cab6f6aa0350b..de441c05a6a6339204cff5633eab3d9f7a767962 100644 (file)
  * 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
 
 #ifdef CONFIG_CACHE_L2X0
 extern void __iomem *l2cache_base;