aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/tegra-cpufreq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/cpufreq/tegra-cpufreq.c')
-rw-r--r--drivers/cpufreq/tegra-cpufreq.c25
1 files changed, 5 insertions, 20 deletions
diff --git a/drivers/cpufreq/tegra-cpufreq.c b/drivers/cpufreq/tegra-cpufreq.c
index bd7d89c013a5..f42df7ec03c5 100644
--- a/drivers/cpufreq/tegra-cpufreq.c
+++ b/drivers/cpufreq/tegra-cpufreq.c
@@ -102,12 +102,8 @@ static int tegra_update_cpu_speed(struct cpufreq_policy *policy,
102 unsigned long rate) 102 unsigned long rate)
103{ 103{
104 int ret = 0; 104 int ret = 0;
105 struct cpufreq_freqs freqs;
106 105
107 freqs.old = tegra_getspeed(0); 106 if (tegra_getspeed(0) == rate)
108 freqs.new = rate;
109
110 if (freqs.old == freqs.new)
111 return ret; 107 return ret;
112 108
113 /* 109 /*
@@ -121,21 +117,10 @@ static int tegra_update_cpu_speed(struct cpufreq_policy *policy,
121 else 117 else
122 clk_set_rate(emc_clk, 100000000); /* emc 50Mhz */ 118 clk_set_rate(emc_clk, 100000000); /* emc 50Mhz */
123 119
124 cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE); 120 ret = tegra_cpu_clk_set_rate(rate * 1000);
125 121 if (ret)
126#ifdef CONFIG_CPU_FREQ_DEBUG 122 pr_err("cpu-tegra: Failed to set cpu frequency to %lu kHz\n",
127 printk(KERN_DEBUG "cpufreq-tegra: transition: %u --> %u\n", 123 rate);
128 freqs.old, freqs.new);
129#endif
130
131 ret = tegra_cpu_clk_set_rate(freqs.new * 1000);
132 if (ret) {
133 pr_err("cpu-tegra: Failed to set cpu frequency to %d kHz\n",
134 freqs.new);
135 freqs.new = freqs.old;
136 }
137
138 cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
139 124
140 return ret; 125 return ret;
141} 126}