aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/cpufreq/powernow-k8.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
index bce576d7478..e0329f9fa40 100644
--- a/drivers/cpufreq/powernow-k8.c
+++ b/drivers/cpufreq/powernow-k8.c
@@ -926,23 +926,24 @@ static int fill_powernow_table_pstate(struct powernow_k8_data *data,
926 invalidate_entry(powernow_table, i); 926 invalidate_entry(powernow_table, i);
927 continue; 927 continue;
928 } 928 }
929 rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
930 if (!(hi & HW_PSTATE_VALID_MASK)) {
931 pr_debug("invalid pstate %d, ignoring\n", index);
932 invalidate_entry(powernow_table, i);
933 continue;
934 }
935
936 powernow_table[i].index = index;
937
938 /* Frequency may be rounded for these */ 929 /* Frequency may be rounded for these */
939 if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10) 930 if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
940 || boot_cpu_data.x86 == 0x11) { 931 || boot_cpu_data.x86 == 0x11) {
932
933 rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
934 if (!(hi & HW_PSTATE_VALID_MASK)) {
935 pr_debug("invalid pstate %d, ignoring\n", index);
936 invalidate_entry(powernow_table, i);
937 continue;
938 }
939
941 powernow_table[i].frequency = 940 powernow_table[i].frequency =
942 freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7); 941 freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7);
943 } else 942 } else
944 powernow_table[i].frequency = 943 powernow_table[i].frequency =
945 data->acpi_data.states[i].core_frequency * 1000; 944 data->acpi_data.states[i].core_frequency * 1000;
945
946 powernow_table[i].index = index;
946 } 947 }
947 return 0; 948 return 0;
948} 949}