diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2018-10-16 13:39:13 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-10-16 13:39:13 -0700 |
commit | 78e9e3713fec5b12fbb35d12c565212de3b64cf5 (patch) | |
tree | fc1728ebc913c024147f49fdb4a037a9062fc266 | |
parent | 7cd7e9417c625f256ac44686906193348c1bf633 (diff) | |
parent | 4a915f892eb44545e25349be42d1dc2cba0495fd (diff) |
Merge "usb: dwc3-msm: Flush bus_vote_w work on pm_suspend and freeze"
-rw-r--r-- | drivers/usb/dwc3/dwc3-msm.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index 1e23738e20b3..5f547793eb9f 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -4059,10 +4059,13 @@ static int dwc3_msm_pm_suspend(struct device *dev) } ret = dwc3_msm_suspend(mdwc, false); - if (!ret) - atomic_set(&mdwc->pm_suspended, 1); + if (ret) + return ret; - return ret; + flush_work(&mdwc->bus_vote_w); + atomic_set(&mdwc->pm_suspended, 1); + + return 0; } static int dwc3_msm_pm_freeze(struct device *dev) @@ -4091,10 +4094,13 @@ static int dwc3_msm_pm_freeze(struct device *dev) mdwc->hs_phy->flags &= ~PHY_HOST_MODE; ret = dwc3_msm_suspend(mdwc, true); - if (!ret) - atomic_set(&mdwc->pm_suspended, 1); + if (ret) + return ret; - return ret; + flush_work(&mdwc->bus_vote_w); + atomic_set(&mdwc->pm_suspended, 1); + + return 0; } static int dwc3_msm_pm_resume(struct device *dev) |