coreboot-kgpe-d16/payloads/libpayload/drivers
Nico Huber e79595def5 libpayload: Use interrupt transfers for USB hubs
In interactive payloads, the USB stack's poll procedure is implicitly
called from the UI loop. Since all USB control transfers are handled
synchronously, polling hubs with these slows the UI significantly down.

So switch to interrupt transfers that are done asynchronously and only
perform control transfers when the hub reported a status change.

We use the interrupt endpoint's max packet size instead of the theo-
retical transfer length of `(bNrPorts + 1) / 8` as Linux' code mentions
hubs that return too much data.

Change-Id: I5af02d63e4b8e1451b160b77f3611b93658a7a48
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/18499
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2019-09-18 12:58:50 +00:00
..
i8042 libpayload/i8042/keyboard: Log errors during initialization 2019-06-14 18:13:41 +00:00
serial libpayload/serial/qcs405: Mark uart console as such 2019-07-26 08:41:38 +00:00
storage libpayload: ahci: Prevent memory leaks when failing on init 2019-05-15 17:54:02 +00:00
timer mediatek: Use the 64-bit timer 2019-04-17 04:32:26 +00:00
udc
usb libpayload: Use interrupt transfers for USB hubs 2019-09-18 12:58:50 +00:00
video libpayload: cbgfx: Allow rotation of the display 2019-08-08 03:20:06 +00:00
Makefile.inc libpayload: Add UART for qcs405 2019-06-04 14:14:58 +00:00
cbmem_console.c
hid.c
mouse_cursor.c
nvram.c
options.c libpayload/option table: Don't pad string entries with garbage 2019-04-11 12:03:07 +00:00
pci.c
speaker.c