Re: [PATCH] usb: xhci: Handle quirky SuperSpeed isoc error reporting by Etron HCs
From: Michał Pecio
Date: Fri Feb 28 2025 - 12:15:59 EST
On Fri, 28 Feb 2025 18:11:46 +0100, Michał Pecio wrote:
> What are your thoughts about killing error_mid_td completely and using
> a similar mechanism to deal with those final events?
>
> 1. The events would be taken care of.
>
> 2. It should be OK wrt DMA, because the HC has no reason to touch data
> buffers after an error. Short Packet is done this way and it works.
>
> 3. A remaining problem is that dequeue is advanced to end_trb too soon
> and "tail" of the TD could be overwritten. Already a problem with
> Short Packet and I think it can be solved by replacing most
> xhci_dequeue_td() calls with xhci_td_cleanup() and adding to
> handle_tx_event():
>
> ep_ring->dequeue = ep_trb;
> ep_ring->deq_seg = ep_seg;
Forgot to add:
4. Guaranteed low latency of error reporting.
5. Some annoying code for giving back 'error_mid_td' URBs under weird
corner cases that I recently spent a few hours writing could be thrown
out and handle_tx_event() would become a little simpler.