On Mon, 6 Jul 2015, Oliver Neukum wrote: > 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? I think you'll find the most recent patch to hub.c (commit fb6d1f7df5d2 by Robert Schlabbach) does this, although in a slightly different way. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html