Date: Thu, 29 Oct 2009 14:22:09 +0000 (UTC) From: Nathan Whitehorn <nwhitehorn@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r198588 - head/sys/powerpc/aim Message-ID: <200910291422.n9TEM9iL098991@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: nwhitehorn Date: Thu Oct 29 14:22:09 2009 New Revision: 198588 URL: http://svn.freebsd.org/changeset/base/198588 Log: Turn off Altivec data-stream prefetching before going into power-save mode on those CPUs that need it. Modified: head/sys/powerpc/aim/machdep.c Modified: head/sys/powerpc/aim/machdep.c ============================================================================== --- head/sys/powerpc/aim/machdep.c Thu Oct 29 13:52:34 2009 (r198587) +++ head/sys/powerpc/aim/machdep.c Thu Oct 29 14:22:09 2009 (r198588) @@ -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; + } } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910291422.n9TEM9iL098991>