USB: ci13xxx: Avoid prime failure due to queueing un-initialized ZLP TD
Based on req.zero flag controller driver prepares zero length TD and
appends it when priming endpoint. If function driver dequeues the
request (before completion) then req->zptr flag is not cleared. Next
time when same usb_request is queued with short packet then ep_queue
routine ends up appending zero length TD to it which is not initialized
and may not have TERMINATE bit set. This results in EP prime failure.
Fix this by clearing and freeing any references of zero length TDs in
usb_request on ep_dequeue.
CRs-Fixed: 2058698
Change-Id: Ib5a2bd03dfa022b06fb923712e5379b014f410f3
Signed-off-by:
Arumuga Durai A <cadurai@codeaurora.org>
Loading
Please register or sign in to comment