linaro-pm-wg team mailing list archive
-
linaro-pm-wg team
-
Mailing list archive
-
Message #00394
[Bug 1171253] Re: exynos5 : cpu_suspend for cpuidle broken
It has two reasons:
1: flush_cache_all has been replaced by flush_cache_louis in "suspend.c". This is not working on exynos5250. So when cpu0 enters cpuidle it hangs.
Fix: The fix for this is to call flush_cache_all in "cpuidle.c".
diff --git a/arch/arm/mach-exynos/cpuidle.c b/arch/arm/mach-exynos/cpuidle.c
index fcfe025..a70b53a 100644
--- a/arch/arm/mach-exynos/cpuidle.c
+++ b/arch/arm/mach-exynos/cpuidle.c
@@ -21,6 +21,7 @@
#include <asm/suspend.h>
#include <asm/unified.h>
#include <asm/cpuidle.h>
+#include <asm/cacheflush.h>
#include <mach/regs-clock.h>
#include <mach/regs-pmu.h>
@@ -89,6 +90,8 @@ static void restore_cpu_arch_register(void)
static int idle_finisher(unsigned long flags)
{
+ if (soc_is_exynos5250())
+ flush_cache_all();
cpu_do_idle();
return 1;
}
2: u-boot in arndaleboard with ubuntu package is booting cpu in HYP mode. so while coming out of cpuidle cpu0 in not in HYP mode or some other misbehaviour.
Fix: use mainline u-boot which is not booting cpu in HYP mode.
As of now diden't found solution to fix cpuidle with cpus in HYP mode.
--
You received this bug notification because you are a member of Linaro
Power Management Working Group, which is subscribed to Linaro PMWG
Kernel.
https://bugs.launchpad.net/bugs/1171253
Title:
exynos5 : cpu_suspend for cpuidle broken
Status in Kernel related development for Power Management Working Group:
New
Bug description:
When the cpu exits the AFTR state after the cpu_suspend. The kernel
hangs.
How to reproduce ?
set cpu1 offline:
echo 0 > /sys/devices/system/cpu/cpu1/online
Wait awhile the cpu0 enters the state1 then => hang !
To manage notifications about this bug go to:
https://bugs.launchpad.net/linaro-power-kernel/+bug/1171253/+subscriptions
References