]> nv-tegra.nvidia Code Review - linux-3.10.git/blobdiff - arch/i386/kernel/cpu/cpufreq/powernow-k8.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
[linux-3.10.git] / arch / i386 / kernel / cpu / cpufreq / powernow-k8.c
index 798da7c2b5d019ae439f173e496c48ae2f3d5329..d09bec71080e12092c75da5dca3017e94c770396 100644 (file)
@@ -45,7 +45,7 @@
 
 #define PFX "powernow-k8: "
 #define BFX PFX "BIOS error: "
-#define VERSION "version 1.60.0"
+#define VERSION "version 1.60.1"
 #include "powernow-k8.h"
 
 /* serialize freq changes  */
@@ -83,11 +83,10 @@ static u32 find_millivolts_from_vid(struct powernow_k8_data *data, u32 vid)
  */
 static u32 convert_fid_to_vco_fid(u32 fid)
 {
-       if (fid < HI_FID_TABLE_BOTTOM) {
+       if (fid < HI_FID_TABLE_BOTTOM)
                return 8 + (2 * fid);
-       } else {
+       else
                return fid;
-       }
 }
 
 /*
@@ -177,7 +176,7 @@ static int write_new_fid(struct powernow_k8_data *data, u32 fid)
                if (i++ > 100) {
                        printk(KERN_ERR PFX "internal error - pending bit very stuck - no further pstate changes possible\n");
                        return 1;
-               }                       
+               }
        } while (query_current_values_with_pending_wait(data));
 
        count_off_irt(data);
@@ -474,8 +473,10 @@ static int check_supported_cpu(unsigned int cpu)
                goto out;
 
        eax = cpuid_eax(CPUID_PROCESSOR_SIGNATURE);
+       if ((eax & CPUID_XFAM) != CPUID_XFAM_K8)
+               goto out;
+
        if (((eax & CPUID_USE_XFAM_XMOD) != CPUID_USE_XFAM_XMOD) ||
-           ((eax & CPUID_XFAM) != CPUID_XFAM_K8) ||
            ((eax & CPUID_XMOD) > CPUID_XMOD_REV_G)) {
                printk(KERN_INFO PFX "Processor cpuid %x not supported\n", eax);
                goto out;
@@ -780,9 +781,7 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
                /* 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 both entries are the same, ignore this one ... */
                                if ((powernow_table[i].frequency != powernow_table[cntlofreq].frequency) ||
                                    (powernow_table[i].index != powernow_table[cntlofreq].index)) {
                                        printk(KERN_ERR PFX "Too many lo freq table entries\n");
@@ -854,7 +853,7 @@ static int transition_frequency(struct powernow_k8_data *data, unsigned int inde
        dprintk("cpu %d transition to index %u\n", smp_processor_id(), index);
 
        /* fid are the lower 8 bits of the index we stored into
-        * the cpufreq frequency table in find_psb_table, vid are 
+        * the cpufreq frequency table in find_psb_table, vid are
         * the upper 8 bits.
         */
 
@@ -909,7 +908,6 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi
        u32 checkvid = data->currvid;
        unsigned int newstate;
        int ret = -EIO;
-       int i;
 
        /* only run on specific CPU from here on */
        oldmask = current->cpus_allowed;
@@ -955,12 +953,6 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi
                up(&fidvid_sem);
                goto err_out;
        }
-
-       /* Update all the fid/vids of our siblings */
-       for_each_cpu_mask(i, cpu_core_map[pol->cpu]) {
-               powernow_data[i]->currvid = data->currvid;
-               powernow_data[i]->currfid = data->currfid;
-       }       
        up(&fidvid_sem);
 
        pol->cur = find_khz_freq_from_fid(data->currfid);
@@ -984,7 +976,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
 {
        struct powernow_k8_data *data;
        cpumask_t oldmask = CPU_MASK_ALL;
-       int rc, i;
+       int rc;
 
        if (!cpu_online(pol->cpu))
                return -ENODEV;
@@ -1048,7 +1040,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
        pol->governor = CPUFREQ_DEFAULT_GOVERNOR;
        pol->cpus = cpu_core_map[pol->cpu];
 
-       /* Take a crude guess here. 
+       /* Take a crude guess here.
         * That guess was in microseconds, so multiply with 1000 */
        pol->cpuinfo.transition_latency = (((data->rvo + 8) * data->vstable * VST_UNITS_20US)
            + (3 * (1 << data->irt) * 10)) * 1000;
@@ -1070,9 +1062,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
        printk("cpu_init done, current fid 0x%x, vid 0x%x\n",
               data->currfid, data->currvid);
 
-       for_each_cpu_mask(i, cpu_core_map[pol->cpu]) {
-               powernow_data[i] = data;
-       }
+       powernow_data[pol->cpu] = data;
 
        return 0;