Turn off Altivec data-stream prefetching before going into power-save

mode on those CPUs that need it.
This commit is contained in:
Nathan Whitehorn 2009-10-29 14:22:09 +00:00
parent 21a2ac1953
commit d8cd25d022

View File

@ -897,8 +897,10 @@ void
cpu_idle(int busy)
{
uint32_t msr;
uint16_t vers;
msr = mfmsr();
vers = mfpvr() >> 16;
#ifdef INVARIANTS
if ((msr & PSL_EE) != PSL_EE) {
@ -908,9 +910,25 @@ cpu_idle(int busy)
}
#endif
if (powerpc_pow_enabled) {
powerpc_sync();
mtmsr(msr | PSL_POW);
isync();
switch (vers) {
case IBM970:
case IBM970FX:
case IBM970MP:
case MPC7447A:
case MPC7448:
case MPC7450:
case MPC7455:
case MPC7457:
__asm __volatile("\
dssall; sync; mtmsr %0; isync"
:: "r"(msr | PSL_POW));
break;
default:
powerpc_sync();
mtmsr(msr | PSL_POW);
isync();
break;
}
}
}