USB: ci13xxx: Prime EP with first active TD if queue not empty
Driver is using hardware queuing feature to add TDs to an active
or primed EP QH at runtime. If enqueue requires priming the EP
again then there is requirement to first check for any pending
TDs with ACTIVE bit set. If there is one then prime EP with that
TD instead of the new one. Driver is currently checking only first
TD in software list but there is possibility that first few TDs
were completed by hardware but they were not reclaimed by software
yet due to interrupt moderation or ITC.
Not checking the whole list may cause software to skip one TD
which will never be completed and stay at the head of list causing
data stall.
Change-Id: Ic64023a383c2a1f7dd438b6a254b4fad10efac3a
Signed-off-by:
Manu Gautam <mgautam@codeaurora.org>
Loading
Please register or sign in to comment