diff options
author | Scott Williams <scwilliams@nvidia.com> | 2011-02-11 14:37:19 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:42:21 -0800 |
commit | a78b6e4de0623337c26447bf045084217af426eb (patch) | |
tree | a874497bfe8f3057dc7bf5cc3f338b41fe27c6a7 /arch/arm/mach-tegra/cpu-tegra3.c | |
parent | 41d47bdeca1b9eb34fd89fbe875bdab9208fb00c (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.c | 9 |
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); } |