[POWERPC] cell/PS3: Fix a bug that causes the PS3 to hang on the SPU Class 0 interrupt.
authorMasato Noguchi <Masato.Noguchi@jp.sony.com>
Fri, 7 Sep 2007 08:28:27 +0000 (18:28 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 10 Sep 2007 18:30:36 +0000 (04:30 +1000)
commitb7f90a406ff72d6698b619210c205e3375dd099a
tree04897cefacd9589699f99dcd50f6469a9cab687f
parentb21010ed6498391c0f359f2a89c907533fe07fec
[POWERPC] cell/PS3: Fix a bug that causes the PS3 to hang on the SPU Class 0 interrupt.

The Cell BE Architecture spec states that the SPU MFC Class 0 interrupt
is edge-triggered.  The current spu interrupt handler assumes this
behavior and does not clear the interrupt status.

The PS3 hypervisor visualizes all SPU interrupts as level, and on return
from the interrupt handler the hypervisor will deliver a new virtual
interrupt for any unmasked interrupts which for which the status has not
been cleared.  This fix clears the interrupt status in the interrupt
handler.

Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/spu_base.c
include/asm-powerpc/spu.h