Skip to content

Commit e6ac4bb

Browse files
Mian Yousaf KaukabFelipe Balbi
authored andcommitted
usb: gadget: net2280: reset sequence number on ep enable
Sequence number can be out of sync if endpoint is disabled after some data transfers and enabled again. Reset it to stay in sync with host. Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
1 parent 25d40ee commit e6ac4bb

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/usb/gadget/udc/net2280.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ static char *type_string(u8 bmAttributes)
123123
#define valid_bit cpu_to_le32(BIT(VALID_BIT))
124124
#define dma_done_ie cpu_to_le32(BIT(DMA_DONE_INTERRUPT_ENABLE))
125125

126+
static void ep_clear_seqnum(struct net2280_ep *ep);
127+
126128
/*-------------------------------------------------------------------------*/
127129
static inline void enable_pciirqenb(struct net2280_ep *ep)
128130
{
@@ -256,6 +258,8 @@ net2280_enable(struct usb_ep *_ep, const struct usb_endpoint_descriptor *desc)
256258
BIT(CLEAR_NAK_OUT_PACKETS_MODE), &ep->regs->ep_rsp);
257259
}
258260

261+
if (dev->quirks & PLX_SUPERSPEED)
262+
ep_clear_seqnum(ep);
259263
writel(tmp, &ep->cfg->ep_cfg);
260264

261265
/* enable irqs */

0 commit comments

Comments
 (0)