summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpu-tegra3.c
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2011-02-11 14:37:19 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:42:21 -0800
commita78b6e4de0623337c26447bf045084217af426eb (patch)
treea874497bfe8f3057dc7bf5cc3f338b41fe27c6a7 /arch/arm/mach-tegra/cpu-tegra3.c
parent41d47bdeca1b9eb34fd89fbe875bdab9208fb00c (diff)
arm: tegra: Fix initial boot to LP cluster
Forbid cluster switch to G cluster if the G cluster doesn't exist. Bug 791057 Original-Change-Id: I215de2581edf5fb3c1feaa00d1c6e0b52b15dc23 Reviewed-on: http://git-master/r/19302 Tested-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Original-Change-Id: Id0a7e5ad62df4d1638518fe00715aac60e4efea9 Rebase-Id: Re39a0fedb7bb0e2518cfd56d46c6565d4a6c2ef4
Diffstat (limited to 'arch/arm/mach-tegra/cpu-tegra3.c')
-rw-r--r--arch/arm/mach-tegra/cpu-tegra3.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/cpu-tegra3.c b/arch/arm/mach-tegra/cpu-tegra3.c
index ac5699599270..895f286daa4c 100644
--- a/arch/arm/mach-tegra/cpu-tegra3.c
+++ b/arch/arm/mach-tegra/cpu-tegra3.c
@@ -195,11 +195,15 @@ static void tegra_auto_hotplug_work_func(struct work_struct *work)
void tegra_auto_hotplug_governor(unsigned int cpu_freq)
{
+ if (!is_g_cluster_present())
+ return;
+
mutex_lock(&tegra_hp_lock);
if (is_lp_cluster() && (cpu_freq > lpcpu_max_freq)) {
- tegra_cluster_control(0, TEGRA_POWER_CLUSTER_G |
- TEGRA_POWER_CLUSTER_IMMEDIATE);
+ if (tegra_cluster_control(0, TEGRA_POWER_CLUSTER_G |
+ TEGRA_POWER_CLUSTER_IMMEDIATE))
+ goto fail;
hp_stats_update(CONFIG_NR_CPUS, false);
hp_stats_update(0, true);
}
@@ -241,6 +245,7 @@ void tegra_auto_hotplug_governor(unsigned int cpu_freq)
__func__, hp_state);
BUG();
}
+fail:
mutex_unlock(&tegra_hp_lock);
}