usb: dwc3: Set number of TRBs to 1 for endless request
When USB is disconnected we dont reset the num_trbs field of a
request before giving it back to the respective function. When
this request is re-used it will have an incorrect num_trb value.
For f_qdss HW path we use 1 endless request and allocate 1 TRB to
accommodate this request. This request is freed only during an USB
composition switch. Doing an USB plug-out/plug-in during an active
bam2bam session would result in erroneously incrementing the num_trbs
value when the transfer is resumed. When this request is dequeued
during a qdss_close we would increment dequeue pointer in accordance
with this incorrect num_trbs value. This leads to dequeue pointer
going beyond enqueue pointer and thus the subsequent ep_queue fails
due to this mismatch. Fix this by always setting the num_trb field
to 1 for requests going through qdss HW path.
Change-Id: Ibddad6c8fdd67b42d12752ae3ead73d20110c290
Signed-off-by:
Elson Roy Serrao <eserrao@codeaurora.org>
Loading
Please register or sign in to comment