aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/core/hub.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 4cfe32a16c37..2a5c2833de38 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -713,11 +713,18 @@ static void hub_restart(struct usb_hub *hub, int type)
713 } 713 }
714 714
715 /* Was the power session lost while we were suspended? */ 715 /* Was the power session lost while we were suspended? */
716 status = hub_port_status(hub, port1, &portstatus, &portchange); 716 switch (type) {
717 case HUB_RESET_RESUME:
718 portstatus = 0;
719 portchange = USB_PORT_STAT_C_CONNECTION;
720 break;
717 721
718 /* If the device is gone, khubd will handle it later */ 722 case HUB_RESET:
719 if (status == 0 && !(portstatus & USB_PORT_STAT_CONNECTION)) 723 case HUB_RESUME:
720 continue; 724 status = hub_port_status(hub, port1,
725 &portstatus, &portchange);
726 break;
727 }
721 728
722 /* For "USB_PERSIST"-enabled children we must 729 /* For "USB_PERSIST"-enabled children we must
723 * mark the child device for reset-resume and 730 * mark the child device for reset-resume and