|
@@ -375,19 +375,9 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
|
|
|
|
|
|
|
|
trace_dwc3_gadget_ep_cmd(dep, cmd, params, cmd_status);
|
|
trace_dwc3_gadget_ep_cmd(dep, cmd, params, cmd_status);
|
|
|
|
|
|
|
|
- if (ret == 0) {
|
|
|
|
|
- switch (DWC3_DEPCMD_CMD(cmd)) {
|
|
|
|
|
- case DWC3_DEPCMD_STARTTRANSFER:
|
|
|
|
|
- dep->flags |= DWC3_EP_TRANSFER_STARTED;
|
|
|
|
|
- dwc3_gadget_ep_get_transfer_index(dep);
|
|
|
|
|
- break;
|
|
|
|
|
- case DWC3_DEPCMD_ENDTRANSFER:
|
|
|
|
|
- dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
|
|
|
|
|
- break;
|
|
|
|
|
- default:
|
|
|
|
|
- /* nothing */
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (ret == 0 && DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_STARTTRANSFER) {
|
|
|
|
|
+ dep->flags |= DWC3_EP_TRANSFER_STARTED;
|
|
|
|
|
+ dwc3_gadget_ep_get_transfer_index(dep);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (unlikely(susphy)) {
|
|
if (unlikely(susphy)) {
|
|
@@ -2413,7 +2403,8 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
|
|
|
cmd = DEPEVT_PARAMETER_CMD(event->parameters);
|
|
cmd = DEPEVT_PARAMETER_CMD(event->parameters);
|
|
|
|
|
|
|
|
if (cmd == DWC3_DEPCMD_ENDTRANSFER) {
|
|
if (cmd == DWC3_DEPCMD_ENDTRANSFER) {
|
|
|
- dep->flags &= ~DWC3_EP_END_TRANSFER_PENDING;
|
|
|
|
|
|
|
+ dep->flags &= ~(DWC3_EP_END_TRANSFER_PENDING |
|
|
|
|
|
+ DWC3_EP_TRANSFER_STARTED);
|
|
|
dwc3_gadget_ep_cleanup_cancelled_requests(dep);
|
|
dwc3_gadget_ep_cleanup_cancelled_requests(dep);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|