diff options
Diffstat (limited to 'drivers/cpufreq/tegra-cpufreq.c')
-rw-r--r-- | drivers/cpufreq/tegra-cpufreq.c | 25 |
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 | } |