From e0a3a8b537e7b48860b63288c761fa764184850a Mon Sep 17 00:00:00 2001 From: Vijayavardhan Vennapusa Date: Fri, 25 Nov 2016 11:25:35 +0530 Subject: USB: dwc3-msm: clear in_restart flag always in restart work Currenlty driver is clearing mdwc->inrestart flag only if vbus_active is high only after making sure USB entered low power mode. There is a chance cable is disconnected during execution of restart work and endup not clearing mdwc->in_restart flag if disconnect happens. Hence fix this by clearing mdwc->in_restart flag always irrespective of vbus_active set or cleared. Change-Id: I15fa1893c798946c7514bf8cb23773b5784e671e Signed-off-by: Vijayavardhan Vennapusa --- drivers/usb/dwc3/dwc3-msm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'drivers/usb') diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index add035269ae7..5b8bf13863da 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -1465,11 +1465,10 @@ static void dwc3_restart_usb_work(struct work_struct *w) pm_runtime_suspend(mdwc->dev); } + mdwc->in_restart = false; /* Force reconnect only if cable is still connected */ - if (mdwc->vbus_active) { - mdwc->in_restart = false; + if (mdwc->vbus_active) dwc3_resume_work(&mdwc->resume_work); - } dwc->err_evt_seen = false; flush_delayed_work(&mdwc->sm_work); -- cgit v1.2.3