summary refs log tree commit diff stats
path: root/hw/misc/macio
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2015-11-11 22:49:46 +0000
committerDavid Gibson <david@gibson.dropbear.id.au>2015-11-12 13:15:55 +1100
commitd271ae36dc1e292ae140f5bbf23e0fc1392dd325 (patch)
tree0bc6a6c08a9c55e4551ea9605ffd78c4534341c2 /hw/misc/macio
parentce8d3b647b5acc2bec19602d9fac87d3da11ae77 (diff)
downloadfocaccia-qemu-d271ae36dc1e292ae140f5bbf23e0fc1392dd325.tar.gz
focaccia-qemu-d271ae36dc1e292ae140f5bbf23e0fc1392dd325.zip
cuda.c: fix CUDA SR interrupt clearing
Make sure that we also clear the data and clock interrupts at the same time.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/misc/macio')
-rw-r--r--hw/misc/macio/cuda.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
index b7e9deeb15..364473fee2 100644
--- a/hw/misc/macio/cuda.c
+++ b/hw/misc/macio/cuda.c
@@ -57,6 +57,8 @@
 #define IER_SET		0x80		/* set bits in IER */
 #define IER_CLR		0		/* clear bits in IER */
 #define SR_INT		0x04		/* Shift register full/empty */
+#define SR_DATA_INT	0x08
+#define SR_CLOCK_INT	0x10
 #define T1_INT          0x40            /* Timer 1 interrupt */
 #define T2_INT          0x20            /* Timer 2 interrupt */
 
@@ -261,7 +263,7 @@ static uint32_t cuda_readb(void *opaque, hwaddr addr)
         break;
     case 10:
         val = s->sr;
-        s->ifr &= ~SR_INT;
+        s->ifr &= ~(SR_INT | SR_CLOCK_INT | SR_DATA_INT);
         cuda_update_irq(s);
         break;
     case 11: