On Mon, 23 Sep 2013 01:48:39 +0100
Ken Moffat <[email protected]> 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 <[email protected]>
_______________________________________________
Clfs-dev mailing list
[email protected]
http://lists.cross-lfs.org/listinfo.cgi/clfs-dev-cross-lfs.org

Reply via email to