aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci-ring.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/xhci-ring.c')
-rw-r--r--drivers/usb/host/xhci-ring.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 85d7e8f2085e..b520b37c0f36 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -578,6 +578,8 @@ static void handle_stopped_endpoint(struct xhci_hcd *xhci,
578 /* Otherwise just ring the doorbell to restart the ring */ 578 /* Otherwise just ring the doorbell to restart the ring */
579 ring_ep_doorbell(xhci, slot_id, ep_index); 579 ring_ep_doorbell(xhci, slot_id, ep_index);
580 } 580 }
581 ep->stopped_td = NULL;
582 ep->stopped_trb = NULL;
581 583
582 /* 584 /*
583 * Drop the lock and complete the URBs in the cancelled TD list. 585 * Drop the lock and complete the URBs in the cancelled TD list.
@@ -1061,8 +1063,13 @@ static void xhci_cleanup_halted_endpoint(struct xhci_hcd *xhci,
1061 ep->ep_state |= EP_HALTED; 1063 ep->ep_state |= EP_HALTED;
1062 ep->stopped_td = td; 1064 ep->stopped_td = td;
1063 ep->stopped_trb = event_trb; 1065 ep->stopped_trb = event_trb;
1066
1064 xhci_queue_reset_ep(xhci, slot_id, ep_index); 1067 xhci_queue_reset_ep(xhci, slot_id, ep_index);
1065 xhci_cleanup_stalled_ring(xhci, td->urb->dev, ep_index); 1068 xhci_cleanup_stalled_ring(xhci, td->urb->dev, ep_index);
1069
1070 ep->stopped_td = NULL;
1071 ep->stopped_trb = NULL;
1072
1066 xhci_ring_cmd_db(xhci); 1073 xhci_ring_cmd_db(xhci);
1067} 1074}
1068 1075