summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpu-tegra3.c
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2012-04-19 23:04:28 -0700
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-05-03 13:41:43 -0700
commit22886da975d44546736b69c64414b56bf3eb7186 (patch)
tree5f5a7ff0a11bd58d41a6ed6be4ea25210a2c9d9b /arch/arm/mach-tegra/cpu-tegra3.c
parent0a8747add8d3e7f90a925ccfebb2157545574ee6 (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.c5
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);