summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpuidle.c
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2010-12-29 18:12:27 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2011-04-26 15:48:56 -0700
commit98b6c7373d54fb49848e46381c58be9a432901d0 (patch)
tree8f6257783f24bf762a621aa146bda957b39b4e12 /arch/arm/mach-tegra/cpuidle.c
parent5042cb6656ce34baf449d2d5f2f2890d1ff82e4f (diff)
arm: tegra3: Add SMP CPU idle support
Original-Change-Id: I96edd2706d959f04e9bc5cd4a841d9a582fbd469 Reviewed-on: http://git-master/r/14575 Reviewed-by: Scott Williams <scwilliams@nvidia.com> Tested-by: Scott Williams <scwilliams@nvidia.com> Change-Id: I3d49abf93947d09af9bc6faf2b15675303723515
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle.c')
-rw-r--r--arch/arm/mach-tegra/cpuidle.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c
index 5383e437fefb..6aa6ef89d571 100644
--- a/arch/arm/mach-tegra/cpuidle.c
+++ b/arch/arm/mach-tegra/cpuidle.c
@@ -106,18 +106,10 @@ static int tegra_idle_enter_lp2(struct cpuidle_device *dev,
ktime_t enter, exit;
s64 us;
- if (!lp2_in_idle || lp2_disabled_by_suspend)
+ if (!lp2_in_idle || lp2_disabled_by_suspend ||
+ !tegra_lp2_is_allowed(dev, state))
return tegra_idle_enter_lp3(dev, state);
-#if defined(CONFIG_SMP) && !defined(CONFIG_ARCH_TEGRA_2x_SOC)
- if (dev->cpu == 0) {
- u32 reg = readl(CLK_RST_CONTROLLER_CPU_CMPLX_STATUS);
- if ((reg & 0xE) != 0xE) {
- return tegra_idle_enter_lp3(dev, state);
- }
- }
-#endif
-
local_irq_disable();
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &dev->cpu);
local_fiq_disable();