[U-Boot] [PATCH] usb: gadget: ci_udc: implement usb_ep_ops dequeue callback

Peng Fan b51431 at freescale.com
Fri Aug 28 02:05:36 CEST 2015


Hi Stephen,
On Thu, Aug 27, 2015 at 10:06:14AM -0600, Stephen Warren wrote:
>On 08/27/2015 05:08 AM, Marek Vasut wrote:
>>On Thursday, August 27, 2015 at 01:00:50 PM, Peng Fan wrote:
>>>Implement endpoint dequeue callback function.
>>>
>>>Without this function, uboot will hang when executing fastboot comamnd.
>>>See following flow:
>>>"fastboot_tx_write_str->fastboot_tx_write->usb_ep_dequeue->ep->ops->dequeue
>>>" without implement ci_udc dequeue function, ep->ops->dequeue is NULL, then
>>>uboot will hang.
>>>
>>>Tested on mx6qsabresd board with fastboot enabled.
>
>>>diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
>
>>>+static int ci_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req)
>
>>>+	if (ci_req->req.status == -EINPROGRESS) {
>>>+		ci_req->req.status = -ECONNRESET;
>>>+		if (ci_req->req.complete)
>>>+			ci_req->req.complete(_ep, _req);
>>>+	}
>
>Is there no need to reprogram the HW to abort the transfer?

I checked linux udc driver drivers/usb/gadget/udc/fsl_qe_udc.c
qe_ep_dequeue->done->usb_gadget_giveback_request->"req->complete(ep, req)"
I did not see code to reprogram the HW to abort the transfer.

Regards,
Peng.
-- 


More information about the U-Boot mailing list