mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 13:14:19 +08:00
efi_loader: escape key handling
Up to now the escape key was not correctly detected in UEFI applications. We had to hit it twice for a single escape to be recognized. Use a 10 ms delay to detect if we are dealing with the escape key or an escape sequence. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
5f9b537531
commit
9abb01af74
@ -14,6 +14,7 @@
|
||||
#include <env.h>
|
||||
#include <stdio_dev.h>
|
||||
#include <video_console.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#define EFI_COUT_MODE_2 2
|
||||
#define EFI_MAX_COUT_MODE 3
|
||||
@ -688,6 +689,17 @@ static efi_status_t efi_cin_read_key(struct efi_key_data *key)
|
||||
|
||||
switch (ch) {
|
||||
case 0x1b:
|
||||
/*
|
||||
* If a second key is received within 10 ms, assume that we are
|
||||
* dealing with an escape sequence. Otherwise consider this the
|
||||
* escape key being hit. 10 ms is long enough to work fine at
|
||||
* 1200 baud and above.
|
||||
*/
|
||||
udelay(10000);
|
||||
if (!tstc()) {
|
||||
pressed_key.scan_code = 23;
|
||||
break;
|
||||
}
|
||||
/*
|
||||
* Xterm Control Sequences
|
||||
* https://www.xfree86.org/4.8.0/ctlseqs.html
|
||||
|
Loading…
Reference in New Issue
Block a user