u-boot/common
Thomas Watson 96991e652f console: usb: kbd: Limit poll frequency to improve performance
Using the XHCI driver, the function `usb_kbd_poll_for_event` takes
30-40ms to run. The exact time is dependent on the polling interval the
keyboard requests in its descriptor, and likely cannot be significantly
reduced without major rework to the XHCI driver.

The U-Boot EFI console service sets a timer to poll the keyboard every 5
microseconds, and this timer is checked every time a block is read off
disk. The net effect is that, on my system, loading a ~40MiB kernel and
initrd takes about 62 seconds with a slower keyboard and 53 seconds
with a faster one, with the vast majority of the time spent polling the
keyboard.

To solve this problem, this patch adds a 20ms delay between consecutive
calls to `usb_kbd_poll_for_event`. This is sufficient to reduce the
total loading time to under half a second for both keyboards, and does
not impact the perceived keystroke latency.

Signed-off-by: Thomas Watson <twatson52@icloud.com>
2022-02-11 00:03:48 +01:00
..
eeprom SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
init bootstage: Add SPL support 2021-10-31 12:26:44 -06:00
spl spl: ymodem: Fix buffer overflow during Image copy 2022-02-03 12:15:33 -05:00
autoboot.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
avb_verify.c avb: Fix error when partition not found 2021-03-17 12:50:19 -04:00
bloblist.c bloblist: Update to use conditional value 2022-02-08 23:07:59 -05:00
board_f.c bloblist: Rename the SPL tag 2022-01-13 09:13:41 -07:00
board_info.c board-info: Call sysinfo_detect() before sysinfo_get_str() 2021-07-14 16:48:00 -04:00
board_r.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
bootstage.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
bouncebuf.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
cli_hush.c cli: slighly more clear error messages 2021-05-17 17:06:42 -04:00
cli_readline.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
cli_simple.c cli: Support macro processing with a fixed-size buffer 2020-12-04 16:10:01 -05:00
cli.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
command.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
console.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
cros_ec.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
ddr_spd.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu.c dfu: add support for the dfu_alt_info reintialization from the flashed script 2021-01-31 14:08:56 +01:00
dlmalloc.c malloc: add SPDX license identifiers 2021-06-23 08:45:03 -04:00
dlmalloc.src Consolidate bool type 2013-04-01 16:33:52 -04:00
edid.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
exports.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
fdt_simplefb.c common: add fdt_simplefb_enable_and_mem_rsv function 2021-11-30 16:43:28 +01:00
fdt_support.c Merge https://source.denx.de/u-boot/custodians/u-boot-marvell 2022-01-20 12:40:20 -05:00
flash.c mtd: cfi: introduce CFI_FLASH_BANKS 2022-01-21 14:01:35 -05:00
hash.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
hwconfig.c WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
iomux.c IOMUX: Fix buffer overflow in iomux_replace_device() 2021-04-27 08:05:30 -04:00
iotrace.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
kallsyms.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
Kconfig bloblist: Refactor Kconfig to support alloc or fixed 2022-01-13 09:13:41 -07:00
kgdb_stubs.c common: Drop asm/ptrace.h from common header 2020-05-18 21:19:23 -04:00
kgdb.c common: board_r: drop initr_kgdb wrapper 2022-01-18 08:31:02 -05:00
lcd_console_rotation.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lcd_console.c WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
lcd.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
log_console.c log: Allow padding of the function name 2021-07-21 10:27:35 -06:00
log_syslog.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
log.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
main.c version: Move version_string[] from version.h to version_string.h 2021-09-17 12:10:44 -04:00
Makefile common: remove bedbug debugger support 2022-01-18 08:31:02 -05:00
malloc_simple.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
memsize.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
menu.c menu: add support for client defined statusline function 2020-05-07 09:01:42 -04:00
miiphyutil.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
qfw.c x86: qemu: move QFW to its own uclass 2021-04-12 17:44:55 -04:00
s_record.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
scp03.c common: SCP03 control (enable and provision of keys) 2021-03-13 13:14:52 -05:00
splash_source.c video: Support virtio devices with the splash screen 2021-12-26 23:33:24 +01:00
splash.c video: Convert CONFIG_VIDEO_LOGO to Kconfig 2021-12-26 23:24:46 +01:00
stackprot.c Add support for stack-protector 2021-04-20 07:31:12 -04:00
stdio.c usb: gadget: Add CDC ACM function 2022-01-26 23:23:17 +01:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c mtd: cfi: introduce CFI_FLASH_BANKS 2022-01-21 14:01:35 -05:00
usb_hub.c usb: hub: Fix usb_get_port_status() for big-endian platforms 2021-04-06 16:38:57 +02:00
usb_kbd.c console: usb: kbd: Limit poll frequency to improve performance 2022-02-11 00:03:48 +01:00
usb_storage.c WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
usb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
xyzModem.c xyz-modem: Allow to cancel transfer also by CTRL+C 2021-09-03 14:32:41 -04:00