coreboot-kgpe-d16/payloads/libpayload/drivers
Julius Werner 5fae829410 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: I8a28252eb94f005f04866d06e4fc61ea265cee89
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/18729
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
2017-03-15 00:54:23 +01:00
..
serial libpayload: ipq40xx: Introduce timer and uart driver 2016-05-09 08:53:24 +02:00
storage libpayload: Add Cougar Point PCH's AHCI to whitelist 2016-12-08 01:36:01 +01:00
timer libpayload: timer: cast cpu_khz to make sure 64bit math is used 2017-01-06 18:40:44 +01:00
udc Remove extra newlines from the end of all coreboot files. 2016-07-31 18:19:33 +02:00
usb libpayload: usbhub: Force enumeration of all connected ports on init 2017-03-15 00:54:23 +01:00
video libpayload/drivers/video: Improve check in if condition 2016-12-14 18:03:13 +01:00
Makefile.inc libpayload: Replace majority of timer drivers with a generic one 2016-10-17 22:43:37 +02:00
cbmem_console.c
hid.c
keyboard.c libpayload: drivers/keyboard: report power button events 2017-01-24 09:33:48 +01:00
nvram.c libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
options.c
pci.c
speaker.c