driver usb: optimize pm resume time, do resume in runtime_resume

Change-Id: I89ddf31061653767387fd0745eeaaecadfc7fefd
This commit is contained in:
hlb194802
2024-01-26 03:46:40 +00:00
committed by Han Gao
parent b76b15d078
commit 9d3e776a62

View File

@@ -488,25 +488,25 @@ static int __maybe_unused xhci_plat_suspend(struct device *dev)
* xhci_suspend() needs `do_wakeup` to know whether host is allowed
* to do wakeup during suspend.
*/
return xhci_suspend(xhci, device_may_wakeup(dev));
ret = xhci_suspend(xhci, device_may_wakeup(dev));
if (!ret) {
pm_runtime_disable(dev);
pm_runtime_set_suspended(dev);
}
return ret;
}
static int __maybe_unused xhci_plat_resume(struct device *dev)
{
struct usb_hcd *hcd = dev_get_drvdata(dev);
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
int ret;
ret = xhci_priv_resume_quirk(hcd);
if (ret)
return ret;
ret = xhci_resume(xhci, 0);
if (ret)
return ret;
pm_runtime_disable(dev);
pm_runtime_set_active(dev);
/* call xhci_suspend in xhci_plat_runtime_suspend */
pm_runtime_enable(dev);
return 0;