[PATCH 0/2] usb: dwc3: gadget: Fix erratic interrupts and delayed enumeration

From: Roger Quadros
Date: Wed Mar 16 2016 - 09:06:46 EST


Hi,

The existing workaround (for STAR#9000525659) of forcing
DEVSPD to SUPER_SPEED for HIGH_SPEED ports is causing
another side effect which causes erratic interrupts and delayed gadget
enumeration of upto 2 seconds.

Work around the run/stop issue by detecting if
it happened using debug LTSSM state and issuing
soft reset to the device controller when changing RUN_STOP
from 0 to 1.

We apply the workaround only if PRTCAP is DEVICE mode
as we don't yet support this workaround in OTG mode.

Use USB RESET event as exit condition for workaround.

cheers,
-roger

Roger Quadros (2):
usb: dwc3: core: Introduce dwc3_device_reinit()
usb: dwc3: gadget: usb: dwc3: run/stop metastability workaround

drivers/usb/dwc3/core.c | 142 +++++++++++++++++++++++++------------
drivers/usb/dwc3/core.h | 4 ++
drivers/usb/dwc3/gadget.c | 175 +++++++++++++++++++++++++++++++++++++---------
3 files changed, 246 insertions(+), 75 deletions(-)

--
2.5.0