diff options
Diffstat (limited to 'drivers/cpufreq/speedstep-smi.c')
-rw-r--r-- | drivers/cpufreq/speedstep-smi.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/cpufreq/speedstep-smi.c b/drivers/cpufreq/speedstep-smi.c index a02b649c9647..19446e479ccc 100644 --- a/drivers/cpufreq/speedstep-smi.c +++ b/drivers/cpufreq/speedstep-smi.c | |||
@@ -235,29 +235,19 @@ static void speedstep_set_state(unsigned int state) | |||
235 | /** | 235 | /** |
236 | * speedstep_target - set a new CPUFreq policy | 236 | * speedstep_target - set a new CPUFreq policy |
237 | * @policy: new policy | 237 | * @policy: new policy |
238 | * @target_freq: new freq | 238 | * @index: index of new freq |
239 | * @relation: | ||
240 | * | 239 | * |
241 | * Sets a new CPUFreq policy/freq. | 240 | * Sets a new CPUFreq policy/freq. |
242 | */ | 241 | */ |
243 | static int speedstep_target(struct cpufreq_policy *policy, | 242 | static int speedstep_target(struct cpufreq_policy *policy, unsigned int index) |
244 | unsigned int target_freq, unsigned int relation) | ||
245 | { | 243 | { |
246 | unsigned int newstate = 0; | ||
247 | struct cpufreq_freqs freqs; | 244 | struct cpufreq_freqs freqs; |
248 | 245 | ||
249 | if (cpufreq_frequency_table_target(policy, &speedstep_freqs[0], | ||
250 | target_freq, relation, &newstate)) | ||
251 | return -EINVAL; | ||
252 | |||
253 | freqs.old = speedstep_freqs[speedstep_get_state()].frequency; | 246 | freqs.old = speedstep_freqs[speedstep_get_state()].frequency; |
254 | freqs.new = speedstep_freqs[newstate].frequency; | 247 | freqs.new = speedstep_freqs[index].frequency; |
255 | |||
256 | if (freqs.old == freqs.new) | ||
257 | return 0; | ||
258 | 248 | ||
259 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE); | 249 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE); |
260 | speedstep_set_state(newstate); | 250 | speedstep_set_state(index); |
261 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); | 251 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); |
262 | 252 | ||
263 | return 0; | 253 | return 0; |
@@ -327,7 +317,7 @@ static int speedstep_resume(struct cpufreq_policy *policy) | |||
327 | static struct cpufreq_driver speedstep_driver = { | 317 | static struct cpufreq_driver speedstep_driver = { |
328 | .name = "speedstep-smi", | 318 | .name = "speedstep-smi", |
329 | .verify = cpufreq_generic_frequency_table_verify, | 319 | .verify = cpufreq_generic_frequency_table_verify, |
330 | .target = speedstep_target, | 320 | .target_index = speedstep_target, |
331 | .init = speedstep_cpu_init, | 321 | .init = speedstep_cpu_init, |
332 | .exit = cpufreq_generic_exit, | 322 | .exit = cpufreq_generic_exit, |
333 | .get = speedstep_get, | 323 | .get = speedstep_get, |