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)
|
cpu_idle(int busy)
|
||||||
{
|
{
|
||||||
uint32_t msr;
|
uint32_t msr;
|
||||||
|
uint16_t vers;
|
||||||
|
|
||||||
msr = mfmsr();
|
msr = mfmsr();
|
||||||
|
vers = mfpvr() >> 16;
|
||||||
|
|
||||||
#ifdef INVARIANTS
|
#ifdef INVARIANTS
|
||||||
if ((msr & PSL_EE) != PSL_EE) {
|
if ((msr & PSL_EE) != PSL_EE) {
|
||||||
@ -908,9 +910,25 @@ cpu_idle(int busy)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (powerpc_pow_enabled) {
|
if (powerpc_pow_enabled) {
|
||||||
powerpc_sync();
|
switch (vers) {
|
||||||
mtmsr(msr | PSL_POW);
|
case IBM970:
|
||||||
isync();
|
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…
x
Reference in New Issue
Block a user