[Clfs-dev] Hello again!

William Harrington kb0iic at berzerkula.org
Fri Sep 27 09:37:38 PDT 2013


On Mon, 23 Sep 2013 01:48:39 +0100
Ken Moffat <zarniwhoop at ntlworld.com> wrote:

>  But a few months ago I managed to build a recent firefox, and to
> get a 3.10 kernel which would stay up (the ppc64 defconfig didn't,
> turned out to be the HighRes timers, I think).

I'm not sure which mac you have, but right now ondemand isn't enabled for the iMac G5 iSignt  PowerMac 12,1.  Here's a patch I put together from nabble's archives (I'm testing it after the kernel builds). Have you ran across this?

http://marc.info/?t=137461124900005&r=1&w=2

---Begin Patch
diff -Naur linux-3.10.13.orig/arch/powerpc/platforms/powermac/cpufreq_64.c linux-3.10.13/arch/powerpc/platforms/powermac/cpufreq_64.c
--- linux-3.10.13.orig/arch/powerpc/platforms/powermac/cpufreq_64.c	2013-09-27 00:18:49.000000000 +0000
+++ linux-3.10.13/arch/powerpc/platforms/powermac/cpufreq_64.c	2013-09-27 16:25:54.671507612 +0000
@@ -141,7 +141,7 @@
 		pmf_call_one(pfunc_vdnap0_complete, &args);
 		if (done)
 			break;
-		msleep(1);
+		usleep_range(1000, 1000);
 	}
 	if (done == 0)
 		printk(KERN_WARNING "cpufreq: Timeout in clock slewing !\n");
@@ -240,7 +240,7 @@
 		if (pfunc_cpu1_volt_low)
 			pmf_call_one(pfunc_cpu1_volt_low, NULL);
 	}
-	msleep(10); /* should be faster , to fix */
+	usleep_range(10000, 10000); /* should be faster , to fix */
 }
 
 /*
@@ -285,7 +285,7 @@
 		pmf_call_one(pfunc_slewing_done, &args);
 		if (done)
 			break;
-		msleep(1);
+		usleep_range(500, 500);
 	}
 	if (done == 0)
 		printk(KERN_WARNING "cpufreq: Timeout in clock slewing !\n");
@@ -399,6 +399,7 @@
 	if (of_machine_is_compatible("PowerMac8,1") ||
 	    of_machine_is_compatible("PowerMac8,2") ||
 	    of_machine_is_compatible("PowerMac9,1"))
+            of_machine_is_compatible("PowerMac12,1"))
 		use_volts_smu = 1;
 	else if (of_machine_is_compatible("PowerMac11,2"))
 		use_volts_vdnap = 1;
@@ -674,8 +675,11 @@
 	g5_cpu_freqs[0].frequency = max_freq;
 	g5_cpu_freqs[1].frequency = min_freq;
 
+	/* Based on a measurement on Xserve G5, rounded up. */
+	transition_latency = 10 * NSEC_PER_MSEC;
+ 
+
 	/* Set callbacks */
-	transition_latency = CPUFREQ_ETERNAL;
 	g5_switch_volt = g5_pfunc_switch_volt;
 	g5_switch_freq = g5_pfunc_switch_freq;
 	g5_query_freq = g5_pfunc_query_freq;
--End Patch

Sincerely,

William Harrington <kb0iic at berzerkula.org>



More information about the Clfs-dev mailing list