didn't work on this for a very long time so I might have forgotten quite some things.. So I'm having the issue that my kernel randomly stops receiving IRQ12 for the mouse input. I'm using the LAPIC to receive interrupts and there might be a problem with the sequence I'm doing, but I'm a little stuck here...
For initialization I do this:
- Driver (task) registers a function as an interrupt handler
- Set the Compaq status byte to enable IRQ12
- Then I set the mouse to "default settings" and enable packet streaming
- Kernel receives the interrupt, the handling task is interrupted and I set the task state to continue within its interrupt handler
- I immediately write APIC_REGISTER_EOI to 0 to acknowledge the interrupt
- Next time the driver is scheduled, it reads the status byte 0x64 and then the value from 0x60 as long as there is data
It happens very randomly, it works for a while and at some point I simply don't get any IRQ 12 anymore...
Thanks in advance!