← Back to team overview

linaro-pm-wg team mailing list archive

[Bug 1171382] [NEW] exynos4: cpuidle does never enter AFTR state

 

Public bug reported:

Despite the cpuidle framework choose the state1 for exynos which is the
AFTR state, the cpu_suspend returns always true, meaning the AFTR
shutdown sequence has been aborted and the cpu0 was never off.

How to reproduce ?

Go to the tag: tracking-mainline-linux-linaro-core-3.7-20130103.0

Add a trace in the cpuidle driver:

diff --git a/arch/arm/mach-exynos/cpuidle.c b/arch/arm/mach-exynos/cpuidle.c
index cff0595..73b3d17 100644
--- a/arch/arm/mach-exynos/cpuidle.c
+++ b/arch/arm/mach-exynos/cpuidle.c
@@ -113,7 +113,8 @@ static int exynos4_enter_core0_aftr(struct cpuidle_device *dev,
        __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
 
        cpu_pm_enter();
-       cpu_suspend(0, idle_finisher);
+       if (!cpu_suspend(0, idle_finisher))
+               printk(KERN_ERR "cpu_suspend succeed\n");
 
 #ifdef CONFIG_SMP
        scu_enable(S5P_VA_SCU);

Offline cpu1 and wait for this trace, it will never come.

** Affects: linaro-power-kernel
     Importance: Undecided
         Status: New

-- 
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/1171382

Title:
  exynos4: cpuidle does never enter AFTR state

Status in Kernel related development for Power Management Working Group:
  New

Bug description:
  Despite the cpuidle framework choose the state1 for exynos which is
  the AFTR state, the cpu_suspend returns always true, meaning the AFTR
  shutdown sequence has been aborted and the cpu0 was never off.

  How to reproduce ?

  Go to the tag: tracking-mainline-linux-linaro-core-3.7-20130103.0

  Add a trace in the cpuidle driver:

  diff --git a/arch/arm/mach-exynos/cpuidle.c b/arch/arm/mach-exynos/cpuidle.c
  index cff0595..73b3d17 100644
  --- a/arch/arm/mach-exynos/cpuidle.c
  +++ b/arch/arm/mach-exynos/cpuidle.c
  @@ -113,7 +113,8 @@ static int exynos4_enter_core0_aftr(struct cpuidle_device *dev,
          __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
   
          cpu_pm_enter();
  -       cpu_suspend(0, idle_finisher);
  +       if (!cpu_suspend(0, idle_finisher))
  +               printk(KERN_ERR "cpu_suspend succeed\n");
   
   #ifdef CONFIG_SMP
          scu_enable(S5P_VA_SCU);

  Offline cpu1 and wait for this trace, it will never come.

To manage notifications about this bug go to:
https://bugs.launchpad.net/linaro-power-kernel/+bug/1171382/+subscriptions


Follow ups

References