coreboot/payloads/libpayload/drivers/usb
Julius Werner f911e51efb UPSTREAM: libpayload: usbhub: Force enumeration of all connected ports on init
We have found a non-compliant USB hub (RealTek RTS 5413) that does not
set a port's Connect Status Change bit on its USB 3.0 half if the port
had already been connected while the hub was being reset. To work around
this bug, this patch adds code to initially request the status of every
port after a hub was enumerated, clear the Connect Status Change bit if
set, and then enumerate the port iff it is currently connected,
regardless of whether the change bit was set. A similar behavior can
also be found in the Linux kernel.

BRANCH=oak
BUG=b:35929438
TEST=Booted Elm with this change, my USB 3.0 sticks enumerate now even
if they had been plugged in since boot.

Change-Id: If438b4acac2c509c7f22d9cc2470a014560bb00e
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 5fae829410
Original-Change-Id: I8a28252eb94f005f04866d06e4fc61ea265cee89
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18729
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://chromium-review.googlesource.com/455825
2017-03-16 11:25:32 -07:00
..
dwc2.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01: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
ehci.h
ehci_private.h
ehci_rh.c
generic_hub.c
generic_hub.h
Kconfig UPSTREAM: libpayload: split "Drivers" config section in Kconfig 2016-08-10 00:27:33 -07:00
ohci.c libpayload: usb: Reset ohci controller when trying to shutdown ohci 2017-01-09 23:47:32 -08:00
ohci.h
ohci_private.h
ohci_rh.c
quirks.c
TODO
uhci.c
uhci.h
uhci_private.h
uhci_rh.c
usb.c UPSTREAM: libpayload: usb: handle situation with no free device address 2017-01-09 23:47:00 -08:00
usb_dev.c
usbhid.c
usbhub.c UPSTREAM: libpayload: usbhub: Force enumeration of all connected ports on init 2017-03-16 11:25:32 -07:00
usbinit.c
usbmsc.c libpayload: usbmsc: Add small delay during initialization to fix CZ60 2015-10-29 21:06:45 +01:00
xhci.c libpayload: usb: xhci: Support rockchip xHCI controller 2016-06-01 20:37:01 -07:00
xhci.h
xhci_commands.c
xhci_debug.c
xhci_devconf.c UPSTREAM: libpayload: xhci: plug leak 2017-01-09 23:46:58 -08:00
xhci_events.c
xhci_private.h libpayload: usb: xhci: Support rockchip xHCI controller 2016-06-01 20:37:01 -07:00
xhci_rh.c