curTick() + (newCount + 1) *
clockPeriod() - offset, true);
} else {
- reschedule(apicTimerEvent,
- curTick() + newCount *
- clockPeriod(), true);
+ if (newCount)
+ reschedule(apicTimerEvent,
+ curTick() + newCount *
+ clockPeriod(), true);
}
}
break;
case ReadOutputPort:
panic("i8042 \"Read output port\" command not implemented.\n");
case WriteOutputPort:
- panic("i8042 \"Write output port\" command not implemented.\n");
+ warn("i8042 \"Write output port\" command not implemented.\n");
+ lastCommand = WriteOutputPort;
case WriteKeyboardOutputBuff:
- panic("i8042 \"Write keyboard output buffer\" "
+ warn("i8042 \"Write keyboard output buffer\" "
"command not implemented.\n");
+ lastCommand = WriteKeyboardOutputBuff;
case WriteMouseOutputBuff:
DPRINTF(I8042, "Got command to write to mouse output buffer.\n");
lastCommand = WriteMouseOutputBuff;
case SystemReset:
panic("i8042 \"System reset\" command not implemented.\n");
default:
- panic("Write to unknown i8042 "
+ warn("Write to unknown i8042 "
"(keyboard controller) command port.\n");
}
} else {