cpuidle / imx6 : use CPUIDLE_FLAG_TIMER_STOP flag
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Thu, 21 Mar 2013 12:21:33 +0000 (12:21 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 31 Mar 2013 23:10:27 +0000 (01:10 +0200)
Use the CPUIDLE_FLAG_TIMER_STOP and let the cpuidle framework
to handle the CLOCK_EVT_NOTIFY_BROADCAST_ENTER/EXIT when entering
this state.

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

index d533e2695f0ea2c73f9498e662c071ae189a2a58..5ae22f7018134c9cd82f1f0cc0c75ac1a6d40784 100644 (file)
@@ -21,10 +21,6 @@ static DEFINE_SPINLOCK(master_lock);
 static int imx6q_enter_wait(struct cpuidle_device *dev,
                            struct cpuidle_driver *drv, int index)
 {
-       int cpu = dev->cpu;
-
-       clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
-
        if (atomic_inc_return(&master) == num_online_cpus()) {
                /*
                 * With this lock, we prevent other cpu to exit and enter
@@ -43,7 +39,6 @@ idle:
        cpu_do_idle();
 done:
        atomic_dec(&master);
-       clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
 
        return index;
 }
@@ -70,7 +65,8 @@ static struct cpuidle_driver imx6q_cpuidle_driver = {
                {
                        .exit_latency = 50,
                        .target_residency = 75,
-                       .flags = CPUIDLE_FLAG_TIME_VALID,
+                       .flags = CPUIDLE_FLAG_TIME_VALID |
+                                CPUIDLE_FLAG_TIMER_STOP,
                        .enter = imx6q_enter_wait,
                        .name = "WAIT",
                        .desc = "Clock off",