diff options
author | Bin Meng <bmeng.cn@gmail.com> | 2017-07-19 21:51:18 +0800 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2017-07-28 23:34:35 +0200 |
commit | 81060bb1c02abb242b73f118ce297dbe483a40f7 (patch) | |
tree | ec60059dabf6f06a96c70bd424bedbd0fb2e960d /common | |
parent | 9ca1b4bab10d8b3a5dbbbd98df46ce75159222b8 (diff) | |
download | u-boot-81060bb1c02abb242b73f118ce297dbe483a40f7.tar.gz |
usb: hub: Call usb_update_hub_device() after hub descriptor is fetched
After fetching hub descriptor, we need to call USB uclass operation
update_hub_device() to notify HCD to do some preparation work.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/usb_hub.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/common/usb_hub.c b/common/usb_hub.c index bbb1155089..70bc6e2931 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -789,6 +789,17 @@ static int usb_hub_configure(struct usb_device *dev) #ifdef CONFIG_DM_USB /* + * Update USB host controller's internal representation of this hub + * after the hub descriptor is fetched. + */ + ret = usb_update_hub_device(dev); + if (ret < 0 && ret != -ENOSYS) { + debug("%s: failed to update hub device for HCD (%x)\n", + __func__, ret); + return ret; + } + + /* * A maximum of seven tiers are allowed in a USB topology, and the * root hub occupies the first tier. The last tier ends with a normal * USB device. USB 3.0 hubs use a 20-bit field called 'route string' |