Merge branch 'pm-cpufreq'
[cascardo/linux.git] / drivers / cpufreq / powernow-k8.c
index d13a136..b828efe 100644 (file)
@@ -928,9 +928,10 @@ static int get_transition_latency(struct powernow_k8_data *data)
 static int transition_frequency_fidvid(struct powernow_k8_data *data,
                unsigned int index)
 {
+       struct cpufreq_policy *policy;
        u32 fid = 0;
        u32 vid = 0;
-       int res, i;
+       int res;
        struct cpufreq_freqs freqs;
 
        pr_debug("cpu %d transition to index %u\n", smp_processor_id(), index);
@@ -959,10 +960,10 @@ static int transition_frequency_fidvid(struct powernow_k8_data *data,
        freqs.old = find_khz_freq_from_fid(data->currfid);
        freqs.new = find_khz_freq_from_fid(fid);
 
-       for_each_cpu(i, data->available_cores) {
-               freqs.cpu = i;
-               cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
-       }
+       policy = cpufreq_cpu_get(smp_processor_id());
+       cpufreq_cpu_put(policy);
+
+       cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
 
        res = transition_fid_vid(data, fid, vid);
        if (res)
@@ -970,10 +971,7 @@ static int transition_frequency_fidvid(struct powernow_k8_data *data,
 
        freqs.new = find_khz_freq_from_fid(data->currfid);
 
-       for_each_cpu(i, data->available_cores) {
-               freqs.cpu = i;
-               cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-       }
+       cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
        return res;
 }
 
@@ -1104,9 +1102,6 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
        struct init_on_cpu init_on_cpu;
        int rc;
 
-       if (!cpu_online(pol->cpu))
-               return -ENODEV;
-
        smp_call_function_single(pol->cpu, check_supported_cpu, &rc, 1);
        if (rc)
                return -ENODEV;