[U-Boot] [PATCH v3 6/7] USB: usb-hub: Add a weak function for resetting devices
Dan Murphy
dmurphy at ti.com
Wed Jul 17 22:16:06 CEST 2013
Add a __weak function that can be overridden to reset devices
attached to an ehci devices after the FEAT_POWER has been submitted
Signed-off-by: Dan Murphy <dmurphy at ti.com>
---
v3 - Modified location of the weak function - http://patchwork.ozlabs.org/patch/258229/
common/usb_hub.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/common/usb_hub.c b/common/usb_hub.c
index 774ba63..c655b75 100644
--- a/common/usb_hub.c
+++ b/common/usb_hub.c
@@ -62,6 +62,10 @@
static struct usb_hub_device hub_dev[USB_MAX_HUB];
static int usb_hub_index;
+__weak void usb_hub_reset_devices(int port)
+{
+ return;
+}
static int usb_get_hub_descriptor(struct usb_device *dev, void *data, int size)
{
@@ -444,6 +448,14 @@ static int usb_hub_configure(struct usb_device *dev)
"" : "no ");
usb_hub_power_on(hub);
+ /*
+ * Reset any devices that may be in a bad state when applying
+ * the power. This is a __weak function. Resettig of the devices
+ * should occur in the board file of the device.
+ */
+ for (i = 0; i < dev->maxchild; i++)
+ usb_hub_reset_devices(i + 1);
+
for (i = 0; i < dev->maxchild; i++) {
ALLOC_CACHE_ALIGN_BUFFER(struct usb_port_status, portsts, 1);
unsigned short portstatus, portchange;
--
1.7.9.5
More information about the U-Boot
mailing list