[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