summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2017-07-19 13:51:18 (GMT)
committerMarek Vasut <marex@denx.de>2017-07-28 21:34:35 (GMT)
commit81060bb1c02abb242b73f118ce297dbe483a40f7 (patch)
treeec60059dabf6f06a96c70bd424bedbd0fb2e960d /common
parent9ca1b4bab10d8b3a5dbbbd98df46ce75159222b8 (diff)
downloadu-boot-fsl-qoriq-81060bb1c02abb242b73f118ce297dbe483a40f7.tar.xz
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.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/common/usb_hub.c b/common/usb_hub.c
index bbb1155..70bc6e2 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'