forked from Minki/linux
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>
This commit is contained in:
parent
5c40e052bb
commit
18f130ed75
@ -307,6 +307,7 @@ static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy)
|
||||
unsigned long clock_tick = sparc64_get_clock_tick(cpu) / 1000;
|
||||
struct cpufreq_frequency_table *table =
|
||||
&us2e_freq_table[cpu].table[0];
|
||||
int ret;
|
||||
|
||||
table[0].driver_data = 0;
|
||||
table[0].frequency = clock_tick / 1;
|
||||
@ -324,13 +325,18 @@ static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy)
|
||||
policy->cpuinfo.transition_latency = 0;
|
||||
policy->cur = clock_tick;
|
||||
|
||||
return cpufreq_frequency_table_cpuinfo(policy, table);
|
||||
ret = cpufreq_frequency_table_cpuinfo(policy, table);
|
||||
if (!ret)
|
||||
cpufreq_frequency_table_get_attr(table, policy->cpu);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int us2e_freq_cpu_exit(struct cpufreq_policy *policy)
|
||||
{
|
||||
if (cpufreq_us2e_driver)
|
||||
if (cpufreq_us2e_driver) {
|
||||
cpufreq_frequency_table_put_attr(policy->cpu);
|
||||
us2e_set_cpu_divider_index(policy, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -168,6 +168,7 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
|
||||
unsigned long clock_tick = sparc64_get_clock_tick(cpu) / 1000;
|
||||
struct cpufreq_frequency_table *table =
|
||||
&us3_freq_table[cpu].table[0];
|
||||
int ret;
|
||||
|
||||
table[0].driver_data = 0;
|
||||
table[0].frequency = clock_tick / 1;
|
||||
@ -181,13 +182,19 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
|
||||
policy->cpuinfo.transition_latency = 0;
|
||||
policy->cur = clock_tick;
|
||||
|
||||
return cpufreq_frequency_table_cpuinfo(policy, table);
|
||||
ret = cpufreq_frequency_table_cpuinfo(policy, table);
|
||||
if (!ret)
|
||||
cpufreq_frequency_table_get_attr(table, policy->cpu);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
|
||||
{
|
||||
if (cpufreq_us3_driver)
|
||||
if (cpufreq_us3_driver) {
|
||||
cpufreq_frequency_table_put_attr(policy->cpu);
|
||||
us3_set_cpu_divider_index(policy, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user