aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/cpufreq
diff options
context:
space:
mode:
authorMark Langsdorf <mark.langsdorf@amd.com>2009-08-21 20:15:28 -0400
committerDave Jones <davej@redhat.com>2009-09-01 12:45:20 -0400
commitdb39d5529d347de5e2eec1a72d67fcfacae6c5a2 (patch)
tree39b3fb1e96a73c82b409aacddd99abfcdfce1d13 /arch/x86/kernel/cpu/cpufreq
parent395913d0b1db37092ea3d9d69b832183b1dd84c5 (diff)
[CPUFREQ] Powernow-k8: Enable more than 2 low P-states
Remove an obsolete check that used to prevent there being more than 2 low P-states. Now that low-to-low P-states changes are enabled, it prevents otherwise workable configurations with multiple low P-states. Signed-off-by: Mark Langsdorf <mark.langsdorf@amd.com> Tested-by: Krists Krilovs <pow@pow.za.net> Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'arch/x86/kernel/cpu/cpufreq')
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.c29
1 files changed, 4 insertions, 25 deletions
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
index 2a50ef891000..0cbce0481a54 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
@@ -854,6 +854,10 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
854 goto err_out; 854 goto err_out;
855 } 855 }
856 856
857 /* fill in data */
858 data->numps = data->acpi_data.state_count;
859 powernow_k8_acpi_pst_values(data, 0);
860
857 if (cpu_family == CPU_HW_PSTATE) 861 if (cpu_family == CPU_HW_PSTATE)
858 ret_val = fill_powernow_table_pstate(data, powernow_table); 862 ret_val = fill_powernow_table_pstate(data, powernow_table);
859 else 863 else
@@ -866,11 +870,8 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
866 powernow_table[data->acpi_data.state_count].index = 0; 870 powernow_table[data->acpi_data.state_count].index = 0;
867 data->powernow_table = powernow_table; 871 data->powernow_table = powernow_table;
868 872
869 /* fill in data */
870 data->numps = data->acpi_data.state_count;
871 if (cpumask_first(cpu_core_mask(data->cpu)) == data->cpu) 873 if (cpumask_first(cpu_core_mask(data->cpu)) == data->cpu)
872 print_basics(data); 874 print_basics(data);
873 powernow_k8_acpi_pst_values(data, 0);
874 875
875 /* notify BIOS that we exist */ 876 /* notify BIOS that we exist */
876 acpi_processor_notify_smm(THIS_MODULE); 877 acpi_processor_notify_smm(THIS_MODULE);
@@ -941,7 +942,6 @@ static int fill_powernow_table_fidvid(struct powernow_k8_data *data,
941 struct cpufreq_frequency_table *powernow_table) 942 struct cpufreq_frequency_table *powernow_table)
942{ 943{
943 int i; 944 int i;
944 int cntlofreq = 0;
945 945
946 for (i = 0; i < data->acpi_data.state_count; i++) { 946 for (i = 0; i < data->acpi_data.state_count; i++) {
947 u32 fid; 947 u32 fid;
@@ -982,27 +982,6 @@ static int fill_powernow_table_fidvid(struct powernow_k8_data *data,
982 continue; 982 continue;
983 } 983 }
984 984
985 /* verify only 1 entry from the lo frequency table */
986 if (fid < HI_FID_TABLE_BOTTOM) {
987 if (cntlofreq) {
988 /* if both entries are the same,
989 * ignore this one ... */
990 if ((freq != powernow_table[cntlofreq].frequency) ||
991 (index != powernow_table[cntlofreq].index)) {
992 printk(KERN_ERR PFX
993 "Too many lo freq table "
994 "entries\n");
995 return 1;
996 }
997
998 dprintk("double low frequency table entry, "
999 "ignoring it.\n");
1000 invalidate_entry(data, i);
1001 continue;
1002 } else
1003 cntlofreq = i;
1004 }
1005
1006 if (freq != (data->acpi_data.states[i].core_frequency * 1000)) { 985 if (freq != (data->acpi_data.states[i].core_frequency * 1000)) {
1007 printk(KERN_INFO PFX "invalid freq entries " 986 printk(KERN_INFO PFX "invalid freq entries "
1008 "%u kHz vs. %u kHz\n", freq, 987 "%u kHz vs. %u kHz\n", freq,