Sorry if this is already reported. msm72k_dequeue() is not resetting ep->last when ep->req = 0. All transfers after that will fail because usb_ept_queue_xfer() can't set ep->req correctly. This patch fixes it.
Toshi diff --git a/drivers/usb/gadget/msm72k_udc.c b/drivers/usb/gadget/msm72k_udc.c index 78397b3..73c5d90 100644 --- a/drivers/usb/gadget/msm72k_udc.c +++ b/drivers/usb/gadget/msm72k_udc.c @@ -1568,8 +1568,11 @@ static int msm72k_dequeue(struct usb_ep *_ep, struct usb_ /* remove from linked list */ if (prev) prev->next = cur->next; - else + else { ep->req = cur->next; + if (ep->req == 0) + ep->last = 0; + } prev = cur; /* break from loop */ cur = NULL; -- unsubscribe: android-kernel+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-kernel To unsubscribe from this group, send email to android-kernel+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.