summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpuidle.c
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2011-03-28 09:53:23 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:42:27 -0800
commitab25783924370dc7b2cd8ef8f26e3ac5bdc34f04 (patch)
tree6801409ee16af4e4c859ead9441af4d706b25c8b /arch/arm/mach-tegra/cpuidle.c
parentafc0add383edad2e53b231f6f169a5ae1faf0d28 (diff)
ARM: tegra: power: Use peek ahead timers not event notification
Use peek ahead timers instead of clock event notification for CPU idle. Original-Change-Id: I14942ab51920f59e0dc0d4892ec2c32e073d2146 Reviewed-on: http://git-master/r/24515 Tested-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Original-Change-Id: I4c781b328a2a8b9fa5ac8fa28970e03d3cadafa2 Rebase-Id: R894866485f818aad0ae776c474530e8be5969d32
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle.c')
-rw-r--r--arch/arm/mach-tegra/cpuidle.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c
index bbca8ddad755..4f975fb72be1 100644
--- a/arch/arm/mach-tegra/cpuidle.c
+++ b/arch/arm/mach-tegra/cpuidle.c
@@ -98,7 +98,6 @@ static int tegra_idle_enter_lp2(struct cpuidle_device *dev,
s64 us;
local_irq_disable();
- clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &dev->cpu);
enter = ktime_get();
idle_stats.cpu_ready_count[dev->cpu]++;
@@ -110,9 +109,11 @@ static int tegra_idle_enter_lp2(struct cpuidle_device *dev,
exit = ktime_sub(ktime_get(), enter);
us = ktime_to_us(exit);
- clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &dev->cpu);
local_irq_enable();
+ /* cpu clockevents may have been reset by powerdown */
+ hrtimer_peek_ahead_timers();
+
smp_rmb();
idle_stats.cpu_wants_lp2_time[dev->cpu] += us;