Re: Support for USBD_FORCE_SHORT_XFER for xhci

Nat Sloss <[email protected]>
Newsgroups gmane.os.netbsd.devel.kernel
Message-ID <[email protected]>
On Sun, 31 Aug 2025 20:42:39 sc dying wrote:

> If an error occurs on sending zero-length packet, or transfer is
> stopped on ZLP, normal transfer and ZLP generates transfer event each.
> xhci_event_transfer() would call usb_transfer_complete for same xfer,
> actually, second event will be ignored since first event dequeues
> xfer->ux_pipe->up_queue and event handler simply quits if pipe
> is empty.
> 
> Does this ZLP always need to be sent when FORCE_SHORT is set?
> Should be only when !isread && FORCE_SHORT && (len % wMaxPacketSize) == 0 ?

I've found though testing that the ZLP is required for each xfer.  This is 
easily seen with urtwn(4) that will otherwize timeount on transmit if the ZLP 
is only sent per wMaxPacketSize.

I know it is done that way for ehci (which has no probems with urtwn(4)) but 
xhci seems to behave differently.


Best regards,

Nat
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.