coreboot-kgpe-d16/payloads/libpayload/drivers/usb
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
..
Kconfig libpayload: Reintroduce CONFIG_LP_CHROMEOS to set suitable defaults 2016-10-17 22:46:11 +02:00
TODO
dwc2.c libpayload/usb: fix DWC2 driver 2019-07-09 13:05:53 +00:00
dwc2.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
dwc2_private.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
dwc2_rh.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
ehci.c libpayload/usb: Increase USB request timeout to 5 s 2019-07-02 17:42:18 +00:00
ehci.h
ehci_private.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
ehci_rh.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
generic_hub.c libpayload/generic_hub: Detect port disconnect after reset 2018-07-17 20:38:46 +00:00
generic_hub.h
ohci.c libpayload/usb: Increase USB request timeout to 5 s 2019-07-02 17:42:18 +00:00
ohci.h
ohci_private.h libpayload/drivers/usb/ohci_private.h: Add parentheses around macro 2018-04-29 18:13:08 +00:00
ohci_rh.c
quirks.c
uhci.c libpayload/usb: Increase USB request timeout to 5 s 2019-07-02 17:42:18 +00:00
uhci.h
uhci_private.h Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
uhci_rh.c
usb.c libpayload/usb: add USB 3.1 GEN2 support 2019-08-27 07:21:00 +00:00
usb_dev.c libpayload/drivers/usb: Fix leaks 2018-10-01 16:58:29 +00:00
usbhid.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
usbhub.c libpayload: Use interrupt transfers for USB hubs 2019-09-18 12:58:50 +00:00
usbinit.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
usbmsc.c libpayload: usbmsc: Factor out usb_msc_force_init() function 2019-08-22 10:37:26 +00:00
xhci.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00
xhci.h
xhci_commands.c
xhci_debug.c libpayload: usb: Add support for SuperSpeed hubs 2015-07-18 09:40:48 +02:00
xhci_devconf.c libpayload/usb: add USB 3.1 GEN2 support 2019-08-27 07:21:00 +00:00
xhci_events.c libpayload/usb: Increase USB request timeout to 5 s 2019-07-02 17:42:18 +00:00
xhci_private.h libpayload/xhci: Document struct offsets on xhci_t 2018-07-16 07:43:50 +00:00
xhci_rh.c payloads: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) 2019-03-07 17:15:30 +00:00