]> Pileus Git - ~andy/linux/blobdiff - drivers/cpufreq/pasemi-cpufreq.c
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[~andy/linux] / drivers / cpufreq / pasemi-cpufreq.c
index 1cca332728c3c36e2a40a5bc248f1cb39651c741..0426008380d863d0d428526450efe9533c402a52 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/cpufreq.h>
 #include <linux/timer.h>
 #include <linux/module.h>
+#include <linux/of_address.h>
 
 #include <asm/hw_irq.h>
 #include <asm/io.h>
@@ -51,8 +52,6 @@
 static void __iomem *sdcpwr_mapbase;
 static void __iomem *sdcasr_mapbase;
 
-static DEFINE_MUTEX(pas_switch_mutex);
-
 /* Current astate, is used when waking up from power savings on
  * one core, in case the other core has switched states during
  * the idle time.
@@ -240,25 +239,10 @@ static int pas_cpufreq_cpu_exit(struct cpufreq_policy *policy)
 }
 
 static int pas_cpufreq_target(struct cpufreq_policy *policy,
-                             unsigned int target_freq,
-                             unsigned int relation)
+                             unsigned int pas_astate_new)
 {
-       struct cpufreq_freqs freqs;
-       int pas_astate_new;
        int i;
 
-       cpufreq_frequency_table_target(policy,
-                                      pas_freqs,
-                                      target_freq,
-                                      relation,
-                                      &pas_astate_new);
-
-       freqs.old = policy->cur;
-       freqs.new = pas_freqs[pas_astate_new].frequency;
-
-       mutex_lock(&pas_switch_mutex);
-       cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE);
-
        pr_debug("setting frequency for cpu %d to %d kHz, 1/%d of max frequency\n",
                 policy->cpu,
                 pas_freqs[pas_astate_new].frequency,
@@ -269,10 +253,7 @@ static int pas_cpufreq_target(struct cpufreq_policy *policy,
        for_each_online_cpu(i)
                set_astate(i, pas_astate_new);
 
-       cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE);
-       mutex_unlock(&pas_switch_mutex);
-
-       ppc_proc_freq = freqs.new * 1000ul;
+       ppc_proc_freq = pas_freqs[pas_astate_new].frequency * 1000ul;
        return 0;
 }
 
@@ -282,7 +263,7 @@ static struct cpufreq_driver pas_cpufreq_driver = {
        .init           = pas_cpufreq_cpu_init,
        .exit           = pas_cpufreq_cpu_exit,
        .verify         = cpufreq_generic_frequency_table_verify,
-       .target         = pas_cpufreq_target,
+       .target_index   = pas_cpufreq_target,
        .attr           = cpufreq_generic_attr,
 };