summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cpu-tegra3.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/cpu-tegra3.c')
-rw-r--r--arch/arm/mach-tegra/cpu-tegra3.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/cpu-tegra3.c b/arch/arm/mach-tegra/cpu-tegra3.c
index 16b3d0b2fd65..88adea4fd792 100644
--- a/arch/arm/mach-tegra/cpu-tegra3.c
+++ b/arch/arm/mach-tegra/cpu-tegra3.c
@@ -190,7 +190,7 @@ static void tegra_auto_hotplug_work_func(struct work_struct *work)
case TEGRA_HP_IDLE:
break;
case TEGRA_HP_DOWN:
- cpu = cpumask_next(0, cpu_online_mask);
+ cpu = tegra_get_slowest_cpu_n();
if (cpu < nr_cpu_ids) {
up = false;
queue_delayed_work(
@@ -210,6 +210,8 @@ static void tegra_auto_hotplug_work_func(struct work_struct *work)
if(!clk_set_parent(cpu_clk, cpu_g_clk)) {
hp_stats_update(CONFIG_NR_CPUS, false);
hp_stats_update(0, true);
+ /* catch-up with governor target speed */
+ tegra_cpu_cap_highest_speed(NULL);
}
queue_delayed_work(
hotplug_wq, &hotplug_work, up2gn_delay);