]> err.no Git - linux-2.6/commitdiff
[CPUFREQ][6/8] acpi-cpufreq: Eliminate get of current freq on notification
authorVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Tue, 3 Oct 2006 19:36:30 +0000 (12:36 -0700)
committerDave Jones <davej@redhat.com>
Sun, 15 Oct 2006 23:57:11 +0000 (19:57 -0400)
Only change the frequency if the state previously set is different
from what we are trying to set. We don't really have to get the current
frequency at this point.

Signed-off-by: Denis Sadykov <denis.m.sadykov@intel.com>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: Dave Jones <davej@redhat.com>
arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c

index 385f17aca06b7cbf232ccb749a06421a014aa43a..e6513e994088fbca7c4c33682d46dc629c270d65 100644 (file)
@@ -324,11 +324,8 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
        online_policy_cpus = policy->cpus;
 #endif
 
-       cmd.val = get_cur_val(online_policy_cpus);
-       freqs.old = extract_freq(cmd.val, data);
-       freqs.new = data->freq_table[next_state].frequency;
        next_perf_state = data->freq_table[next_state].index;
-       if (freqs.new == freqs.old) {
+       if (perf->state == next_perf_state) {
                if (unlikely(data->resume)) {
                        dprintk("Called after resume, resetting to P%d\n",
                                next_perf_state);
@@ -366,6 +363,8 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
        else
                cpu_set(policy->cpu, cmd.mask);
 
+       freqs.old = data->freq_table[perf->state].frequency;
+       freqs.new = data->freq_table[next_perf_state].frequency;
        for_each_cpu_mask(i, cmd.mask) {
                freqs.cpu = i;
                cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
@@ -613,6 +612,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
                policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
                break;
        case ACPI_ADR_SPACE_FIXED_HARDWARE:
+               acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
                get_cur_freq_on_cpu(cpu);
                break;
        default:
@@ -687,7 +687,6 @@ static struct freq_attr *acpi_cpufreq_attr[] = {
 static struct cpufreq_driver acpi_cpufreq_driver = {
        .verify = acpi_cpufreq_verify,
        .target = acpi_cpufreq_target,
-       .get = get_cur_freq_on_cpu,
        .init = acpi_cpufreq_cpu_init,
        .exit = acpi_cpufreq_cpu_exit,
        .resume = acpi_cpufreq_resume,