Skip to content

ps2: fix keyboard set 3 and misc improvements

Hervé Poussineau qemu-devel 2 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest5 patches 0 repliesNew
  2. v15 patches 1 replySuperseded

Changes in v2 from the cover letter

- fix checkpatch.pl warning (patch 3)
- fix compilation with mingw (patch 5)

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5ps2: reject unknown commands, instead of blindly accepting themhw/input/ps2.c+1 -10 replies
2/5ps2: correctly handle 'get/set scancode' commandhw/input/ps2.c+5 -30 replies
3/5ps2: allow keycode translation for all scancode setshw/input/ps2.c+97 -260 replies
4/5ps2: use QEMU qcodes instead of scancodeshw/input/ps2.c+485 -480 replies
5/5ps2: do not generate invalid key codes for unknown keyshw/input/ps2.c+7 -130 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [Qemu-devel] [PATCH v2 0/5] ps2: fix keyboard set 3 and misc improvements

Hi,

This patchset is a welcome cleanup of scancodes used in PS/2 keyboard emulation.

- Patches 1 and 2 are fixes to let Linux use set 3 if instructed so.
- Patch 3 makes scancodes untranslated by default and translates them if required, instead of receiving translated scancodes by default and untranslating them if required.
- Patch 4 switches to use qcodes instead of scancodes.
- Patch 5 is a small cleanup, to prevent sending invalid keycodes to the OS.

See each patch commit for details about what changed.

Missing part are handling of following commands in set 3:
- 0xf7: set all keys to typematic/autorepeat only
- 0xf8: set all keys to make/release
- 0xf9: set all keys to make only
- 0xfa: set all keys to typematic/autorepeat make/release
- 0xfb: set specific key to typematic/autorepeat only
- 0xfc: set specific key to make/release
- 0xfd: set specific key to make only

Translated set 2 and untranslated sets 2 and 3 have been tested with Linux, using kernel parameters "i8042.direct=1" and "atkbd.set=3".
Set 1 has been tested with MIPS Magnum emulation.

Patch 4 doesn't pass checkpatch.pl, due to some key mappings not implemented because of missing an equivalent qcode.

Changes since v1:
- fix checkpatch.pl warning (patch 3)
- fix compilation with mingw (patch 5)

Hervé

Hervé Poussineau (5):
ps2: reject unknown commands, instead of blindly accepting them
ps2: correctly handle 'get/set scancode' command
ps2: allow keycode translation for all scancode sets
ps2: use QEMU qcodes instead of scancodes
ps2: do not generate invalid key codes for unknown keys

 hw/input/ps2.c | 612 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 558 insertions(+), 54 deletions(-)
Signature · 1 line
2.1.4