[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 00/12] PS/2 controller related fixes
From: |
Volker Rümelin |
Subject: |
[PATCH v4 00/12] PS/2 controller related fixes |
Date: |
Tue, 25 May 2021 20:13:35 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 |
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 Philippe 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.
v4:
Use a subsection for additional pckbd state variables. This allows
users to migrate old qemu to new qemu and back. Patches
"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" and
"pckbd: correctly disable PS/2 communication" look now a little
bit different.
New patch "pckbd: clear outport_present in outer pre_load()".
Volker Rümelin (12):
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
pckbd: clear outport_present in outer pre_load()
hw/core/machine.c | 1 +
hw/input/pckbd.c | 353 ++++++++++++++++++++++++++++++++++++----------
hw/input/ps2.c | 11 +-
3 files changed, 286 insertions(+), 79 deletions(-)
--
2.26.2
- [PATCH v4 00/12] PS/2 controller related fixes,
Volker Rümelin <=
- [PATCH v4 02/12] ps2: don't raise an interrupt if queue is full, Volker Rümelin, 2021/05/25
- [PATCH v4 01/12] ps2: fix mouse stream corruption, Volker Rümelin, 2021/05/25
- [PATCH v4 03/12] ps2: don't deassert irq twice if queue is empty, Volker Rümelin, 2021/05/25
- [PATCH v4 04/12] pckbd: split out interrupt line changing code, Volker Rümelin, 2021/05/25
- [PATCH v4 07/12] pckbd: add state variable for interrupt source, Volker Rümelin, 2021/05/25
- [PATCH v4 09/12] pckbd: add function kbd_pending(), Volker Rümelin, 2021/05/25
- [PATCH v4 08/12] pckbd: add controller response queue, Volker Rümelin, 2021/05/25
- [PATCH v4 06/12] pckbd: PS/2 keyboard throttle, Volker Rümelin, 2021/05/25
- [PATCH v4 05/12] pckbd: don't update OBF flags if KBD_STAT_OBF is set, Volker Rümelin, 2021/05/25
- [PATCH v4 12/12] pckbd: clear outport_present in outer pre_load(), Volker Rümelin, 2021/05/25