diff options
-rw-r--r-- | arch/arm/mach-tegra/cpu-tegra.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/cpu-tegra.c b/arch/arm/mach-tegra/cpu-tegra.c index 7ff2a4143280..90745de96c6b 100644 --- a/arch/arm/mach-tegra/cpu-tegra.c +++ b/arch/arm/mach-tegra/cpu-tegra.c @@ -360,7 +360,8 @@ static int tegra_update_cpu_speed(unsigned long rate) * Vote on memory bus frequency based on cpu frequency * This sets the minimum frequency, display or avp may request higher */ - clk_set_rate(emc_clk, tegra_emc_to_cpu_ratio(freqs.new)); + if (freqs.old < freqs.new) + clk_set_rate(emc_clk, tegra_emc_to_cpu_ratio(freqs.new)); for_each_online_cpu(freqs.cpu) cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); @@ -380,6 +381,9 @@ static int tegra_update_cpu_speed(unsigned long rate) for_each_online_cpu(freqs.cpu) cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); + if (freqs.old > freqs.new) + clk_set_rate(emc_clk, tegra_emc_to_cpu_ratio(freqs.new)); + return 0; } |