Merge "usb: dwc: Release wakeup source if vbus_active is cleared"

This commit is contained in:
qctecmdr 2021-12-23 02:30:45 -08:00 • committed by Gerrit - the friendly Code Review server
commit 6cd9ac9ba6

View file

@ -2324,6 +2324,10 @@ static void dwc3_restart_usb_work(struct work_struct *w)
dwc->err_evt_seen = false;
flush_delayed_work(&mdwc->sm_work);
/* see comments in dwc3_msm_suspend */
if (!mdwc->vbus_active)
pm_relax(mdwc->dev);
}
/*
@ -3375,6 +3379,12 @@ static int dwc3_msm_suspend(struct dwc3_msm *mdwc, bool force_power_collapse,
dwc3_msm_update_bus_bw(mdwc, BUS_VOTE_NONE);
/*
* If in_restart is marked as true from restart work do not release the wakeup
* active source as it can lead the device to enter system suspend (if usb is
* the last holding the wakeup active source). If actual cable disconnect happens
* while in_restart is true wakeup active source will be released from restart work.
*/
if (!mdwc->in_restart) {
/*
* release wakeup source with timeout to defer system suspend to