grub/grub-core/term
Michael Bideau 33203ca348 at_keyboard: Fix unreliable key presses
This patch fixes an issue that prevented the at_keyboard module to work
(for me). The cause was a bad/wrong return value in the
grub_at_keyboard_getkey() function in grub-core/term/at_keyboard.c file
at line 237. My symptoms were to have an unresponsive keyboard. Keys
needed to be pressed 10x and more to effectively be printed sometimes
generating multiple key presses (after 1 or 2 sec of no printing). It
was very problematic when typing passphrase in early stage (with
GRUB_ENABLE_CRYPTODISK). When switched to "console" terminal input
keyboard worked perfectly. It also worked great with the GRUB 2.02
packaged by Debian (2.02+dfsg1-20). It was not an output issue but an
input one.

I've managed to analyze the issue and found that it came from the commit
216950a4e (at_keyboard: Split protocol from controller code.). Three
lines where moved from the fetch_key() function in
grub-core/term/at_keyboard.c file to the beginning of
grub_at_keyboard_getkey() function (same file). However, returning -1
made sense when it happened in fetch_key() function but not anymore in
grub_at_keyboard_getkey() function which should return GRUB_TERM_NO_KEY.
I think it was just an incomplete cut-paste missing a small manual
correction. Let's fix it.

Note: Commit message updated by Daniel Kiper.

Signed-off-by: Michael Bideau <mica.devel@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2019-10-21 14:07:47 +02:00
..
arc * grub-core/term/arc/console.c: Add missing cast to silence warning. 2013-11-24 05:05:34 +01:00
arm arm_coreboot: Add Chromebook keyboard driver. 2017-05-09 08:47:34 +02:00
efi efi/console: Fix the "enter" key not working on x86 tablets 2018-07-11 11:53:28 +02:00
i386 core: use GRUB_TERM_ definitions when handling term characters 2017-08-07 19:28:22 +02:00
ieee1275 * grub-core/term/ieee1275/escc.c (GRUB_MOD_INIT): Fix order of channels. 2013-11-10 17:53:11 +01:00
uboot Add progress module to display load progress of files. 2013-10-22 16:42:20 -02:00
xen Remove xen VFB. 2013-12-18 18:43:09 +01:00
at_keyboard.c at_keyboard: Fix unreliable key presses 2019-10-21 14:07:47 +02:00
gfxterm.c gfxterm: Fix clearing of cursor. 2017-01-31 18:49:37 +01:00
gfxterm_background.c Detach optional parts of gfxterm and integrate in with coreboot init. 2013-05-31 00:42:33 +02:00
morse.c Add progress module to display load progress of files. 2013-10-22 16:42:20 -02:00
ns8250.c Avoid division by zero in serial. 2015-01-21 17:42:13 +01:00
ps2.c at_keyboard: Split protocol from controller code. 2017-05-08 21:41:22 +02:00
serial.c Avoid division by zero in serial. 2015-01-21 17:42:13 +01:00
spkmodem.c Add progress module to display load progress of files. 2013-10-22 16:42:20 -02:00
terminfo.c core: use GRUB_TERM_ definitions when handling term characters 2017-08-07 19:28:22 +02:00
tparm.c Enable -Wformat=2 if it's supported. 2013-12-21 15:28:28 +01:00
usb_keyboard.c usb_keyboard: Remove useless include 2016-02-22 20:05:54 +01:00