aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/speedstep-smi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/cpufreq/speedstep-smi.c')
-rw-r--r--drivers/cpufreq/speedstep-smi.c20
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 */
243static int speedstep_target(struct cpufreq_policy *policy, 242static 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)
327static struct cpufreq_driver speedstep_driver = { 317static 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,