aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
index 4b1c319d30c3..89c676d6caf7 100644
--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -680,6 +680,18 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
680 perf->states[i].transition_latency * 1000; 680 perf->states[i].transition_latency * 1000;
681 } 681 }
682 682
683 /* Check for high latency (>20uS) from buggy BIOSes, like on T42 */
684 if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE &&
685 policy->cpuinfo.transition_latency > 20 * 1000) {
686 static int print_once;
687 policy->cpuinfo.transition_latency = 20 * 1000;
688 if (!print_once) {
689 print_once = 1;
690 printk(KERN_INFO "Capping off P-state tranision latency"
691 " at 20 uS\n");
692 }
693 }
694
683 data->max_freq = perf->states[0].core_frequency * 1000; 695 data->max_freq = perf->states[0].core_frequency * 1000;
684 /* table init */ 696 /* table init */
685 for (i=0; i<perf->state_count; i++) { 697 for (i=0; i<perf->state_count; i++) {