[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