From df433d745a23d880e7cea4d1e0af61af05a35040 Mon Sep 17 00:00:00 2001 From: HyeonSeung Jang Date: Wed, 4 Oct 2006 17:26:13 +0200 Subject: [PATCH] --- yaml --- r: 38989 b: refs/heads/master c: 28347bce8a837258e737873a55d31f2f424a6ea6 h: refs/heads/master i: 38987: ce2262e92a4d1841a284dafaffec4016a9107a9b v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/cell/spufs/switch.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 186c86f4631d..dce0ab81bc71 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a68cf983f635930ea35f9e96b27d96598550dea0 +refs/heads/master: 28347bce8a837258e737873a55d31f2f424a6ea6 diff --git a/trunk/arch/powerpc/platforms/cell/spufs/switch.c b/trunk/arch/powerpc/platforms/cell/spufs/switch.c index 9d9d82dd32ba..0f782ca662ba 100644 --- a/trunk/arch/powerpc/platforms/cell/spufs/switch.c +++ b/trunk/arch/powerpc/platforms/cell/spufs/switch.c @@ -1779,6 +1779,15 @@ static inline void restore_mfc_cntl(struct spu_state *csa, struct spu *spu) */ out_be64(&priv2->mfc_control_RW, csa->priv2.mfc_control_RW); eieio(); + /* + * FIXME: this is to restart a DMA that we were processing + * before the save. better remember the fault information + * in the csa instead. + */ + if ((csa->priv2.mfc_control_RW & MFC_CNTL_SUSPEND_DMA_QUEUE_MASK)) { + out_be64(&priv2->mfc_control_RW, MFC_CNTL_RESTART_DMA_COMMAND); + eieio(); + } } static inline void enable_user_access(struct spu_state *csa, struct spu *spu)