Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 303838
b: refs/heads/master
c: 07e7f47
h: refs/heads/master
v: v3
  • Loading branch information
Felipe Balbi committed Apr 11, 2012
1 parent a55e47d commit c3d1963
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1522d7034d739f2d348f4c544fe12ff9627c36a4
refs/heads/master: 07e7f47b6d8da3e290f90615c9a74dff0115709e
19 changes: 18 additions & 1 deletion trunk/drivers/usb/dwc3/gadget.c
Original file line number Diff line number Diff line change
Expand Up @@ -1356,7 +1356,24 @@ static int dwc3_gadget_start(struct usb_gadget *g,

reg = dwc3_readl(dwc->regs, DWC3_DCFG);
reg &= ~(DWC3_DCFG_SPEED_MASK);
reg |= dwc->maximum_speed;

/**
* WORKAROUND: DWC3 revision < 2.20a have an issue
* which would cause metastability state on Run/Stop
* bit if we try to force the IP to USB2-only mode.
*
* Because of that, we cannot configure the IP to any
* speed other than the SuperSpeed
*
* Refers to:
*
* STAR#9000525659: Clock Domain Crossing on DCTL in
* USB 2.0 Mode
*/
if (dwc->revision < DWC3_REVISION_220A)
reg |= DWC3_DCFG_SUPERSPEED;
else
reg |= dwc->maximum_speed;
dwc3_writel(dwc->regs, DWC3_DCFG, reg);

dwc->start_config_issued = false;
Expand Down

0 comments on commit c3d1963

Please sign in to comment.