aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/sparc-us3-cpufreq.c
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2013-09-16 09:26:06 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-09-30 14:18:41 -0400
commit18f130ed75ab98573694fa6d8542c7891ccc9447 (patch)
tree2f81963a38aacba02c2aed0629de2bb96a8486d0 /drivers/cpufreq/sparc-us3-cpufreq.c
parent5c40e052bb04381302c748497076b5b4526ed6cb (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.c11
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
187static int us3_freq_cpu_exit(struct cpufreq_policy *policy) 192static 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}