]> err.no Git - linux-2.6/blobdiff - arch/powerpc/platforms/cell/spufs/backing_ops.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / arch / powerpc / platforms / cell / spufs / backing_ops.c
index d4495531e5b257f1c61d26df4382805de087b727..64eb15b22040aec7f005b0d70f264318f7b650a7 100644 (file)
@@ -288,6 +288,12 @@ static void spu_backing_runcntl_write(struct spu_context *ctx, u32 val)
        spin_lock(&ctx->csa.register_lock);
        ctx->csa.prob.spu_runcntl_RW = val;
        if (val & SPU_RUNCNTL_RUNNABLE) {
+               ctx->csa.prob.spu_status_R &=
+                       ~SPU_STATUS_STOPPED_BY_STOP &
+                       ~SPU_STATUS_STOPPED_BY_HALT &
+                       ~SPU_STATUS_SINGLE_STEP &
+                       ~SPU_STATUS_INVALID_INSTR &
+                       ~SPU_STATUS_INVALID_CH;
                ctx->csa.prob.spu_status_R |= SPU_STATUS_RUNNING;
        } else {
                ctx->csa.prob.spu_status_R &= ~SPU_STATUS_RUNNING;
@@ -373,7 +379,7 @@ static int spu_backing_send_mfc_command(struct spu_context *ctx,
 
 static void spu_backing_restart_dma(struct spu_context *ctx)
 {
-       /* nothing to do here */
+       ctx->csa.priv2.mfc_control_RW |= MFC_CNTL_RESTART_DMA_COMMAND;
 }
 
 struct spu_context_ops spu_backing_ops = {