diff options
| author | Hemant Kumar <hemantk@codeaurora.org> | 2015-03-06 17:30:03 -0800 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-22 11:07:09 -0700 |
| commit | a8028071dd84eea4a3c36eb972e0abac5d77696a (patch) | |
| tree | 61874cfcfc9e99adb3e433c72a41df4bd79674d5 /drivers/usb | |
| parent | 8d8d2bea771e1ecef2ea1cb136088e72053c9067 (diff) | |
usb: dwc3: gadget: Increase the link state change timeout value
After the device remote wake up some USB hosts are driving bus
resume for longer than 3 seconds. As a result link state change does
not happen within 3 seconds and remote wake up fails. In worst case
it is observed that usb host is driving bus resume for 8 seconds.
Hence increase the timeout value to 16 seconds.
CRs-Fixed: 803183
Change-Id: I1cbb29ccd2b4e264c032d7237efcfd87cef71942
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Diffstat (limited to 'drivers/usb')
| -rw-r--r-- | drivers/usb/dwc3/gadget.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 63f90080cb49..b63e9c0ab305 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1621,10 +1621,15 @@ static int dwc3_gadget_wakeup_int(struct dwc3 *dwc) spin_unlock_irqrestore(&dwc->lock, flags); enable_irq(dwc->irq); + + /* + * Have bigger value (16 sec) for timeout since some host PCs driving + * resume for very long time (e.g. 8 sec) + */ ret = wait_event_interruptible_timeout(dwc->wait_linkstate, (dwc->link_state < DWC3_LINK_STATE_U3) || (dwc->link_state == DWC3_LINK_STATE_SS_DIS), - msecs_to_jiffies(3000)); /* 3 seconds */ + msecs_to_jiffies(16000)); spin_lock_irqsave(&dwc->lock, flags); /* Disable link status change event */ |
