diff options
author | Bin Meng <bmeng.cn@gmail.com> | 2017-09-18 06:40:46 -0700 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2017-10-01 16:32:54 +0200 |
commit | 061895fbe57d29f50bb3c6c8609d56a668d1387d (patch) | |
tree | c7b5c71ac0ce06d0c8f309bd4091d25a83b13d01 /common | |
parent | b90203526f2c5bcc05b4a65241ea226b7b9f52d0 (diff) |
usb: hub: Clear BH reset status change for a 3.0 hub
USB 3.0 hubs report bit[5] in the port status change response as BH
reset. The hub shall set the C_BH_PORT_RESET field for this port.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/usb_hub.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/common/usb_hub.c b/common/usb_hub.c index a9d21bca5e3..325d16dfc86 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -494,6 +494,12 @@ static int usb_scan_port(struct usb_device_scan *usb_scan) usb_clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_RESET); } + if ((portchange & USB_SS_PORT_STAT_C_BH_RESET) && + usb_hub_is_superspeed(dev)) { + debug("port %d BH reset change\n", i + 1); + usb_clear_port_feature(dev, i + 1, USB_SS_PORT_FEAT_C_BH_RESET); + } + /* A new USB device is ready at this point */ debug("devnum=%d port=%d: USB dev found\n", dev->devnum, i + 1); |