Skip to content

Commit

Permalink
[PATCH] remove duplicated resume path code
Browse files Browse the repository at this point in the history
This gets rid of some inconsistently duplicated logic to resume interfaces.
Similar code was in both finish_port_resume() and in usb_generic_resume().
Now there is just one copy of that code, accessed regardless of whether
CONFIG_USB_SUSPEND is enabled.  Fault handling is also more consistent.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
David Brownell authored and Greg Kroah-Hartman committed Oct 28, 2005
1 parent 390a8c3 commit dbc3887
Showing 1 changed file with 5 additions and 28 deletions.
33 changes: 5 additions & 28 deletions drivers/usb/core/hub.c
Original file line number Diff line number Diff line change
Expand Up @@ -1723,6 +1723,7 @@ static int finish_port_resume(struct usb_device *udev)
status);
else if (udev->actconfig) {
unsigned i;
int (*resume)(struct device *);

le16_to_cpus(&devstatus);
if (devstatus & (1 << USB_DEVICE_REMOTE_WAKEUP)) {
Expand All @@ -1741,35 +1742,11 @@ static int finish_port_resume(struct usb_device *udev)
}

/* resume interface drivers; if this is a hub, it
* resumes the child devices
* may have a child resume event to deal with soon
*/
for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) {
struct usb_interface *intf;
struct usb_driver *driver;

intf = udev->actconfig->interface[i];
if (is_active(intf))
continue;
if (!intf->dev.driver) {
/* FIXME maybe force to alt 0 */
continue;
}
driver = to_usb_driver(intf->dev.driver);

/* bus_rescan_devices() may rebind drivers */
if (!driver->resume)
continue;

/* can we do better than just logging errors? */
mark_active(intf);
status = driver->resume(intf);
if (status < 0) {
mark_quiesced(intf);
dev_dbg(&intf->dev,
"resume error %d\n",
status);
}
}
resume = udev->dev.bus->resume;
for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++)
(void) resume(&udev->actconfig->interface[i]->dev);
status = 0;

} else if (udev->devnum <= 0) {
Expand Down

0 comments on commit dbc3887

Please sign in to comment.