Browse Source

[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>
Jeremy Kerr 17 years ago
parent
commit
943906ba4b
1 changed files with 3 additions and 1 deletions
  1. 3 1
      arch/powerpc/platforms/cell/spufs/switch.c

+ 3 - 1
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.
 	 * Restore, Step 14.
 	 *     Write MFC_CNTL[Pc]=1 (purge queue).
 	 *     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();
 	eieio();
 }
 }