[CPUFREQ] Powernow-k8: Enable more than 2 low P-states
authorMark Langsdorf <mark.langsdorf@amd.com>
Sat, 22 Aug 2009 00:15:28 +0000 (19:15 -0500)
committerDave Jones <davej@redhat.com>
Tue, 1 Sep 2009 16:45:20 +0000 (12:45 -0400)
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>
arch/x86/kernel/cpu/cpufreq/powernow-k8.c

index 2a50ef8..0cbce04 100644 (file)
@@ -854,6 +854,10 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
                goto err_out;
        }
 
+       /* fill in data */
+       data->numps = data->acpi_data.state_count;
+       powernow_k8_acpi_pst_values(data, 0);
+
        if (cpu_family == CPU_HW_PSTATE)
                ret_val = fill_powernow_table_pstate(data, powernow_table);
        else
@@ -866,11 +870,8 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
        powernow_table[data->acpi_data.state_count].index = 0;
        data->powernow_table = powernow_table;
 
-       /* fill in data */
-       data->numps = data->acpi_data.state_count;
        if (cpumask_first(cpu_core_mask(data->cpu)) == data->cpu)
                print_basics(data);
-       powernow_k8_acpi_pst_values(data, 0);
 
        /* notify BIOS that we exist */
        acpi_processor_notify_smm(THIS_MODULE);
@@ -941,7 +942,6 @@ static int fill_powernow_table_fidvid(struct powernow_k8_data *data,
                struct cpufreq_frequency_table *powernow_table)
 {
        int i;
-       int cntlofreq = 0;
 
        for (i = 0; i < data->acpi_data.state_count; i++) {
                u32 fid;
@@ -982,27 +982,6 @@ static int fill_powernow_table_fidvid(struct powernow_k8_data *data,
                        continue;
                }
 
-               /* verify only 1 entry from the lo frequency table */
-               if (fid < HI_FID_TABLE_BOTTOM) {
-                       if (cntlofreq) {
-                               /* if both entries are the same,
-                                * ignore this one ... */
-                               if ((freq != powernow_table[cntlofreq].frequency) ||
-                                   (index != powernow_table[cntlofreq].index)) {
-                                       printk(KERN_ERR PFX
-                                               "Too many lo freq table "
-                                               "entries\n");
-                                       return 1;
-                               }
-
-                               dprintk("double low frequency table entry, "
-                                               "ignoring it.\n");
-                               invalidate_entry(data, i);
-                               continue;
-                       } else
-                               cntlofreq = i;
-               }
-
                if (freq != (data->acpi_data.states[i].core_frequency * 1000)) {
                        printk(KERN_INFO PFX "invalid freq entries "
                                "%u kHz vs. %u kHz\n", freq,