aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3/gadget.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/dwc3/gadget.c')
-rw-r--r--drivers/usb/dwc3/gadget.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 0a6deeaf337..6704a52c9f1 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1756,6 +1756,22 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
1756 1756
1757 switch (speed) { 1757 switch (speed) {
1758 case DWC3_DCFG_SUPERSPEED: 1758 case DWC3_DCFG_SUPERSPEED:
1759 /*
1760 * WORKAROUND: DWC3 revisions <1.90a have an issue which
1761 * would cause a missing USB3 Reset event.
1762 *
1763 * In such situations, we should force a USB3 Reset
1764 * event by calling our dwc3_gadget_reset_interrupt()
1765 * routine.
1766 *
1767 * Refers to:
1768 *
1769 * STAR#9000483510: RTL: SS : USB3 reset event may
1770 * not be generated always when the link enters poll
1771 */
1772 if (dwc->revision < DWC3_REVISION_190A)
1773 dwc3_gadget_reset_interrupt(dwc);
1774
1759 dwc3_gadget_ep0_desc.wMaxPacketSize = cpu_to_le16(512); 1775 dwc3_gadget_ep0_desc.wMaxPacketSize = cpu_to_le16(512);
1760 dwc->gadget.ep0->maxpacket = 512; 1776 dwc->gadget.ep0->maxpacket = 512;
1761 dwc->gadget.speed = USB_SPEED_SUPER; 1777 dwc->gadget.speed = USB_SPEED_SUPER;