summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorGary King <gking@nvidia.com>2009-12-16 19:30:51 -0800
committerGary King <gking@nvidia.com>2009-12-17 13:55:48 -0800
commitfd5cdbd6470f6c06878925715371815b62da234c (patch)
tree699652d4377580ce806377c8c1219fa8593745c9 /arch
parentfed27132b7b154ea271128b2153bf367f8363705 (diff)
tegra: check for DFS low corner before entering LP2
fixes performance issues in low-CPU usage scenarios like audio recording Change-Id: I0c965b177a603e9cc395181d06214515d1a0df87
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/idle-t2.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/arm/mach-tegra/idle-t2.c b/arch/arm/mach-tegra/idle-t2.c
index c1edae8edab0..4461381e0cfc 100644
--- a/arch/arm/mach-tegra/idle-t2.c
+++ b/arch/arm/mach-tegra/idle-t2.c
@@ -182,13 +182,17 @@ void mach_tegra_idle(void)
if (num_online_cpus() > 1)
lp2safe = 1;
- if (num_online_cpus() == 1 && lp2safe)
- {
- lp2count++;
- NvSpareTimerTrigger(lp2_time);
- cpu_ap20_do_lp2();
- NvRmPrivSetLp2TimeUS(s_hRmGlobal, MAX_LP2_TIME_US);
- return;
+ if (num_online_cpus() == 1 && lp2safe) {
+ NvU32 dfs_low_corner = (NvRmPrivGetDfsFlags(s_hRmGlobal) &
+ NvRmDfsStatusFlags_Pause);
+
+ if (dfs_low_corner) {
+ lp2count++;
+ NvSpareTimerTrigger(lp2_time);
+ cpu_ap20_do_lp2();
+ NvRmPrivSetLp2TimeUS(s_hRmGlobal, MAX_LP2_TIME_US);
+ return;
+ }
}
}
#endif