diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2013-09-16 09:26:06 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-09-30 14:18:41 -0400 |
commit | 18f130ed75ab98573694fa6d8542c7891ccc9447 (patch) | |
tree | 2f81963a38aacba02c2aed0629de2bb96a8486d0 /drivers/cpufreq/sparc-us3-cpufreq.c | |
parent | 5c40e052bb04381302c748497076b5b4526ed6cb (diff) |
cpufreq: sparc: call cpufreq_frequency_table_get_attr()
This exposes frequency table of driver to cpufreq core and is required for core
to guess what the index for a target frequency is, when it calls
cpufreq_frequency_table_target(). And so this driver needs to expose it.
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>
Diffstat (limited to 'drivers/cpufreq/sparc-us3-cpufreq.c')
-rw-r--r-- | drivers/cpufreq/sparc-us3-cpufreq.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c index ac76b489979d..985bc56b0068 100644 --- a/drivers/cpufreq/sparc-us3-cpufreq.c +++ b/drivers/cpufreq/sparc-us3-cpufreq.c | |||
@@ -168,6 +168,7 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy) | |||
168 | unsigned long clock_tick = sparc64_get_clock_tick(cpu) / 1000; | 168 | unsigned long clock_tick = sparc64_get_clock_tick(cpu) / 1000; |
169 | struct cpufreq_frequency_table *table = | 169 | struct cpufreq_frequency_table *table = |
170 | &us3_freq_table[cpu].table[0]; | 170 | &us3_freq_table[cpu].table[0]; |
171 | int ret; | ||
171 | 172 | ||
172 | table[0].driver_data = 0; | 173 | table[0].driver_data = 0; |
173 | table[0].frequency = clock_tick / 1; | 174 | table[0].frequency = clock_tick / 1; |
@@ -181,13 +182,19 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy) | |||
181 | policy->cpuinfo.transition_latency = 0; | 182 | policy->cpuinfo.transition_latency = 0; |
182 | policy->cur = clock_tick; | 183 | policy->cur = clock_tick; |
183 | 184 | ||
184 | return cpufreq_frequency_table_cpuinfo(policy, table); | 185 | ret = cpufreq_frequency_table_cpuinfo(policy, table); |
186 | if (!ret) | ||
187 | cpufreq_frequency_table_get_attr(table, policy->cpu); | ||
188 | |||
189 | return ret; | ||
185 | } | 190 | } |
186 | 191 | ||
187 | static int us3_freq_cpu_exit(struct cpufreq_policy *policy) | 192 | static int us3_freq_cpu_exit(struct cpufreq_policy *policy) |
188 | { | 193 | { |
189 | if (cpufreq_us3_driver) | 194 | if (cpufreq_us3_driver) { |
195 | cpufreq_frequency_table_put_attr(policy->cpu); | ||
190 | us3_set_cpu_divider_index(policy, 0); | 196 | us3_set_cpu_divider_index(policy, 0); |
197 | } | ||
191 | 198 | ||
192 | return 0; | 199 | return 0; |
193 | } | 200 | } |