From c92f8a9380cd5826ddb28f48d411409a825caaad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Sun, 11 Oct 2015 18:27:41 +0000 Subject: [PATCH] fix to only reprogram the interrupt controller if neccessary --- BaS_gcc/sys/interrupts.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BaS_gcc/sys/interrupts.c b/BaS_gcc/sys/interrupts.c index 65f43e8..47d0bc0 100644 --- a/BaS_gcc/sys/interrupts.c +++ b/BaS_gcc/sys/interrupts.c @@ -37,7 +37,7 @@ #include "dma.h" #include "pci.h" -// #define IRQ_DEBUG +//#define IRQ_DEBUG #if defined(IRQ_DEBUG) #define dbg(format, arg...) do { xprintf("DEBUG %s(): " format, __FUNCTION__, ##arg); } while (0) #else @@ -336,6 +336,12 @@ bool irq5_handler(void *arg1, void *arg2) pending_interrupts & FBEE_INTR_PCI_INTC || pending_interrupts & FBEE_INTR_PCI_INTD) { + int handle; + + if ((handle = pci_get_interrupt_cause() != -1)) + { + pci_call_interrupt_chain(handle, 0L); + } dbg("PCI interrupt IRQ5\r\n"); FBEE_INTR_CLEAR = FBEE_INTR_PCI_INTA | FBEE_INTR_PCI_INTB |