diff options
-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 | } |