|
@@ -1189,8 +1189,13 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
|
|
if (status == 0) {
|
|
if (status == 0) {
|
|
status = usb_suspend_device(udev, msg);
|
|
status = usb_suspend_device(udev, msg);
|
|
|
|
|
|
- /* Again, ignore errors during system sleep transitions */
|
|
|
|
- if (!PMSG_IS_AUTO(msg))
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Ignore errors from non-root-hub devices during
|
|
|
|
+ * system sleep transitions. For the most part,
|
|
|
|
+ * these devices should go to low power anyway when
|
|
|
|
+ * the entire bus is suspended.
|
|
|
|
+ */
|
|
|
|
+ if (udev->parent && !PMSG_IS_AUTO(msg))
|
|
status = 0;
|
|
status = 0;
|
|
}
|
|
}
|
|
|
|
|