Skip to content

Commit

Permalink
usb: dwc3: clear 'res_trans_idx' as soon as it becomes invalid
Browse files Browse the repository at this point in the history
Transfer resource index is cleared in hardware when XFERCOMPLETE
event is generated, so clear the driver's res_trans_idx variable
immediately after that event is received. The upcoming hibernation
patches depend on this change.

Signed-off-by: Paul Zimmerman <paulz@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
  • Loading branch information
Paul Zimmerman authored and Felipe Balbi committed Mar 2, 2012
1 parent 249a456 commit c2df85c
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
1 change: 1 addition & 0 deletions drivers/usb/dwc3/ep0.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,7 @@ static void dwc3_ep0_xfer_complete(struct dwc3 *dwc,
struct dwc3_ep *dep = dwc->eps[event->endpoint_number];

dep->flags &= ~DWC3_EP_BUSY;
dep->res_trans_idx = 0;
dwc->setup_packet_pending = false;

switch (dwc->ep0state) {
Expand Down
6 changes: 3 additions & 3 deletions drivers/usb/dwc3/gadget.c
Original file line number Diff line number Diff line change
Expand Up @@ -1628,10 +1628,8 @@ static void dwc3_endpoint_transfer_complete(struct dwc3 *dwc,
status = -ECONNRESET;

clean_busy = dwc3_cleanup_done_reqs(dwc, dep, event, status);
if (clean_busy) {
if (clean_busy)
dep->flags &= ~DWC3_EP_BUSY;
dep->res_trans_idx = 0;
}

/*
* WORKAROUND: This is the 2nd half of U1/U2 -> U0 workaround.
Expand Down Expand Up @@ -1736,6 +1734,8 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,

switch (event->endpoint_event) {
case DWC3_DEPEVT_XFERCOMPLETE:
dep->res_trans_idx = 0;

if (usb_endpoint_xfer_isoc(dep->desc)) {
dev_dbg(dwc->dev, "%s is an Isochronous endpoint\n",
dep->name);
Expand Down

0 comments on commit c2df85c

Please sign in to comment.