|
@@ -990,6 +990,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
|
|
DWC3_TRBCTL_CONTROL_DATA,
|
|
DWC3_TRBCTL_CONTROL_DATA,
|
|
true);
|
|
true);
|
|
|
|
|
|
|
|
+ req->trb = &dwc->ep0_trb[dep->trb_enqueue - 1];
|
|
|
|
+
|
|
/* Now prepare one extra TRB to align transfer size */
|
|
/* Now prepare one extra TRB to align transfer size */
|
|
dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr,
|
|
dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr,
|
|
maxpacket - rem,
|
|
maxpacket - rem,
|
|
@@ -1015,6 +1017,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
|
|
DWC3_TRBCTL_CONTROL_DATA,
|
|
DWC3_TRBCTL_CONTROL_DATA,
|
|
true);
|
|
true);
|
|
|
|
|
|
|
|
+ req->trb = &dwc->ep0_trb[dep->trb_enqueue - 1];
|
|
|
|
+
|
|
/* Now prepare one extra TRB to align transfer size */
|
|
/* Now prepare one extra TRB to align transfer size */
|
|
dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr,
|
|
dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr,
|
|
0, DWC3_TRBCTL_CONTROL_DATA,
|
|
0, DWC3_TRBCTL_CONTROL_DATA,
|
|
@@ -1029,6 +1033,9 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
|
|
dwc3_ep0_prepare_one_trb(dep, req->request.dma,
|
|
dwc3_ep0_prepare_one_trb(dep, req->request.dma,
|
|
req->request.length, DWC3_TRBCTL_CONTROL_DATA,
|
|
req->request.length, DWC3_TRBCTL_CONTROL_DATA,
|
|
false);
|
|
false);
|
|
|
|
+
|
|
|
|
+ req->trb = &dwc->ep0_trb[dep->trb_enqueue];
|
|
|
|
+
|
|
ret = dwc3_ep0_start_trans(dep);
|
|
ret = dwc3_ep0_start_trans(dep);
|
|
}
|
|
}
|
|
|
|
|