summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/cpuidle.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c
index f64709cd84d4..252bc123f808 100644
--- a/arch/arm/mach-tegra/cpuidle.c
+++ b/arch/arm/mach-tegra/cpuidle.c
@@ -147,14 +147,14 @@ static int tegra_idle_enter_lp2(struct cpuidle_device *dev,
smp_rmb();
- /* update lp2 latency only if actually exiting from lp2 state */
- if (state == dev->last_state) {
- 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;
- }
+ if (state != dev->last_state)
+ return (int)us; /* skip lp2 stats if we've been in lp3 */
+
+ 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;
tegra_idle_stats_lp2_time(dev->cpu, us);