diff options
author | Gary King <gking@nvidia.com> | 2009-12-16 19:30:51 -0800 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2009-12-17 13:55:48 -0800 |
commit | fd5cdbd6470f6c06878925715371815b62da234c (patch) | |
tree | 699652d4377580ce806377c8c1219fa8593745c9 /arch | |
parent | fed27132b7b154ea271128b2153bf367f8363705 (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.c | 18 |
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 |