Deleted Added
full compact
30c30
< __FBSDID("$FreeBSD: stable/10/sys/powerpc/powermac/pmu.c 261177 2014-01-26 02:23:16Z jhibbits $");
---
> __FBSDID("$FreeBSD: stable/10/sys/powerpc/powermac/pmu.c 262675 2014-03-02 02:35:46Z jhibbits $");
48d47
< #include <machine/altivec.h> /* For save_vec() */
51d49
< #include <machine/fpu.h> /* For save_fpu() */
58d55
< #include <machine/setjmp.h>
109d105
< static void pmu_sleep_int(void);
1034,1099d1029
< static register_t sprgs[4];
< static register_t srrs[2];
< extern void *ap_pcpu;
<
< void pmu_sleep_int(void)
< {
< static u_quad_t timebase = 0;
< jmp_buf resetjb;
< struct thread *fputd;
< struct thread *vectd;
< register_t hid0;
< register_t msr;
< register_t saved_msr;
<
< ap_pcpu = pcpup;
<
< PCPU_SET(restore, &resetjb);
<
< *(unsigned long *)0x80 = 0x100;
< saved_msr = mfmsr();
< fputd = PCPU_GET(fputhread);
< vectd = PCPU_GET(vecthread);
< if (fputd != NULL)
< save_fpu(fputd);
< if (vectd != NULL)
< save_vec(vectd);
< if (setjmp(resetjb) == 0) {
< sprgs[0] = mfspr(SPR_SPRG0);
< sprgs[1] = mfspr(SPR_SPRG1);
< sprgs[2] = mfspr(SPR_SPRG2);
< sprgs[3] = mfspr(SPR_SPRG3);
< srrs[0] = mfspr(SPR_SRR0);
< srrs[1] = mfspr(SPR_SRR1);
< timebase = mftb();
< powerpc_sync();
< flush_disable_caches();
< hid0 = mfspr(SPR_HID0);
< hid0 = (hid0 & ~(HID0_DOZE | HID0_NAP)) | HID0_SLEEP;
< powerpc_sync();
< isync();
< msr = mfmsr() | PSL_POW;
< mtspr(SPR_HID0, hid0);
< powerpc_sync();
<
< while (1)
< mtmsr(msr);
< }
< mttb(timebase);
< PCPU_SET(curthread, curthread);
< PCPU_SET(curpcb, curthread->td_pcb);
< pmap_activate(curthread);
< powerpc_sync();
< mtspr(SPR_SPRG0, sprgs[0]);
< mtspr(SPR_SPRG1, sprgs[1]);
< mtspr(SPR_SPRG2, sprgs[2]);
< mtspr(SPR_SPRG3, sprgs[3]);
< mtspr(SPR_SRR0, srrs[0]);
< mtspr(SPR_SRR1, srrs[1]);
< mtmsr(saved_msr);
< if (fputd == curthread)
< enable_fpu(curthread);
< if (vectd == curthread)
< enable_vec(curthread);
< powerpc_sync();
< }
<
1117c1047
< pmu_sleep_int();
---
> platform_sleep();