summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijayavardhan Vennapusa <vvreddy@codeaurora.org>2016-09-01 12:05:50 +0530
committerVijayavardhan Vennapusa <vvreddy@codeaurora.org>2016-11-25 11:42:01 +0530
commite0d9b5dae90fe4ef7aa82dcb00a895f2aebf36a8 (patch)
tree26e7702519fdd23e7a1484b8d4ce91334ca19760
parentbee274711e8d2ddb97fb1e80a18f295e9f97fa87 (diff)
USB: dwc3-msm: Fix issue related to error recovery for ERRATIC ERROR
If ERRATIC event irq is triggered by USB controller, it requires to perform block reset USB controller as recovery mechanism as per SNPS data book. Error recovery happens through allowing USB entering low power mode and exit low power mode. We might see recovery failing as check for P3 state is true as part of suspend and results in USB not entering low power mode. Fix this issue by allowing USB enter low power mode in case of recovery flag mdwc->in_restart set. CRs-Fixed: 1060831 Change-Id: I41f935da3d4af1dd04eb4b3299e36a0f528633da Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
-rw-r--r--drivers/usb/dwc3/dwc3-msm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c
index add035269ae7..ff0564cfe065 100644
--- a/drivers/usb/dwc3/dwc3-msm.c
+++ b/drivers/usb/dwc3/dwc3-msm.c
@@ -1781,7 +1781,7 @@ static int dwc3_msm_prepare_suspend(struct dwc3_msm *mdwc)
u32 reg = 0;
if ((mdwc->in_host_mode || mdwc->vbus_active)
- && dwc3_msm_is_superspeed(mdwc)) {
+ && dwc3_msm_is_superspeed(mdwc) && !mdwc->in_restart) {
if (!atomic_read(&mdwc->in_p3)) {
dev_err(mdwc->dev, "Not in P3,aborting LPM sequence\n");
return -EBUSY;