summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpuidle.c
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2011-09-27 20:14:55 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:49:09 -0800
commitf718f636a3c94b1cec48f69c0fd75e96e89ddc64 (patch)
tree98d637ece6cf3b3a5bd9ef2d751ee10127f137e1 /arch/arm/mach-tegra/cpuidle.c
parent25baa7bacaa7f5df156d40889e7f88e7945f577d (diff)
ARM: tegra: power: Initialize and update LP2 exit latency
Change-Id: Id6bacc252774758d9ea03b7f2cc91897b5817e10 Reviewed-on: http://git-master/r/55069 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Rebase-Id: Ra8e8dfed500041886700a8fd44b0b917367225b3
Diffstat (limited to 'arch/arm/mach-tegra/cpuidle.c')
-rw-r--r--arch/arm/mach-tegra/cpuidle.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c
index 541b50213e34..694ab2943fe9 100644
--- a/arch/arm/mach-tegra/cpuidle.c
+++ b/arch/arm/mach-tegra/cpuidle.c
@@ -47,6 +47,7 @@
#include "sleep.h"
int tegra_lp2_exit_latency;
+static int tegra_lp2_power_off_time;
static unsigned int tegra_lp2_min_residency;
struct cpuidle_driver tegra_idle = {
@@ -121,6 +122,9 @@ static int tegra_idle_enter_lp2(struct cpuidle_device *dev,
hrtimer_peek_ahead_timers();
smp_rmb();
+ state->exit_latency = tegra_lp2_exit_latency;
+ state->target_residency = tegra_lp2_exit_latency +
+ tegra_lp2_power_off_time;
if (state->target_residency < tegra_lp2_min_residency)
state->target_residency = tegra_lp2_min_residency;
@@ -222,8 +226,9 @@ static int __init tegra_cpuidle_init(void)
return ret;
#ifdef CONFIG_PM_SLEEP
- /* !!!FIXME!!! Add tegra_lp2_power_off_time */
tegra_lp2_min_residency = tegra_cpu_lp2_min_residency();
+ tegra_lp2_exit_latency = tegra_cpu_power_good_time();
+ tegra_lp2_power_off_time = tegra_cpu_power_off_time();
#endif
for_each_possible_cpu(cpu) {