On 5/15/21 1:31 PM, Volker Rümelin wrote:
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
Zoltan, you might want to test this series with your Pegasos2
machine. It makes the keyboard detected correctly.
There is still a problem with the mouse interaction with the
host. Pressing Ctrl+Alt+G to ungrab the mouse, my host mouse
is still responding to guest events... (unrelated to this series).
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
(PPC Pegasos2 so far)