It is not clear why original code use numeric opcode for wfi instruction. Maybe toolchain used in that time did not understand this mnemonics.
Using direct opcode has the following problems: x) does not work in BE case; in BE8 case instructions are still little endian, so in BE image opcode should be byte swapped x) ARM opcode does not work in case CONFIG_THUMB2_KERNEL kernel even in LE case.
Solution is to replace numeric opcode with proper wfi asm mnemonics.
Signed-off-by: Victor Kamensky victor.kamensky@linaro.org --- arch/arm/mach-exynos/hotplug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-exynos/hotplug.c b/arch/arm/mach-exynos/hotplug.c index 4365ec8..f756a3e 100644 --- a/arch/arm/mach-exynos/hotplug.c +++ b/arch/arm/mach-exynos/hotplug.c @@ -101,7 +101,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious) /* * here's the WFI */ - asm(".word 0xe320f003\n" + asm("wfi\n" : : : "memory", "cc");