diff options
author | Scott Williams <scwilliams@nvidia.com> | 2011-08-23 11:00:41 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:48:30 -0800 |
commit | ebfe732c0f6f6f34900d1ce00c97aa15201408a5 (patch) | |
tree | 66f66bd431cd41997f19aa36f83bb4c7dd53fdb5 /arch/arm/mach-tegra/cpuidle.c | |
parent | f9c7da35d00782b79d63b62fac71b00ea980b157 (diff) |
ARM: tegra: power: Fix premature clock event broadcast mode
Do not switch to clock event broadcast mode until the final CPU
is going into LP2. Switching into broadcast mode on the secondary
CPUs can cause double ticking and/or kernel panics on the primary.
Change-Id: I92076f053bdae7de57e5d7453170b43558b094cc
Signed-off-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-on: http://git-master/r/48743
Reviewed-by: Jin Qian <jqian@nvidia.com>
Tested-by: Jin Qian <jqian@nvidia.com>
Reviewed-by: Daniel Willemsen <dwillemsen@nvidia.com>
Rebase-Id: R18bd87d171133d210a5edf732960d1c011e1e9a5
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle.c')
-rw-r--r-- | arch/arm/mach-tegra/cpuidle.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c index 92fbc61f469d..3a2452104f46 100644 --- a/arch/arm/mach-tegra/cpuidle.c +++ b/arch/arm/mach-tegra/cpuidle.c @@ -116,13 +116,7 @@ static int tegra_idle_enter_lp2(struct cpuidle_device *dev, enter = ktime_get(); tegra_cpu_idle_stats_lp2_ready(dev->cpu); - - /* Shut down the CPU local timer and switch timekeeping to the - global system timer. */ - clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &dev->cpu); tegra_idle_lp2(dev, state); - /* Switch timekeeping back to the CPU local timer. */ - clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &dev->cpu); exit = ktime_sub(ktime_get(), enter); us = ktime_to_us(exit); |