aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2013-10-03 10:58:28 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-10-15 18:50:28 -0400
commit3be1394a6873496c36d99899fb6ba76ff03a2e96 (patch)
tree14dfe9639b15d5a7b2f5352031601ae9d2422579
parente2132fa66d1ee74a975fd6c42c0aa2fe91e3fc75 (diff)
cpufreq: speedstep: Use generic cpufreq routines
Most of the CPUFreq drivers do similar things in .exit() and .verify() routines and .attr. So its better if we have generic routines for them which can be used by cpufreq drivers then. This patch uses these generic routines in the speedstep driver. Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--drivers/cpufreq/speedstep-centrino.c22
-rw-r--r--drivers/cpufreq/speedstep-ich.c30
-rw-r--r--drivers/cpufreq/speedstep-smi.c30
3 files changed, 8 insertions, 74 deletions
diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
index f180561c3635..c7c14ae1935f 100644
--- a/drivers/cpufreq/speedstep-centrino.c
+++ b/drivers/cpufreq/speedstep-centrino.c
@@ -420,19 +420,6 @@ static int centrino_cpu_exit(struct cpufreq_policy *policy)
420} 420}
421 421
422/** 422/**
423 * centrino_verify - verifies a new CPUFreq policy
424 * @policy: new policy
425 *
426 * Limit must be within this model's frequency range at least one
427 * border included.
428 */
429static int centrino_verify (struct cpufreq_policy *policy)
430{
431 return cpufreq_frequency_table_verify(policy,
432 per_cpu(centrino_model, policy->cpu)->op_points);
433}
434
435/**
436 * centrino_setpolicy - set a new CPUFreq policy 423 * centrino_setpolicy - set a new CPUFreq policy
437 * @policy: new policy 424 * @policy: new policy
438 * @target_freq: the target frequency 425 * @target_freq: the target frequency
@@ -553,20 +540,15 @@ out:
553 return retval; 540 return retval;
554} 541}
555 542
556static struct freq_attr* centrino_attr[] = {
557 &cpufreq_freq_attr_scaling_available_freqs,
558 NULL,
559};
560
561static struct cpufreq_driver centrino_driver = { 543static struct cpufreq_driver centrino_driver = {
562 .name = "centrino", /* should be speedstep-centrino, 544 .name = "centrino", /* should be speedstep-centrino,
563 but there's a 16 char limit */ 545 but there's a 16 char limit */
564 .init = centrino_cpu_init, 546 .init = centrino_cpu_init,
565 .exit = centrino_cpu_exit, 547 .exit = centrino_cpu_exit,
566 .verify = centrino_verify, 548 .verify = cpufreq_generic_frequency_table_verify,
567 .target = centrino_target, 549 .target = centrino_target,
568 .get = get_cur_freq, 550 .get = get_cur_freq,
569 .attr = centrino_attr, 551 .attr = cpufreq_generic_attr,
570}; 552};
571 553
572/* 554/*
diff --git a/drivers/cpufreq/speedstep-ich.c b/drivers/cpufreq/speedstep-ich.c
index 86a184eaa815..929a4f0469a3 100644
--- a/drivers/cpufreq/speedstep-ich.c
+++ b/drivers/cpufreq/speedstep-ich.c
@@ -289,18 +289,6 @@ static int speedstep_target(struct cpufreq_policy *policy,
289} 289}
290 290
291 291
292/**
293 * speedstep_verify - verifies a new CPUFreq policy
294 * @policy: new policy
295 *
296 * Limit must be within speedstep_low_freq and speedstep_high_freq, with
297 * at least one border included.
298 */
299static int speedstep_verify(struct cpufreq_policy *policy)
300{
301 return cpufreq_frequency_table_verify(policy, &speedstep_freqs[0]);
302}
303
304struct get_freqs { 292struct get_freqs {
305 struct cpufreq_policy *policy; 293 struct cpufreq_policy *policy;
306 int ret; 294 int ret;
@@ -352,26 +340,14 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy)
352} 340}
353 341
354 342
355static int speedstep_cpu_exit(struct cpufreq_policy *policy)
356{
357 cpufreq_frequency_table_put_attr(policy->cpu);
358 return 0;
359}
360
361static struct freq_attr *speedstep_attr[] = {
362 &cpufreq_freq_attr_scaling_available_freqs,
363 NULL,
364};
365
366
367static struct cpufreq_driver speedstep_driver = { 343static struct cpufreq_driver speedstep_driver = {
368 .name = "speedstep-ich", 344 .name = "speedstep-ich",
369 .verify = speedstep_verify, 345 .verify = cpufreq_generic_frequency_table_verify,
370 .target = speedstep_target, 346 .target = speedstep_target,
371 .init = speedstep_cpu_init, 347 .init = speedstep_cpu_init,
372 .exit = speedstep_cpu_exit, 348 .exit = cpufreq_generic_exit,
373 .get = speedstep_get, 349 .get = speedstep_get,
374 .attr = speedstep_attr, 350 .attr = cpufreq_generic_attr,
375}; 351};
376 352
377static const struct x86_cpu_id ss_smi_ids[] = { 353static const struct x86_cpu_id ss_smi_ids[] = {
diff --git a/drivers/cpufreq/speedstep-smi.c b/drivers/cpufreq/speedstep-smi.c
index f4d03186e0c1..b3dfba0daabb 100644
--- a/drivers/cpufreq/speedstep-smi.c
+++ b/drivers/cpufreq/speedstep-smi.c
@@ -264,19 +264,6 @@ static int speedstep_target(struct cpufreq_policy *policy,
264} 264}
265 265
266 266
267/**
268 * speedstep_verify - verifies a new CPUFreq policy
269 * @policy: new policy
270 *
271 * Limit must be within speedstep_low_freq and speedstep_high_freq, with
272 * at least one border included.
273 */
274static int speedstep_verify(struct cpufreq_policy *policy)
275{
276 return cpufreq_frequency_table_verify(policy, &speedstep_freqs[0]);
277}
278
279
280static int speedstep_cpu_init(struct cpufreq_policy *policy) 267static int speedstep_cpu_init(struct cpufreq_policy *policy)
281{ 268{
282 int result; 269 int result;
@@ -332,12 +319,6 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy)
332 return cpufreq_table_validate_and_show(policy, speedstep_freqs); 319 return cpufreq_table_validate_and_show(policy, speedstep_freqs);
333} 320}
334 321
335static int speedstep_cpu_exit(struct cpufreq_policy *policy)
336{
337 cpufreq_frequency_table_put_attr(policy->cpu);
338 return 0;
339}
340
341static unsigned int speedstep_get(unsigned int cpu) 322static unsigned int speedstep_get(unsigned int cpu)
342{ 323{
343 if (cpu) 324 if (cpu)
@@ -356,20 +337,15 @@ static int speedstep_resume(struct cpufreq_policy *policy)
356 return result; 337 return result;
357} 338}
358 339
359static struct freq_attr *speedstep_attr[] = {
360 &cpufreq_freq_attr_scaling_available_freqs,
361 NULL,
362};
363
364static struct cpufreq_driver speedstep_driver = { 340static struct cpufreq_driver speedstep_driver = {
365 .name = "speedstep-smi", 341 .name = "speedstep-smi",
366 .verify = speedstep_verify, 342 .verify = cpufreq_generic_frequency_table_verify,
367 .target = speedstep_target, 343 .target = speedstep_target,
368 .init = speedstep_cpu_init, 344 .init = speedstep_cpu_init,
369 .exit = speedstep_cpu_exit, 345 .exit = cpufreq_generic_exit,
370 .get = speedstep_get, 346 .get = speedstep_get,
371 .resume = speedstep_resume, 347 .resume = speedstep_resume,
372 .attr = speedstep_attr, 348 .attr = cpufreq_generic_attr,
373}; 349};
374 350
375static const struct x86_cpu_id ss_smi_ids[] = { 351static const struct x86_cpu_id ss_smi_ids[] = {