Messages in this thread | | | From | Roger Quadros <> | Subject | [PATCH 0/2] usb: dwc3: gadget: Fix erratic interrupts and delayed enumeration | Date | Wed, 16 Mar 2016 15:05:49 +0200 |
| |
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
| |