Hi,
there was an old patch from Sarah:
https://bugzilla.kernel.org/show_bug.cgi?id=41752
drivers/usb/core/hub.c | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
--- a/drivers/usb/core/hub.c
+++ a/drivers/usb/core/hub.c
@@ -2033,6 +2033,8 @@ static unsigned hub_is_wusb(struct usb_hub *hub)
#define HUB_LONG_RESET_TIME 200
#define HUB_RESET_TIMEOUT 500
+static int hub_port_warm_reset(struct usb_hub *hub, int port);
+
static int hub_port_wait_reset(struct usb_hub *hub, int port1,
struct usb_device *udev, unsigned int delay)
{
@@ -2052,8 +2054,16 @@ static int hub_port_wait_reset(struct usb_hub *hub, int
port1,
return ret;
/* Device went away? */
- if (!(portstatus & USB_PORT_STAT_CONNECTION))
+ if (!(portstatus & USB_PORT_STAT_CONNECTION)) {
+ if (hub_is_superspeed(hub->hdev) &&
+ (portstatus & USB_PORT_STAT_LINK_STATE)
+ == USB_SS_PORT_LS_SS_INACTIVE) {
+ dev_dbg(hub->intfdev, "warm reset port %d\n",
+ port1);
+ return hub_port_warm_reset(hub, port1);
+ }
return -ENOTCONN;
+ }
/* bomb out completely if the connection bounced */
if ((portchange & USB_PORT_STAT_C_CONNECTION))
--
As the bug has been reopened I need to ask, have we lost a patch
or what is happening?
Regards
Oliver
--
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