return ret;
}
+ /* Set the controller as wakeup capable */
+ device_set_wakeup_capable(&pdev->dev, true);
+
hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev));
if (!hcd)
return -ENOMEM;
#if IS_ENABLED(CONFIG_USB_DWC3_OF_SIMPLE)
/* Inform dwc3 driver about the device wakeup capability */
- if (device_may_wakeup(dev))
+ if (device_may_wakeup(&hcd->self.root_hub->dev)) {
+ enable_irq_wake(hcd->irq);
dwc3_host_wakeup_capable(dev, true);
- else
+ } else {
dwc3_host_wakeup_capable(dev, false);
+ }
#endif
/*
struct usb_hcd *hcd = dev_get_drvdata(dev);
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+ if (device_may_wakeup(&hcd->self.root_hub->dev))
+ disable_irq_wake(hcd->irq);
+
return xhci_resume(xhci, 0);
}