diff options
Diffstat (limited to 'drivers/cpufreq/s3c2416-cpufreq.c')
-rw-r--r-- | drivers/cpufreq/s3c2416-cpufreq.c | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/drivers/cpufreq/s3c2416-cpufreq.c b/drivers/cpufreq/s3c2416-cpufreq.c index 22dcb81ef9d0..26a35d137157 100644 --- a/drivers/cpufreq/s3c2416-cpufreq.c +++ b/drivers/cpufreq/s3c2416-cpufreq.c | |||
@@ -87,16 +87,6 @@ static struct cpufreq_frequency_table s3c2450_freq_table[] = { | |||
87 | { 0, CPUFREQ_TABLE_END }, | 87 | { 0, CPUFREQ_TABLE_END }, |
88 | }; | 88 | }; |
89 | 89 | ||
90 | static int s3c2416_cpufreq_verify_speed(struct cpufreq_policy *policy) | ||
91 | { | ||
92 | struct s3c2416_data *s3c_freq = &s3c2416_cpufreq; | ||
93 | |||
94 | if (policy->cpu != 0) | ||
95 | return -EINVAL; | ||
96 | |||
97 | return cpufreq_frequency_table_verify(policy, s3c_freq->freq_table); | ||
98 | } | ||
99 | |||
100 | static unsigned int s3c2416_cpufreq_get_speed(unsigned int cpu) | 90 | static unsigned int s3c2416_cpufreq_get_speed(unsigned int cpu) |
101 | { | 91 | { |
102 | struct s3c2416_data *s3c_freq = &s3c2416_cpufreq; | 92 | struct s3c2416_data *s3c_freq = &s3c2416_cpufreq; |
@@ -486,20 +476,14 @@ static int __init s3c2416_cpufreq_driver_init(struct cpufreq_policy *policy) | |||
486 | freq++; | 476 | freq++; |
487 | } | 477 | } |
488 | 478 | ||
489 | policy->cur = clk_get_rate(s3c_freq->armclk) / 1000; | ||
490 | |||
491 | /* Datasheet says PLL stabalisation time must be at least 300us, | 479 | /* Datasheet says PLL stabalisation time must be at least 300us, |
492 | * so but add some fudge. (reference in LOCKCON0 register description) | 480 | * so but add some fudge. (reference in LOCKCON0 register description) |
493 | */ | 481 | */ |
494 | policy->cpuinfo.transition_latency = (500 * 1000) + | 482 | ret = cpufreq_generic_init(policy, s3c_freq->freq_table, |
495 | s3c_freq->regulator_latency; | 483 | (500 * 1000) + s3c_freq->regulator_latency); |
496 | |||
497 | ret = cpufreq_frequency_table_cpuinfo(policy, s3c_freq->freq_table); | ||
498 | if (ret) | 484 | if (ret) |
499 | goto err_freq_table; | 485 | goto err_freq_table; |
500 | 486 | ||
501 | cpufreq_frequency_table_get_attr(s3c_freq->freq_table, 0); | ||
502 | |||
503 | register_reboot_notifier(&s3c2416_cpufreq_reboot_notifier); | 487 | register_reboot_notifier(&s3c2416_cpufreq_reboot_notifier); |
504 | 488 | ||
505 | return 0; | 489 | return 0; |
@@ -518,19 +502,14 @@ err_hclk: | |||
518 | return ret; | 502 | return ret; |
519 | } | 503 | } |
520 | 504 | ||
521 | static struct freq_attr *s3c2416_cpufreq_attr[] = { | ||
522 | &cpufreq_freq_attr_scaling_available_freqs, | ||
523 | NULL, | ||
524 | }; | ||
525 | |||
526 | static struct cpufreq_driver s3c2416_cpufreq_driver = { | 505 | static struct cpufreq_driver s3c2416_cpufreq_driver = { |
527 | .flags = 0, | 506 | .flags = 0, |
528 | .verify = s3c2416_cpufreq_verify_speed, | 507 | .verify = cpufreq_generic_frequency_table_verify, |
529 | .target = s3c2416_cpufreq_set_target, | 508 | .target = s3c2416_cpufreq_set_target, |
530 | .get = s3c2416_cpufreq_get_speed, | 509 | .get = s3c2416_cpufreq_get_speed, |
531 | .init = s3c2416_cpufreq_driver_init, | 510 | .init = s3c2416_cpufreq_driver_init, |
532 | .name = "s3c2416", | 511 | .name = "s3c2416", |
533 | .attr = s3c2416_cpufreq_attr, | 512 | .attr = cpufreq_generic_attr, |
534 | }; | 513 | }; |
535 | 514 | ||
536 | static int __init s3c2416_cpufreq_init(void) | 515 | static int __init s3c2416_cpufreq_init(void) |