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

Reply via email to