summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/dwc3/dwc3-msm.c18
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)