summaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/pxa2xx-cpufreq.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@rjwysocki.net>2013-10-25 16:36:40 -0400
committerRafael J. Wysocki <rjw@rjwysocki.net>2013-10-25 16:36:40 -0400
commit6ddee424fea2d269c2f402278d93165c7b92dc58 (patch)
treec1b1d0d9058846a6da22def648dea61e16faacd0 /drivers/cpufreq/pxa2xx-cpufreq.c
parente4db1c7439b31993a4886b273bb9235a8eea82bf (diff)
parenta814613b9a32d9ab9578d9dab396265c826d37f0 (diff)
Merge back earlier 'pm-cpufreq' material.
Conflicts: drivers/cpufreq/omap-cpufreq.c
Diffstat (limited to 'drivers/cpufreq/pxa2xx-cpufreq.c')
-rw-r--r--drivers/cpufreq/pxa2xx-cpufreq.c30
1 files changed, 7 insertions, 23 deletions
diff --git a/drivers/cpufreq/pxa2xx-cpufreq.c b/drivers/cpufreq/pxa2xx-cpufreq.c
index 8749eaf18793..29aca574317b 100644
--- a/drivers/cpufreq/pxa2xx-cpufreq.c
+++ b/drivers/cpufreq/pxa2xx-cpufreq.c
@@ -262,23 +262,6 @@ static u32 mdrefr_dri(unsigned int freq)
262 return (interval - (cpu_is_pxa27x() ? 31 : 0)) / 32; 262 return (interval - (cpu_is_pxa27x() ? 31 : 0)) / 32;
263} 263}
264 264
265/* find a valid frequency point */
266static int pxa_verify_policy(struct cpufreq_policy *policy)
267{
268 struct cpufreq_frequency_table *pxa_freqs_table;
269 pxa_freqs_t *pxa_freqs;
270 int ret;
271
272 find_freq_tables(&pxa_freqs_table, &pxa_freqs);
273 ret = cpufreq_frequency_table_verify(policy, pxa_freqs_table);
274
275 if (freq_debug)
276 pr_debug("Verified CPU policy: %dKhz min to %dKhz max\n",
277 policy->min, policy->max);
278
279 return ret;
280}
281
282static unsigned int pxa_cpufreq_get(unsigned int cpu) 265static unsigned int pxa_cpufreq_get(unsigned int cpu)
283{ 266{
284 return get_clk_frequency_khz(0); 267 return get_clk_frequency_khz(0);
@@ -414,8 +397,6 @@ static int pxa_cpufreq_init(struct cpufreq_policy *policy)
414 397
415 /* set default policy and cpuinfo */ 398 /* set default policy and cpuinfo */
416 policy->cpuinfo.transition_latency = 1000; /* FIXME: 1 ms, assumed */ 399 policy->cpuinfo.transition_latency = 1000; /* FIXME: 1 ms, assumed */
417 policy->cur = get_clk_frequency_khz(0); /* current freq */
418 policy->min = policy->max = policy->cur;
419 400
420 /* Generate pxa25x the run cpufreq_frequency_table struct */ 401 /* Generate pxa25x the run cpufreq_frequency_table struct */
421 for (i = 0; i < NUM_PXA25x_RUN_FREQS; i++) { 402 for (i = 0; i < NUM_PXA25x_RUN_FREQS; i++) {
@@ -453,10 +434,12 @@ static int pxa_cpufreq_init(struct cpufreq_policy *policy)
453 find_freq_tables(&pxa255_freq_table, &pxa255_freqs); 434 find_freq_tables(&pxa255_freq_table, &pxa255_freqs);
454 pr_info("PXA255 cpufreq using %s frequency table\n", 435 pr_info("PXA255 cpufreq using %s frequency table\n",
455 pxa255_turbo_table ? "turbo" : "run"); 436 pxa255_turbo_table ? "turbo" : "run");
456 cpufreq_frequency_table_cpuinfo(policy, pxa255_freq_table); 437
438 cpufreq_table_validate_and_show(policy, pxa255_freq_table);
439 }
440 else if (cpu_is_pxa27x()) {
441 cpufreq_table_validate_and_show(policy, pxa27x_freq_table);
457 } 442 }
458 else if (cpu_is_pxa27x())
459 cpufreq_frequency_table_cpuinfo(policy, pxa27x_freq_table);
460 443
461 printk(KERN_INFO "PXA CPU frequency change support initialized\n"); 444 printk(KERN_INFO "PXA CPU frequency change support initialized\n");
462 445
@@ -464,9 +447,10 @@ static int pxa_cpufreq_init(struct cpufreq_policy *policy)
464} 447}
465 448
466static struct cpufreq_driver pxa_cpufreq_driver = { 449static struct cpufreq_driver pxa_cpufreq_driver = {
467 .verify = pxa_verify_policy, 450 .verify = cpufreq_generic_frequency_table_verify,
468 .target = pxa_set_target, 451 .target = pxa_set_target,
469 .init = pxa_cpufreq_init, 452 .init = pxa_cpufreq_init,
453 .exit = cpufreq_generic_exit,
470 .get = pxa_cpufreq_get, 454 .get = pxa_cpufreq_get,
471 .name = "PXA2xx", 455 .name = "PXA2xx",
472}; 456};