tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Support for USBD_FORCE_SHORT_XFER for xhci



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


Home | Main Index | Thread Index | Old Index