|
@@ -783,6 +783,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
|
|
|
req->trb = trb;
|
|
|
req->trb_dma = dwc3_trb_dma_offset(dep, trb);
|
|
|
req->first_trb_index = dep->trb_enqueue;
|
|
|
+ dep->queued_requests++;
|
|
|
}
|
|
|
|
|
|
dwc3_ep_inc_enq(dep);
|
|
@@ -833,8 +834,6 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
|
|
|
|
|
|
trb->ctrl |= DWC3_TRB_CTRL_HWO;
|
|
|
|
|
|
- dep->queued_requests++;
|
|
|
-
|
|
|
trace_dwc3_prepare_trb(dep, trb);
|
|
|
}
|
|
|
|
|
@@ -1861,8 +1860,11 @@ static int __dwc3_cleanup_done_trbs(struct dwc3 *dwc, struct dwc3_ep *dep,
|
|
|
unsigned int s_pkt = 0;
|
|
|
unsigned int trb_status;
|
|
|
|
|
|
- dep->queued_requests--;
|
|
|
dwc3_ep_inc_deq(dep);
|
|
|
+
|
|
|
+ if (req->trb == trb)
|
|
|
+ dep->queued_requests--;
|
|
|
+
|
|
|
trace_dwc3_complete_trb(dep, trb);
|
|
|
|
|
|
/*
|