aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/cell/spufs
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2008-04-07 17:42:36 +1000
committerJeremy Kerr <jk@ozlabs.org>2008-05-05 13:33:42 +1000
commit943906ba4bebf629d5cd770e48b8ec0ddc433869 (patch)
tree24d8d7c9e112c0ec0bdbe875a636fef98cc00159 /arch/powerpc/platforms/cell/spufs
parent[POWERPC] cell: Fix lost interrupts due to fasteoi handler (diff)
downloadlinux-dev-943906ba4bebf629d5cd770e48b8ec0ddc433869.tar.xz
linux-dev-943906ba4bebf629d5cd770e48b8ec0ddc433869.zip
[POWERPC] spufs: don't touch suspend bits when purging DMA queue
When we issue a MFC purge request, we may inadvertantly clear the suspended status. This change adds the MFC_CNTL_SUSPEND_MASK when we issue a purge request, so that the suspend bit is masked out. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'arch/powerpc/platforms/cell/spufs')
-rw-r--r--arch/powerpc/platforms/cell/spufs/switch.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/switch.c b/arch/powerpc/platforms/cell/spufs/switch.c
index d2a1249d36dd..65b423b6da48 100644
--- a/arch/powerpc/platforms/cell/spufs/switch.c
+++ b/arch/powerpc/platforms/cell/spufs/switch.c
@@ -462,7 +462,9 @@ static inline void purge_mfc_queue(struct spu_state *csa, struct spu *spu)
* Restore, Step 14.
* Write MFC_CNTL[Pc]=1 (purge queue).
*/
- out_be64(&priv2->mfc_control_RW, MFC_CNTL_PURGE_DMA_REQUEST);
+ out_be64(&priv2->mfc_control_RW,
+ MFC_CNTL_PURGE_DMA_REQUEST |
+ MFC_CNTL_SUSPEND_MASK);
eieio();
}