diff options
author | Prashant Gaikwad <pgaikwad@nvidia.com> | 2011-12-13 12:33:13 +0530 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2011-12-22 11:32:03 +0530 |
commit | 51a3974d0c5272ce8ab48d3370dd3debe76747e8 (patch) | |
tree | 74b3ccd4fc6233468daaa5cebf1b03c117d2a6dc /arch/arm/mach-tegra/cpuidle.c | |
parent | 7c85a554dbe3ea7bd1b9724bb84ab82aa672eee0 (diff) |
ARM: tegra: power: Fix clock event broadcast mode
Do not switch to broadcast mode in common code since it
affects both Tegra3 and Tegra2. Tegra3 does not need
broadcast mode until final CPU is going in LP2.
Bug 905813
Change-Id: I7b888504e5a926c15f34b0bb2487e16f672d9294
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/69686
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Raymond Poudrier <rapoudrier@nvidia.com>
Tested-by: Raymond Poudrier <rapoudrier@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle.c')
-rw-r--r-- | arch/arm/mach-tegra/cpuidle.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c index 2ad0fbd6e243..bdf45f81f9da 100644 --- a/arch/arm/mach-tegra/cpuidle.c +++ b/arch/arm/mach-tegra/cpuidle.c @@ -108,7 +108,6 @@ static int tegra_idle_enter_lp2(struct cpuidle_device *dev, return tegra_idle_enter_lp3(dev, state); local_irq_disable(); - clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &dev->cpu); enter = ktime_get(); tegra_cpu_idle_stats_lp2_ready(dev->cpu); @@ -117,9 +116,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(); /* Update LP2 latency provided no fall back to LP3 */ |