diff options
-rw-r--r-- | arch/arm/mach-tegra/cpuidle.c | 16 |
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); |