Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 370af6a3 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: dwc3: Resume parent before resuming child device while in host mode"

parents 871acc52 89e628cc
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -2009,12 +2009,13 @@ static int dwc3_resume(struct device *dev)
	/* Check if platform glue driver handling PM, if not then handle here */
	if (!dwc3_notify_event(dwc, DWC3_CORE_PM_RESUME_EVENT, 0)) {
		/*
		 * If the core was in host mode during suspend, then set the
		 * runtime PM state as active to reflect actual state of device
		 * which is now out of LPM. This allows runtime_suspend later.
		 * If the core was in host mode during suspend, then perform
		 * runtime resume which will do resume and set the runtime PM
		 * state as active to reflect actual state of device which
		 * is now out of LPM. This allows runtime_suspend later.
		 */
		if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST)
			goto runtime_set_active;
			pm_runtime_resume(dev);

		return 0;
	}
@@ -2025,11 +2026,6 @@ static int dwc3_resume(struct device *dev)
	if (ret)
		return ret;

runtime_set_active:
	pm_runtime_disable(dev);
	pm_runtime_set_active(dev);
	pm_runtime_enable(dev);

	return 0;
}
#endif /* CONFIG_PM_SLEEP */
+3 −4
Original line number Diff line number Diff line
@@ -436,10 +436,9 @@ static int xhci_plat_resume(struct device *dev)
	if (ret)
		return ret;

	ret = xhci_resume(xhci, false);
	pm_runtime_disable(dev);
	pm_runtime_set_active(dev);
	pm_runtime_enable(dev);
	ret = pm_runtime_resume(dev);
	if (ret)
		dev_err(dev, "failed to resume xhci-plat (%d)\n", ret);

	return ret;
}