[PATCH] usbcore: allow suspend/resume even if drivers don't support it
This patch (as618) changes usbcore to prevent derailing the suspend/resume sequence when a USB driver doesn't include support for it. This is a workaround rather than a true fix; the core needs to be changed so that URB submissions from suspended drivers can be refused and outstanding URBs cancelled. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
28120be5d6
commit
5a9191ff68
|
@ -1432,7 +1432,8 @@ static int usb_generic_suspend(struct device *dev, pm_message_t message)
|
||||||
mark_quiesced(intf);
|
mark_quiesced(intf);
|
||||||
} else {
|
} else {
|
||||||
// FIXME else if there's no suspend method, disconnect...
|
// FIXME else if there's no suspend method, disconnect...
|
||||||
dev_warn(dev, "no %s?\n", "suspend");
|
dev_warn(dev, "no suspend for driver %s?\n", driver->name);
|
||||||
|
mark_quiesced(intf);
|
||||||
status = 0;
|
status = 0;
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
|
@ -1460,8 +1461,10 @@ static int usb_generic_resume(struct device *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((dev->driver == NULL) ||
|
if ((dev->driver == NULL) ||
|
||||||
(dev->driver_data == &usb_generic_driver_data))
|
(dev->driver_data == &usb_generic_driver_data)) {
|
||||||
|
dev->power.power_state.event = PM_EVENT_FREEZE;
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
intf = to_usb_interface(dev);
|
intf = to_usb_interface(dev);
|
||||||
driver = to_usb_driver(dev->driver);
|
driver = to_usb_driver(dev->driver);
|
||||||
|
@ -1481,7 +1484,7 @@ static int usb_generic_resume(struct device *dev)
|
||||||
mark_quiesced(intf);
|
mark_quiesced(intf);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
dev_warn(dev, "no %s?\n", "resume");
|
dev_warn(dev, "no resume for driver %s?\n", driver->name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue