diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ppc/platforms/pmac_cpufreq.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/ppc/platforms/pmac_cpufreq.c b/arch/ppc/platforms/pmac_cpufreq.c index 937f46df711e..5fdd4f607a40 100644 --- a/arch/ppc/platforms/pmac_cpufreq.c +++ b/arch/ppc/platforms/pmac_cpufreq.c | |||
@@ -83,7 +83,7 @@ static u32 frequency_gpio; | |||
83 | static u32 slew_done_gpio; | 83 | static u32 slew_done_gpio; |
84 | static int no_schedule; | 84 | static int no_schedule; |
85 | static int has_cpu_l2lve; | 85 | static int has_cpu_l2lve; |
86 | 86 | static int is_pmu_based; | |
87 | 87 | ||
88 | /* There are only two frequency states for each processor. Values | 88 | /* There are only two frequency states for each processor. Values |
89 | * are in kHz for the time being. | 89 | * are in kHz for the time being. |
@@ -463,7 +463,7 @@ static int __pmac pmac_cpufreq_suspend(struct cpufreq_policy *policy, u32 state) | |||
463 | */ | 463 | */ |
464 | no_schedule = 1; | 464 | no_schedule = 1; |
465 | sleep_freq = cur_freq; | 465 | sleep_freq = cur_freq; |
466 | if (cur_freq == low_freq) | 466 | if (cur_freq == low_freq && !is_pmu_based) |
467 | do_set_cpu_speed(CPUFREQ_HIGH, 0); | 467 | do_set_cpu_speed(CPUFREQ_HIGH, 0); |
468 | return 0; | 468 | return 0; |
469 | } | 469 | } |
@@ -588,6 +588,7 @@ static int __pmac pmac_cpufreq_init_MacRISC3(struct device_node *cpunode) | |||
588 | return 1; | 588 | return 1; |
589 | hi_freq = (*value) / 1000; | 589 | hi_freq = (*value) / 1000; |
590 | set_speed_proc = pmu_set_cpu_speed; | 590 | set_speed_proc = pmu_set_cpu_speed; |
591 | is_pmu_based = 1; | ||
591 | 592 | ||
592 | return 0; | 593 | return 0; |
593 | } | 594 | } |
@@ -692,6 +693,7 @@ static int __init pmac_cpufreq_setup(void) | |||
692 | hi_freq = cur_freq; | 693 | hi_freq = cur_freq; |
693 | low_freq = 400000; | 694 | low_freq = 400000; |
694 | set_speed_proc = pmu_set_cpu_speed; | 695 | set_speed_proc = pmu_set_cpu_speed; |
696 | is_pmu_based = 1; | ||
695 | } | 697 | } |
696 | /* Else check for TiPb 400 & 500 */ | 698 | /* Else check for TiPb 400 & 500 */ |
697 | else if (machine_is_compatible("PowerBook3,2")) { | 699 | else if (machine_is_compatible("PowerBook3,2")) { |
@@ -703,6 +705,7 @@ static int __init pmac_cpufreq_setup(void) | |||
703 | hi_freq = cur_freq; | 705 | hi_freq = cur_freq; |
704 | low_freq = 300000; | 706 | low_freq = 300000; |
705 | set_speed_proc = pmu_set_cpu_speed; | 707 | set_speed_proc = pmu_set_cpu_speed; |
708 | is_pmu_based = 1; | ||
706 | } | 709 | } |
707 | /* Else check for 750FX */ | 710 | /* Else check for 750FX */ |
708 | else if (PVR_VER(mfspr(SPRN_PVR)) == 0x7000) | 711 | else if (PVR_VER(mfspr(SPRN_PVR)) == 0x7000) |