Now that we're no longer updating the hid0 register in the idle loop, we
can enable idle for G5.

ok?

Index: macppc/cpu.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/macppc/cpu.c,v
retrieving revision 1.76
diff -u -p -r1.76 cpu.c
--- macppc/cpu.c        6 Sep 2014 10:15:52 -0000       1.76
+++ macppc/cpu.c        6 Sep 2014 10:46:45 -0000
@@ -371,8 +371,8 @@ cpuattach(struct device *parent, struct 
        }
 
        /* power savings mode */
-       if (ppc_proc_is_64b == 0)
-               hid0 = ppc_mfhid0();
+       hid0 = ppc_mfhid0();
+
        switch (cpu) {
        case PPC_CPU_MPC603:
        case PPC_CPU_MPC603e:
@@ -403,14 +403,19 @@ cpuattach(struct device *parent, struct 
                break;
        case PPC_CPU_IBM970:
        case PPC_CPU_IBM970FX:
-       case PPC_CPU_IBM970MP:
                /* select NAP mode */
-               hid0 &= ~(HID0_NAP | HID0_DOZE | HID0_SLEEP);
-               hid0 |= HID0_DPM;
+               hid0 &= ~(HID0_DOZE | HID0_DEEPNAP);
+               hid0 |= HID0_NAP | HID0_DPM;
+               ppc_cpuidle = 1;
+               break;
+       case PPC_CPU_IBM970MP:
+               /* select DEEPNAP mode, which requires NAP */
+               hid0 &= ~HID0_DOZE;
+               hid0 |= HID0_DEEPNAP | HID0_NAP | HID0_DPM;
+               ppc_cpuidle = 1;
                break;
        }
-       if (ppc_proc_is_64b == 0)
-               ppc_mthid0(hid0);
+       ppc_mthid0(hid0);
 
        /* if processor is G3 or G4, configure L2 cache */
        switch (cpu) {

Reply via email to