Turn off Altivec data-stream prefetching before going into power-save
mode on those CPUs that need it.
This commit is contained in:
parent
21a2ac1953
commit
d8cd25d022
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user