On Sat, Aug 25, 2012 at 08:20:46AM +0530, Pratyush Anand wrote: > On 8/24/2012 7:01 PM, Pratyush Anand wrote: > >On 8/24/2012 5:10 PM, Pratyush ANAND wrote: > >>If xfernotready is received and there is no request in request_list then > >>PENDING flag must be set, so that next request in ep queue is executed. > >> > > > >Although, I did not encounter PENDING in isoc testing. But, if somebody > >hits it, then only this patch might not be sufficient. One might need > >following along with it. > > > >diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c > >index 8d3b2d5..c08aa39 100644 > >--- a/drivers/usb/dwc3/gadget.c > >+++ b/drivers/usb/dwc3/gadget.c > >@@ -1104,6 +1104,16 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep > >*dep, struct dwc3_request *req) > > if (dep->flags & DWC3_EP_PENDING_REQUEST) { > > int ret; > > > >+ /* > >+ * If xfornotready is already elapsed and it is a case > >+ * of isoc transfer, then issue END TRANSFER, so that > >+ * you can receive xfernotready again and can have > >+ * notion of current microframe. > >+ */ > >+ if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) { > >+ dwc3_stop_active_transfer(dwc, dep->number); > >+ return 0; > >+ } > > ret = __dwc3_gadget_kick_transfer(dep, 0, true); > > if (ret && ret != -EBUSY) { > > struct dwc3 *dwc = dep->dwc; > > > > > >If you agree, then discard this patch only. I will send another one to > >handle pending isoc request. > > > > Discard 5/5. I will send another. All the others are fine then ? I'll start queueing once v3.6-rc4 is out. cheers -- balbi
Attachment:
signature.asc
Description: Digital signature