>-----Original Message-----
>From: Sarah Sharp [mailto:[email protected]]
>Sent: Friday, January 10, 2014 12:44 AM
>To: Venkatesh Murthy, HemanthX
>Cc: Alan Stern; [email protected]; Nandibasappa, GirishX
>Subject: Re: [PATCH] usb: Skip U1/U2 LPM disable if device is disconnected.
>
>> Should hub_port_reset also be avoided in Inactive state.
>>
>> 7>[ 181.542976] hub 2-0:1.0: port 2 not reset yet, waiting 50ms
>> <7>[ 181.593907] hub 2-0:1.0: port 2 not reset yet, waiting 200ms
>> <7>[ 181.794881] hub 2-0:1.0: port 2 not reset yet, waiting 200ms
>> <7>[ 181.995826] hub 2-0:1.0: port 2 not reset yet, waiting 200ms
>> <7>[ 182.196746] hub 2-0:1.0: port 2 not reset yet, waiting 200ms
>> <7>[ 182.196766] hub 2-0:1.0: port_wait_reset: err = -16
>
>No, it cannot be avoided. The port will remain in the Inactive state unless
>the USB core issues a warm port reset on the port.
>
Yes agree, but I think the multiple loops can be avoided. With the below change
in hub_port_wait_reset around 5 secs is saved for disconnect detection.
@@ -2545,15 +2546,15 @@ static int hub_port_wait_reset(struct usb_hub *hub, int
port1,
port1, warm ? "warm " : "", delay);
}
- if ((portstatus & USB_PORT_STAT_RESET))
- return -EBUSY;
+ /* Device went away? */
+ if (!(portstatus & USB_PORT_STAT_CONNECTION))
+ return -ENOTCONN;
if (hub_port_warm_reset_required(hub, portstatus))
return -ENOTCONN;
- /* Device went away? */
- if (!(portstatus & USB_PORT_STAT_CONNECTION))
- return -ENOTCONN;
+ if ((portstatus & USB_PORT_STAT_RESET))
+ return -EBUSY;
I have been testing the above change along with [PATCH] usb: Skip U1/U2 LPM
disable if device is disconnected, and the results have been good.
Thanks
Hemanth
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html