diff options
author | Thomas Renninger <trenn@suse.de> | 2009-04-22 07:48:30 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2009-06-15 11:49:41 -0400 |
commit | 86e13684aa77f07c77db352f437d9e53a84dde90 (patch) | |
tree | cb0f11906c2aa6bca40b41d5b686de3957af4cf9 /arch/x86/kernel/cpu/cpufreq/powernow-k8.c | |
parent | cef9615a853ebc4972084f7e70b52892557420ac (diff) |
[CPUFREQ] powernow-k8: Set transition latency to 1 if ACPI tables export 0
This doesn't fix anything, but it's expected that a transition latency of 0
could cause trouble in the future.
Signed-off-by: Thomas Renninger <trenn@suse.de>
Cc: Langsdorf, Mark <mark.langsdorf@amd.com>
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'arch/x86/kernel/cpu/cpufreq/powernow-k8.c')
-rw-r--r-- | arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c index cf52215d9eb1..935989693a64 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -1046,6 +1046,19 @@ static int get_transition_latency(struct powernow_k8_data *data) | |||
1046 | if (cur_latency > max_latency) | 1046 | if (cur_latency > max_latency) |
1047 | max_latency = cur_latency; | 1047 | max_latency = cur_latency; |
1048 | } | 1048 | } |
1049 | if (max_latency == 0) { | ||
1050 | /* | ||
1051 | * Fam 11h always returns 0 as transition latency. | ||
1052 | * This is intended and means "very fast". While cpufreq core | ||
1053 | * and governors currently can handle that gracefully, better | ||
1054 | * set it to 1 to avoid problems in the future. | ||
1055 | * For all others it's a BIOS bug. | ||
1056 | */ | ||
1057 | if (!boot_cpu_data.x86 == 0x11) | ||
1058 | printk(KERN_ERR FW_WARN PFX "Invalid zero transition " | ||
1059 | "latency\n"); | ||
1060 | max_latency = 1; | ||
1061 | } | ||
1049 | /* value in usecs, needs to be in nanoseconds */ | 1062 | /* value in usecs, needs to be in nanoseconds */ |
1050 | return 1000 * max_latency; | 1063 | return 1000 * max_latency; |
1051 | } | 1064 | } |