Prevent ps2 irqs from messing up ps2 init.
authorKevin O'Connor <kevin@koconnor.net>
Sun, 14 Mar 2010 00:00:02 +0000 (19:00 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Sun, 14 Mar 2010 00:00:02 +0000 (19:00 -0500)
This is an alternate to 6f702dd6987b22e9bce472fe61910392af17416a.

After disabling ps2 irqs, enable irqs to flush any queued irqs.  This
should prevent irqs from triggering in the middle of the init process.

src/ps2port.c

index 54227457441c75b59d45a84093ce6462b524e276..71a1ba24498100be9a52d8e1b01c1ca3a125b47c 100644 (file)
@@ -228,6 +228,9 @@ ps2_command(int aux, int command, u8 *param)
     if (ret)
         return ret;
 
+    // Flush any interrupts already pending.
+    yield();
+
     if (command == ATKBD_CMD_RESET_BAT) {
         // Reset is special wrt timeouts.