On resume from suspend a failure with -ESHUTDOWN is returned from ohci_bus_resume, and the usb is inoperable. This happens because ohci_suspend disables the master interrupt and sets an hcd flag to say that the hw is no longer accessible. Calling ohci_resume reverts the steps taken on ohci_suspend and flags the HW as "accessible" again, resume completes successfully and usb is working after a suspend/resume sequence. While we are here, remove setting device power_state, as this is no longer needed and scheduled for removal. Signed-off-by: Axel Haslam <ahaslam@xxxxxxxxxxxx> --- drivers/usb/host/ohci-da8xx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c index b3de8bc..a598bd8 100644 --- a/drivers/usb/host/ohci-da8xx.c +++ b/drivers/usb/host/ohci-da8xx.c @@ -340,8 +340,7 @@ static int ohci_da8xx_resume(struct platform_device *dev) if (ret) return ret; - dev->dev.power.power_state = PMSG_ON; - usb_hcd_resume_root_hub(hcd); + ohci_resume(hcd, false); return 0; } -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html