浏览代码

[CPUFREQ][6/8] acpi-cpufreq: Eliminate get of current freq on notification

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>
Venkatesh Pallipadi 18 年之前
父节点
当前提交
7650b281b0
共有 1 个文件被更改,包括 4 次插入5 次删除
  1. 4 5
      arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c

+ 4 - 5
arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c

@@ -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,