cpuidle / imx6 : use CPUIDLE_FLAG_TIMER_STOP flag

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>
This commit is contained in:
Daniel Lezcano 2013-03-21 12:21:33 +00:00 committed by Rafael J. Wysocki
parent cb7094e848
commit 8de46eff65

View File

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