summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpu-tegra.c
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2011-03-30 20:31:30 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-04-26 15:54:59 -0700
commit3b6267d65f84e7acd312a10630726567cf770a13 (patch)
tree196e282415db3b51a6166316959714cd17206676 /arch/arm/mach-tegra/cpu-tegra.c
parentabe026f5803b18c177d6369380acbc1478ca9190 (diff)
ARM: tegra: power: Modify auto-hotplug locking
Use cpufreq (cpu DFS) mutex for auto-hotplug (instead of a separate one) to serialize cpu frequency scaling, hotplug, and CPU mode switch operations. Original-Change-Id: I7ea865894d1676c865294ab31a903248d9437534 Reviewed-on: http://git-master/r/24893 Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Change-Id: I906a23561c1567079a41590a30b29b3d52fa5de8
Diffstat (limited to 'arch/arm/mach-tegra/cpu-tegra.c')
-rw-r--r--arch/arm/mach-tegra/cpu-tegra.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/cpu-tegra.c b/arch/arm/mach-tegra/cpu-tegra.c
index 34033dba7713..93caa24d8053 100644
--- a/arch/arm/mach-tegra/cpu-tegra.c
+++ b/arch/arm/mach-tegra/cpu-tegra.c
@@ -280,11 +280,10 @@ static int tegra_target(struct cpufreq_policy *policy,
target_cpu_speed[policy->cpu] = freq;
new_speed = throttle_governor_speed(tegra_cpu_highest_speed());
ret = tegra_update_cpu_speed(new_speed);
-out:
- mutex_unlock(&tegra_cpu_lock);
-
if (ret == 0)
tegra_auto_hotplug_governor(new_speed);
+out:
+ mutex_unlock(&tegra_cpu_lock);
return ret;
}
@@ -395,7 +394,7 @@ static int __init tegra_cpufreq_init(void)
throttle_lowest_index = table_data->throttle_lowest_index;
throttle_highest_index = table_data->throttle_highest_index;
#endif
- ret = tegra_auto_hotplug_init();
+ ret = tegra_auto_hotplug_init(&tegra_cpu_lock);
if (ret)
return ret;