diff options
author | Alex Frid <afrid@nvidia.com> | 2012-02-28 11:33:07 -0800 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2012-03-14 16:36:50 -0700 |
commit | 29944d7b0128700fa369f0a3ab5cd6c24896f974 (patch) | |
tree | 67e564adac86e1e27d9ce9ea1cd0ce9fc23e4f82 /arch/arm/mach-tegra/cpu-tegra3.c | |
parent | d72369393c5997afa3a92e4aaad840c157c9c257 (diff) |
ARM: tegra: power: Use CPU G mode in suspend prepare
Switch to CPU G mode in Tegra3 suspend prepare if CPU suspend
rate is high enough. By symmetry, it guarantees that device
resume will be happening in G mode as well.
Bug 946301
Signed-off-by: Alex Frid <afrid@nvidia.com>
(cherry picked from commit 082be3604056c39442e1b42f5cfceeb089ffdaae)
Change-Id: I42e37ce8847e4916dd0fca9e4bd44096b65f7032
Reviewed-on: http://git-master/r/89352
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/cpu-tegra3.c')
-rw-r--r-- | arch/arm/mach-tegra/cpu-tegra3.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/cpu-tegra3.c b/arch/arm/mach-tegra/cpu-tegra3.c index 4cb9b6f34600..76ff94435a13 100644 --- a/arch/arm/mach-tegra/cpu-tegra3.c +++ b/arch/arm/mach-tegra/cpu-tegra3.c @@ -317,6 +317,14 @@ void tegra_auto_hotplug_governor(unsigned int cpu_freq, bool suspend) if (suspend && (hp_state != TEGRA_HP_DISABLED)) { hp_state = TEGRA_HP_IDLE; + + /* Switch to G-mode if suspend rate is high enough */ + if (is_lp_cluster() && (cpu_freq >= idle_bottom_freq)) { + if (!clk_set_parent(cpu_clk, cpu_g_clk)) { + hp_stats_update(CONFIG_NR_CPUS, false); + hp_stats_update(0, true); + } + } return; } |