[Cbe-oss-dev] [PATCH 2/2] ps3: always set master run control bit in mfc_sr1_set

Arnd Bergmann arnd at arndb.de
Sat Sep 8 09:06:50 EST 2007


On Friday 07 September 2007, Jeremy Kerr wrote:
> diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
> index ac2a4b8..d1630a0 100644
> --- a/arch/powerpc/platforms/ps3/spu.c
> +++ b/arch/powerpc/platforms/ps3/spu.c
> @@ -505,6 +505,8 @@ static void mfc_sr1_set(struct spu *spu, u64 sr1)
>         static const u64 allowed = ~(MFC_STATE1_LOCAL_STORAGE_DECODE_MASK
>                 | MFC_STATE1_PROBLEM_STATE_MASK);
>  
> +       sr1 |= MFC_STATE1_MASTER_RUN_CONTROL_MASK;
> +
>         BUG_ON((sr1 & allowed) != (spu_pdata(spu)->cache.sr1 & allowed));
>  
>         spu_pdata(spu)->cache.sr1 = sr1;

Sebastian suggested the same workaround earlier, but when I looked at this,
it seemed that in this case we're not switching off the runcntl when leaving
the spu_run. In most cases, the spu will have stopped anyway, but for example
not if you send a signal to an spu thread that is executing code.

The patch from Noguchi-san seemed to address that case in the correct way, but
I must admit that I didn't try either variant.

	Arnd <><



More information about the cbe-oss-dev mailing list