diff mbox

[U-Boot,v5,03/15] usb: legacy_hub_port_reset() check and propagate usb_set_port_feature() errors

Message ID 1431259827-8109-4-git-send-email-hdegoede@redhat.com
State Accepted
Delegated to: Simon Glass
Headers show

Commit Message

Hans de Goede May 10, 2015, 12:10 p.m. UTC
Actually check for usb_set_port_feature() errors and propagate these if they
happen.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 common/usb_hub.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Marek Vasut May 10, 2015, 4:13 p.m. UTC | #1
On Sunday, May 10, 2015 at 02:10:15 PM, Hans de Goede wrote:
> Actually check for usb_set_port_feature() errors and propagate these if
> they happen.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Acked-by: Marek Vasut <marex@denx.de>

Best regards,
Marek Vasut
Simon Glass May 11, 2015, 10:36 p.m. UTC | #2
On 10 May 2015 at 10:13, Marek Vasut <marex@denx.de> wrote:
> On Sunday, May 10, 2015 at 02:10:15 PM, Hans de Goede wrote:
>> Actually check for usb_set_port_feature() errors and propagate these if
>> they happen.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>
> Acked-by: Marek Vasut <marex@denx.de>

Applied to u-boot-dm, thanks!
diff mbox

Patch

diff --git a/common/usb_hub.c b/common/usb_hub.c
index c9be530..7aac220 100644
--- a/common/usb_hub.c
+++ b/common/usb_hub.c
@@ -157,7 +157,7 @@  static inline char *portspeed(int portstatus)
 int legacy_hub_port_reset(struct usb_device *dev, int port,
 			unsigned short *portstat)
 {
-	int tries;
+	int err, tries;
 	ALLOC_CACHE_ALIGN_BUFFER(struct usb_port_status, portsts, 1);
 	unsigned short portstatus, portchange;
 
@@ -168,8 +168,10 @@  int legacy_hub_port_reset(struct usb_device *dev, int port,
 	debug("%s: resetting port %d...\n", __func__, port + 1);
 #endif
 	for (tries = 0; tries < MAX_TRIES; tries++) {
+		err = usb_set_port_feature(dev, port + 1, USB_PORT_FEAT_RESET);
+		if (err < 0)
+			return err;
 
-		usb_set_port_feature(dev, port + 1, USB_PORT_FEAT_RESET);
 		mdelay(200);
 
 		if (usb_get_port_status(dev, port + 1, portsts) < 0) {