Merge /spare/repo/netdev-2.6 branch 'ieee80211'
[pandora-kernel.git] / arch / ppc / platforms / pmac_cpufreq.c
index 937f46d..c060524 100644 (file)
@@ -83,7 +83,7 @@ static u32 frequency_gpio;
 static u32 slew_done_gpio;
 static int no_schedule;
 static int has_cpu_l2lve;
-
+static int is_pmu_based;
 
 /* There are only two frequency states for each processor. Values
  * are in kHz for the time being.
@@ -452,7 +452,7 @@ static u32 __pmac read_gpio(struct device_node *np)
        return offset;
 }
 
-static int __pmac pmac_cpufreq_suspend(struct cpufreq_policy *policy, u32 state)
+static int __pmac pmac_cpufreq_suspend(struct cpufreq_policy *policy, pm_message_t pmsg)
 {
        /* Ok, this could be made a bit smarter, but let's be robust for now. We
         * always force a speed change to high speed before sleep, to make sure
@@ -463,7 +463,7 @@ static int __pmac pmac_cpufreq_suspend(struct cpufreq_policy *policy, u32 state)
         */
        no_schedule = 1;
        sleep_freq = cur_freq;
-       if (cur_freq == low_freq)
+       if (cur_freq == low_freq && !is_pmu_based)
                do_set_cpu_speed(CPUFREQ_HIGH, 0);
        return 0;
 }
@@ -588,6 +588,7 @@ static int __pmac pmac_cpufreq_init_MacRISC3(struct device_node *cpunode)
                return 1;
        hi_freq = (*value) / 1000;
        set_speed_proc = pmu_set_cpu_speed;
+       is_pmu_based = 1;
 
        return 0;
 }
@@ -692,6 +693,7 @@ static int __init pmac_cpufreq_setup(void)
                hi_freq = cur_freq;
                low_freq = 400000;
                set_speed_proc = pmu_set_cpu_speed;
+               is_pmu_based = 1;
        }
        /* Else check for TiPb 400 & 500 */
        else if (machine_is_compatible("PowerBook3,2")) {
@@ -703,6 +705,7 @@ static int __init pmac_cpufreq_setup(void)
                hi_freq = cur_freq;
                low_freq = 300000;
                set_speed_proc = pmu_set_cpu_speed;
+               is_pmu_based = 1;
        }
        /* Else check for 750FX */
        else if (PVR_VER(mfspr(SPRN_PVR)) == 0x7000)