提交 5a9191ff 编写于 作者: A Alan Stern 提交者: Linus Torvalds

[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: NAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 28120be5
......@@ -1432,7 +1432,8 @@ static int usb_generic_suspend(struct device *dev, pm_message_t message)
mark_quiesced(intf);
} else {
// 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;
}
return status;
......@@ -1460,8 +1461,10 @@ static int usb_generic_resume(struct device *dev)
}
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;
}
intf = to_usb_interface(dev);
driver = to_usb_driver(dev->driver);
......@@ -1481,7 +1484,7 @@ static int usb_generic_resume(struct device *dev)
mark_quiesced(intf);
}
} else
dev_warn(dev, "no %s?\n", "resume");
dev_warn(dev, "no resume for driver %s?\n", driver->name);
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册