[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH] kernel2: IRQs beim Registrieren eines Handlers demaskieren



! kernel2: IRQs werden maskiert, wenn sie auftreten und kein Handler
  registriert ist. Wenn der Treiber dann schliesslich kommt, brauchen wir den
  IRQ aber wieder. Fixt den haengenden Tastaturtreiber, wenn zu frueh auf den
  Tasten rumgehaemmert wird.

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/kernel2/src/interrupts/im.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/kernel2/src/interrupts/im.c b/src/kernel2/src/interrupts/im.c
index 5057303..d7130bd 100644
--- a/src/kernel2/src/interrupts/im.c
+++ b/src/kernel2/src/interrupts/im.c
@@ -216,6 +216,12 @@ bool im_add_handler(uint32_t intr, pm_process_t* handler)
     intr_handling_task[intr] = handler;
     pm_register_on_destroy(handler, on_process_destroy, (void*) intr);
 
+    // Moeglicherweise ist der IRQ frueher maskiert worden, weil es keinen
+    // Treiber dafuer gab. Spaetestens jetzt brauchen wir ihn aber wieder.
+    if ((intr >= IM_IRQ_BASE) && (intr< (IM_IRQ_BASE + 16))) {
+        im_enable_irq(intr - IM_IRQ_BASE);
+    }
+
     return TRUE;
 }
 
-- 
1.5.6.5