Re: [PATCH 5/5] usb/dwc3: fix no request in request_list when start isoc

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

 



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


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

  Powered by Linux