diff options
author | Alex Frid <afrid@nvidia.com> | 2012-04-19 23:04:28 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-05-03 13:41:43 -0700 |
commit | 22886da975d44546736b69c64414b56bf3eb7186 (patch) | |
tree | 5f5a7ff0a11bd58d41a6ed6be4ea25210a2c9d9b /arch/arm/mach-tegra/cpu-tegra3.c | |
parent | 0a8747add8d3e7f90a925ccfebb2157545574ee6 (diff) |
ARM: tegra: power: Enforce CPU rate range in min cpu notifier
On Tegra3 make sure cpu rate is within G-mode range before LP to G
mode switch triggered by minimum CPUs notifier.
Bug 964208
Change-Id: Ic4ee6bc7eca5ad0902da4907e4702f296a155280
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/99834
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/cpu-tegra3.c')
-rw-r--r-- | arch/arm/mach-tegra/cpu-tegra3.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/cpu-tegra3.c b/arch/arm/mach-tegra/cpu-tegra3.c index b6579b6b5427..d9535273ea7f 100644 --- a/arch/arm/mach-tegra/cpu-tegra3.c +++ b/arch/arm/mach-tegra/cpu-tegra3.c @@ -296,6 +296,11 @@ static int min_cpus_notify(struct notifier_block *nb, unsigned long n, void *p) mutex_lock(tegra3_cpu_lock); if ((n >= 2) && is_lp_cluster()) { + /* make sure cpu rate is within g-mode range before switching */ + unsigned int speed = max( + tegra_getspeed(0), clk_get_min_rate(cpu_g_clk) / 1000); + tegra_update_cpu_speed(speed); + if (!clk_set_parent(cpu_clk, cpu_g_clk)) { hp_stats_update(CONFIG_NR_CPUS, false); hp_stats_update(0, true); |