From: Jeremy Kerr Date: Mon, 7 Apr 2008 07:42:36 +0000 (+1000) Subject: [POWERPC] spufs: don't touch suspend bits when purging DMA queue X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=943906ba4bebf629d5cd770e48b8ec0ddc433869;p=deliverable%2Flinux.git [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 --- 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(); }