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

Reply via email to