This patch series fixes two different PS/2 mouse stream corruptions and adds a feature that allows some old misbehaving DOS programs to have a working keyboard. With the last few patches, the PS/2 con- troller behaves more like a real controller.
v2: Introduce the function kbd_pending() in a preliminary patch to ease the review of patch "pckbd: correctly disable PS/2 communication", as Phillipe suggested. v3: Patch "pckbd: correctly disable PS/2 communication" exposed a bug in SeaBIOS. The updated patch keeps the relevant code. Until SeaBIOS is fixed, the PS/2 controller command KBD_CCMD_KBD_DISABLE must disable the keyboard interrupt. In patch "pckbd: PS/2 keyboard throttle" in function kbd_throttle_timeout() an unnecessary if statement was removed. The KBD_STAT_OBF flag is never set when kbd_throttle_timeout() gets called. Volker Rümelin (11): ps2: fix mouse stream corruption ps2: don't raise an interrupt if queue is full ps2: don't deassert irq twice if queue is empty pckbd: split out interrupt line changing code pckbd: don't update OBF flags if KBD_STAT_OBF is set pckbd: PS/2 keyboard throttle pckbd: add state variable for interrupt source pckbd: add controller response queue pckbd: add function kbd_pending() pckbd: correctly disable PS/2 communication pckbd: remove duplicated keyboard and mouse defines hw/input/pckbd.c | 289 ++++++++++++++++++++++++++++++++++------------- hw/input/ps2.c | 11 +- 2 files changed, 221 insertions(+), 79 deletions(-) -- 2.26.2