diff options
| author | Jeremy Kerr <jk@ozlabs.org> | 2008-04-07 03:42:36 -0400 |
|---|---|---|
| committer | Jeremy Kerr <jk@ozlabs.org> | 2008-05-04 23:33:42 -0400 |
| commit | 943906ba4bebf629d5cd770e48b8ec0ddc433869 (patch) | |
| tree | 24d8d7c9e112c0ec0bdbe875a636fef98cc00159 | |
| parent | 5711fe900dfef8d9afdbbb6d0f9c9720919d1d66 (diff) | |
[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>
| -rw-r--r-- | arch/powerpc/platforms/cell/spufs/switch.c | 4 |
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) | |||
| 462 | * Restore, Step 14. | 462 | * Restore, Step 14. |
| 463 | * Write MFC_CNTL[Pc]=1 (purge queue). | 463 | * Write MFC_CNTL[Pc]=1 (purge queue). |
| 464 | */ | 464 | */ |
| 465 | out_be64(&priv2->mfc_control_RW, MFC_CNTL_PURGE_DMA_REQUEST); | 465 | out_be64(&priv2->mfc_control_RW, |
| 466 | MFC_CNTL_PURGE_DMA_REQUEST | | ||
| 467 | MFC_CNTL_SUSPEND_MASK); | ||
| 466 | eieio(); | 468 | eieio(); |
| 467 | } | 469 | } |
| 468 | 470 | ||
