trs80: fix IRQ handling logic
authorAlan Cox <alan@linux.intel.com>
Wed, 16 May 2018 21:22:18 +0000 (22:22 +0100)
committerAlan Cox <alan@linux.intel.com>
Wed, 16 May 2018 21:22:18 +0000 (22:22 +0100)
Kernel/platform-trs80/main.c

index 013dd1d..19799b8 100644 (file)
@@ -33,13 +33,15 @@ uint8_t platform_param(char *p)
 
 void platform_interrupt(void)
 {
-  uint8_t irq = irqstat;
+  uint8_t irq = ~irqstat;
+  uint8_t dummy;
   if (irq & 0x20)
     tty_interrupt();
-  if (!(irq & 0x80))
-    return;
-  kbd_interrupt();
-  timer_interrupt();
+  if (irq & 0x04) {
+    kbd_interrupt();
+    timer_interrupt();
+    dummy = irqack;
+  }
 }
 
 /*