diff options
author | Scott Williams <scwilliams@nvidia.com> | 2011-07-21 17:06:46 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:46:50 -0800 |
commit | f16ace672ec41b4abcf605c3be4cf0dbdc235acb (patch) | |
tree | 6d8bcafdbe39011cd9725fb94340a8984df9f111 /arch/arm/mach-tegra/cpuidle-t2.c | |
parent | 7c0a5100301534c004146240fb06566045f1637d (diff) |
ARM: tegra: Idle event wakeup timer
Change-Id: If072ef10f02d5be7560fdf42584ab11b2a863481
Signed-off-by: Scott Williams <scwilliams@nvidia.com>
DW: Split into logical changes
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Rebase-Id: Rf1ace67e281b1581501aaa936cd9137d326f2c4a
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle-t2.c')
-rw-r--r-- | arch/arm/mach-tegra/cpuidle-t2.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/cpuidle-t2.c b/arch/arm/mach-tegra/cpuidle-t2.c index d8523661016d..7eba1ab4bee9 100644 --- a/arch/arm/mach-tegra/cpuidle-t2.c +++ b/arch/arm/mach-tegra/cpuidle-t2.c @@ -136,7 +136,7 @@ static int tegra2_reset_other_cpus(int cpu) #endif static int tegra2_idle_lp2_last(struct cpuidle_device *dev, - struct cpuidle_state *state) + struct cpuidle_state *state, s64 request) { int i; @@ -146,7 +146,7 @@ static int tegra2_idle_lp2_last(struct cpuidle_device *dev, if (tegra2_reset_other_cpus(dev->cpu)) return -EBUSY; - tegra_idle_lp2_last(0); + tegra_idle_lp2_last(request, 0); for_each_online_cpu(i) { if (i != dev->cpu) { @@ -161,12 +161,13 @@ static int tegra2_idle_lp2_last(struct cpuidle_device *dev, void tegra2_idle_lp2(struct cpuidle_device *dev, struct cpuidle_state *state) { + s64 request = ktime_to_us(tick_nohz_get_sleep_length()); bool last_cpu = tegra_set_cpu_in_lp2(dev->cpu); cpu_pm_enter(); if (last_cpu) { - if (tegra2_idle_lp2_last(dev, state) < 0) { + if (tegra2_idle_lp2_last(dev, state, request) < 0) { int i; for_each_online_cpu(i) { if (i != dev->cpu) { |