Patchwork powermac/cpufreq_32: set non-infinite transition time for 7447A driver

login
register
mail settings
Submitter Andreas Schwab
Date Oct. 29, 2012, 9:15 a.m.
Message ID <m24nld1vx9.fsf@igel.home>
Download mbox | patch
Permalink /patch/194919/
State Accepted, archived
Commit bb29b719372742939af05457aff1b59608764e89
Delegated to: Benjamin Herrenschmidt
Headers show

Comments

Andreas Schwab - Oct. 29, 2012, 9:15 a.m.
The transition time for the 7447A is around 8ms which makes it possible
to use the ondemand governor.  This has been tested on the iBook G4
(PowerBook6,7).

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
---
 arch/powerpc/platforms/powermac/cpufreq_32.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Michel Dänzer - Nov. 6, 2012, 12:28 p.m.
On Mon, 2012-10-29 at 10:15 +0100, Andreas Schwab wrote: 
> The transition time for the 7447A is around 8ms which makes it possible
> to use the ondemand governor.  This has been tested on the iBook G4
> (PowerBook6,7).
> 
> Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>

Tested-by: Michel Dänzer <michel@daenzer.net>

Patch

diff --git a/arch/powerpc/platforms/powermac/cpufreq_32.c b/arch/powerpc/platforms/powermac/cpufreq_32.c
index 6417119..311b804 100644
--- a/arch/powerpc/platforms/powermac/cpufreq_32.c
+++ b/arch/powerpc/platforms/powermac/cpufreq_32.c
@@ -55,6 +55,7 @@  static unsigned int low_freq;
 static unsigned int hi_freq;
 static unsigned int cur_freq;
 static unsigned int sleep_freq;
+static unsigned long transition_latency;
 
 /*
  * Different models uses different mechanisms to switch the frequency
@@ -403,7 +404,7 @@  static int pmac_cpufreq_cpu_init(struct cpufreq_policy *policy)
 	if (policy->cpu != 0)
 		return -ENODEV;
 
-	policy->cpuinfo.transition_latency	= CPUFREQ_ETERNAL;
+	policy->cpuinfo.transition_latency	= transition_latency;
 	policy->cur = cur_freq;
 
 	cpufreq_frequency_table_get_attr(pmac_cpu_freqs, policy->cpu);
@@ -658,12 +659,14 @@  static int __init pmac_cpufreq_setup(void)
 	if (!value)
 		goto out;
 	cur_freq = (*value) / 1000;
+	transition_latency = CPUFREQ_ETERNAL;
 
 	/*  Check for 7447A based MacRISC3 */
 	if (of_machine_is_compatible("MacRISC3") &&
 	    of_get_property(cpunode, "dynamic-power-step", NULL) &&
 	    PVR_VER(mfspr(SPRN_PVR)) == 0x8003) {
 		pmac_cpufreq_init_7447A(cpunode);
+		transition_latency = 8000000;
 	/* Check for other MacRISC3 machines */
 	} else if (of_machine_is_compatible("PowerBook3,4") ||
 		   of_machine_is_compatible("PowerBook3,5") ||