Re: [PATCH v2] usb: dwc3: gadget: Don't delay End Transfer on delayed_status

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 19, 2022, Wesley Cheng wrote:
> 
> 
> On 10/18/2022 7:39 PM, Thinh Nguyen wrote:
> > The gadget driver may wait on the request completion when it sets the
> > USB_GADGET_DELAYED_STATUS. Make sure that the End Transfer command can
> > go through if the dwc->delayed_status is set so that the request can
> > complete. When the delayed_status is set, the Setup packet is already
> > processed, and the next phase should be either Data or Status. It's
> > unlikely that the host would cancel the control transfer and send a new
> > Setup packet during End Transfer command. But if that's the case, we can
> > try again when ep0state returns to EP0_SETUP_PHASE.
> 
> Hi Thinh,
> 
> In the scenario you saw your issue in, was there something else that
> triggered the EP0 stall and restart to bring back EP0 to SETUP state? (which
> will do the retry)  Just wanted to make sure, because there were situations
> that I had to add that sequence for the endxfer retry to happen. (ie in the
> disconnect interrupt)
> 

My scenario happens while the device is connected and not related to
soft-disconnect. It doesn't involve cancellation of the control
transfer.

The scenario you mentioned in your change is related to soft-disconnect
right?

	"Ocasionally, a host may abort the current SETUP transaction, by
	issuing a subsequent SETUP token.  In those situations, it would
	result in an endxfer timeout as well."

I added a check to retry End Transfer to account for the scenario you
reported.

Thanks,
Thinh




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux