Hi, Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> writes: > Hi Felipe, > > On 4/9/2018 4:28 AM, Felipe Balbi wrote: >> In case we get an event with status set to Missed Isoc, this means we >> have missed an isochronous interval and should issue End Transfer >> command and wait for the following XferNotReady. > > Why does DWC3 need to issue End Transfer if there are still queued requests? Without XferNotReady, we won't have a reliable way to know the uFrame number. Read the Isochronous programming sequence from your databook. >> @@ -2383,14 +2380,25 @@ static void dwc3_gadget_endpoint_transfer_in_progress(struct dwc3_ep *dep, >> { >> struct dwc3 *dwc = dep->dwc; >> unsigned status = 0; >> + bool stop = false; >> >> dwc3_gadget_endpoint_frame_from_event(dep, event); >> >> if (event->status & DEPEVT_STATUS_BUSERR) >> status = -ECONNRESET; >> >> + if (event->status & DEPEVT_STATUS_MISSED_ISOC) { >> + status = -ECONNRESET; > > Missed isoc shouldn't cause this error status or if it should return an > error status at all. Maybe the status can be -EXDEV, similar to the host > side (/Documentation/driver-api/usb/error-codes.rst). fair enough. I'll change to EXDEV -- balbi
Attachment:
signature.asc
Description: PGP signature