[U-Boot] USB: XHCI xhci bulk ring code is wrong in xhci_bulk_tx()
Aaron Williams
awilliams at marvell.com
Wed Jul 10 08:05:41 UTC 2019
Hi all,
I am debugging a problem where sometimes our hardware (DW implementation) responds with a short TX event (13) during a bulk transfer when two TRBs are involved. In this case, a USB Ethernet driver is receiving data and the buffer address and size causes it to cross a 64K boundary. Due to this, two TRBs are needed to handle the request.
What I am seeing is that two event responses are generated. The first event points to the first TRB with a short packet completion code indicating that only 16 bytes have transferred. The second event indicates that all of the data was successfully transferred (completion code = 1).
The problem I am seeing is that the code only checks for a single event response. In this case it only processes the short packet response and sets the status to 0 and it ignores the second event.
What it should do is if it sees a short tx event it should continue checking events.
Any comments on this?
-Aaron
More information about the U-Boot
mailing list