ARM: davinci: cpuidle: fix wrong enter function
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Wed, 3 Apr 2013 12:15:19 +0000 (12:15 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 8 Apr 2013 20:20:06 +0000 (22:20 +0200)
The davinci_enter_idle is called from the cpuidle with the
cpuidle_wrap_enter function. This one does the time compution
for entering and exiting the idle function and then we call
again cpuidle_wrap_enter for cpu_do_idle. This is wrong, we
are calling recursively cpuidle_wrap_enter for nothing and
furthermore reenabling the local irq.

Remove this and replace it by the cpu_do_idle function.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/arm/mach-davinci/cpuidle.c

index 5ac9e9384b1531c8e05e3adf7aec91f2171a9798..22d6d4acc8d914f5c522e162e4cda5a90e8662b5 100644 (file)
@@ -50,14 +50,10 @@ static void davinci_save_ddr_power(int enter, bool pdown)
 
 /* Actual code that puts the SoC in different idle states */
 static int davinci_enter_idle(struct cpuidle_device *dev,
-                               struct cpuidle_driver *drv,
-                                               int index)
+                             struct cpuidle_driver *drv, int index)
 {
        davinci_save_ddr_power(1, ddr2_pdown);
-
-       index = cpuidle_wrap_enter(dev, drv, index,
-                               arm_cpuidle_simple_enter);
-
+       cpu_do_idle();
        davinci_save_ddr_power(0, ddr2_pdown);
 
        return index;