All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/12] PS/2 controller related fixes
@ 2021-05-25 18:13 Volker Rümelin
  2021-05-25 18:14 ` [PATCH v4 01/12] ps2: fix mouse stream corruption Volker Rümelin
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Volker Rümelin @ 2021-05-25 18:13 UTC (permalink / raw)
  To: Michael S. Tsirkin, Paolo Bonzini, Philippe Mathieu-Daudé,
	Gerd Hoffmann, Eduardo Habkost, Marcel Apfelbaum
  Cc: qemu-devel

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



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2021-05-25 18:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-25 18:13 [PATCH v4 00/12] PS/2 controller related fixes Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 01/12] ps2: fix mouse stream corruption Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 02/12] ps2: don't raise an interrupt if queue is full Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 03/12] ps2: don't deassert irq twice if queue is empty Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 04/12] pckbd: split out interrupt line changing code Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 05/12] pckbd: don't update OBF flags if KBD_STAT_OBF is set Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 06/12] pckbd: PS/2 keyboard throttle Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 07/12] pckbd: add state variable for interrupt source Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 08/12] pckbd: add controller response queue Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 09/12] pckbd: add function kbd_pending() Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 10/12] pckbd: correctly disable PS/2 communication Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 11/12] pckbd: remove duplicated keyboard and mouse defines Volker Rümelin
2021-05-25 18:14 ` [PATCH v4 12/12] pckbd: clear outport_present in outer pre_load() Volker Rümelin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.