diff options
author | Mark Langsdorf <mark.langsdorf@amd.com> | 2009-08-21 20:15:28 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2009-09-01 12:45:20 -0400 |
commit | db39d5529d347de5e2eec1a72d67fcfacae6c5a2 (patch) | |
tree | 39b3fb1e96a73c82b409aacddd99abfcdfce1d13 /arch/x86/kernel/cpu/cpufreq | |
parent | 395913d0b1db37092ea3d9d69b832183b1dd84c5 (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.c | 29 |
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, |