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) | |
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 bbb11550896..70bc6e29311 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' | 
