
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. --