USB: revert "don't lose disconnections during suspend"
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 1 Jul 2008 14:45:51 +0000 (10:45 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 21 Jul 2008 22:15:46 +0000 (15:15 -0700)
This reverts Alan's previous patch so that the recent Hub changes will
apply cleanly.  The above mentioned patch was needed for 2.6.26 to work
properly.

Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Lukas Hejtmanek <xhejtman@ics.muni.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hub.c

index 4cfe32a16c37fb689e8bab4796b6918a36728382..2a5c2833de38d8515a3cdcfdf438fdbb3335f571 100644 (file)
@@ -713,11 +713,18 @@ static void hub_restart(struct usb_hub *hub, int type)
                }
 
                /* Was the power session lost while we were suspended? */
-               status = hub_port_status(hub, port1, &portstatus, &portchange);
+               switch (type) {
+               case HUB_RESET_RESUME:
+                       portstatus = 0;
+                       portchange = USB_PORT_STAT_C_CONNECTION;
+                       break;
 
-               /* If the device is gone, khubd will handle it later */
-               if (status == 0 && !(portstatus & USB_PORT_STAT_CONNECTION))
-                       continue;
+               case HUB_RESET:
+               case HUB_RESUME:
+                       status = hub_port_status(hub, port1,
+                                       &portstatus, &portchange);
+                       break;
+               }
 
                /* For "USB_PERSIST"-enabled children we must
                 * mark the child device for reset-resume and