]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
cuda.c: fix CUDA SR interrupt clearing
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Wed, 11 Nov 2015 22:49:46 +0000 (22:49 +0000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 12 Nov 2015 02:15:55 +0000 (13:15 +1100)
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>
hw/misc/macio/cuda.c

index b7e9deeb15acb0fba3f9a04733da1df413e14e9c..364473fee259213fd2a297eec4335d277c2331a8 100644 (file)
@@ -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: