diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index 3cd9af2638fc..a3aed8d87ddc 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -1196,11 +1196,7 @@ static int usb_resume_both(struct usb_device *udev) /* We can't progagate beyond the USB subsystem, * so if a root hub's controller is suspended * then we're stuck. */ - if (udev->dev.parent->power.power_state.event != - PM_EVENT_ON) - status = -EHOSTUNREACH; - else - status = usb_resume_device(udev); + status = usb_resume_device(udev); } } else { diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index 3df538539b48..5254c50086a8 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -965,19 +965,9 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags) else switch (hcd->state) { case HC_STATE_RUNNING: case HC_STATE_RESUMING: -doit: list_add_tail (&urb->urb_list, &ep->urb_list); status = 0; break; - case HC_STATE_SUSPENDED: - /* HC upstream links (register access, wakeup signaling) can work - * even when the downstream links (and DMA etc) are quiesced; let - * usbcore talk to the root hub. - */ - if (hcd->self.controller->power.power_state.event == PM_EVENT_ON - && urb->dev->parent == NULL) - goto doit; - /* FALL THROUGH */ default: status = -ESHUTDOWN; break;