diff options
Diffstat (limited to 'drivers/cpufreq/acpi-cpufreq.c')
-rw-r--r-- | drivers/cpufreq/acpi-cpufreq.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c index edc089e9d0c4..2c5906d71397 100644 --- a/drivers/cpufreq/acpi-cpufreq.c +++ b/drivers/cpufreq/acpi-cpufreq.c | |||
@@ -232,7 +232,7 @@ static unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data) | |||
232 | perf = data->acpi_data; | 232 | perf = data->acpi_data; |
233 | 233 | ||
234 | for (i = 0; data->freq_table[i].frequency != CPUFREQ_TABLE_END; i++) { | 234 | for (i = 0; data->freq_table[i].frequency != CPUFREQ_TABLE_END; i++) { |
235 | if (msr == perf->states[data->freq_table[i].index].status) | 235 | if (msr == perf->states[data->freq_table[i].driver_data].status) |
236 | return data->freq_table[i].frequency; | 236 | return data->freq_table[i].frequency; |
237 | } | 237 | } |
238 | return data->freq_table[0].frequency; | 238 | return data->freq_table[0].frequency; |
@@ -442,7 +442,7 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy, | |||
442 | goto out; | 442 | goto out; |
443 | } | 443 | } |
444 | 444 | ||
445 | next_perf_state = data->freq_table[next_state].index; | 445 | next_perf_state = data->freq_table[next_state].driver_data; |
446 | if (perf->state == next_perf_state) { | 446 | if (perf->state == next_perf_state) { |
447 | if (unlikely(data->resume)) { | 447 | if (unlikely(data->resume)) { |
448 | pr_debug("Called after resume, resetting to P%d\n", | 448 | pr_debug("Called after resume, resetting to P%d\n", |
@@ -494,12 +494,14 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy, | |||
494 | pr_debug("acpi_cpufreq_target failed (%d)\n", | 494 | pr_debug("acpi_cpufreq_target failed (%d)\n", |
495 | policy->cpu); | 495 | policy->cpu); |
496 | result = -EAGAIN; | 496 | result = -EAGAIN; |
497 | goto out; | 497 | freqs.new = freqs.old; |
498 | } | 498 | } |
499 | } | 499 | } |
500 | 500 | ||
501 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); | 501 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); |
502 | perf->state = next_perf_state; | 502 | |
503 | if (!result) | ||
504 | perf->state = next_perf_state; | ||
503 | 505 | ||
504 | out: | 506 | out: |
505 | return result; | 507 | return result; |
@@ -811,7 +813,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) | |||
811 | data->freq_table[valid_states-1].frequency / 1000) | 813 | data->freq_table[valid_states-1].frequency / 1000) |
812 | continue; | 814 | continue; |
813 | 815 | ||
814 | data->freq_table[valid_states].index = i; | 816 | data->freq_table[valid_states].driver_data = i; |
815 | data->freq_table[valid_states].frequency = | 817 | data->freq_table[valid_states].frequency = |
816 | perf->states[i].core_frequency * 1000; | 818 | perf->states[i].core_frequency * 1000; |
817 | valid_states++; | 819 | valid_states++; |
@@ -947,7 +949,7 @@ static void __init acpi_cpufreq_boost_init(void) | |||
947 | /* We create the boost file in any case, though for systems without | 949 | /* We create the boost file in any case, though for systems without |
948 | * hardware support it will be read-only and hardwired to return 0. | 950 | * hardware support it will be read-only and hardwired to return 0. |
949 | */ | 951 | */ |
950 | if (sysfs_create_file(cpufreq_global_kobject, &(global_boost.attr))) | 952 | if (cpufreq_sysfs_create_file(&(global_boost.attr))) |
951 | pr_warn(PFX "could not register global boost sysfs file\n"); | 953 | pr_warn(PFX "could not register global boost sysfs file\n"); |
952 | else | 954 | else |
953 | pr_debug("registered global boost sysfs file\n"); | 955 | pr_debug("registered global boost sysfs file\n"); |
@@ -955,7 +957,7 @@ static void __init acpi_cpufreq_boost_init(void) | |||
955 | 957 | ||
956 | static void __exit acpi_cpufreq_boost_exit(void) | 958 | static void __exit acpi_cpufreq_boost_exit(void) |
957 | { | 959 | { |
958 | sysfs_remove_file(cpufreq_global_kobject, &(global_boost.attr)); | 960 | cpufreq_sysfs_remove_file(&(global_boost.attr)); |
959 | 961 | ||
960 | if (msrs) { | 962 | if (msrs) { |
961 | unregister_cpu_notifier(&boost_nb); | 963 | unregister_cpu_notifier(&boost_nb); |