dwc2_queue_transaction(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ dwc2_queue_transaction ✨

okay bestie, welcome to the dwc2_queue_transaction(9) page from the Kernel API Manual πŸ’… this one's a little kernel function that tries to queue up ONE single transaction request β€” just one! β€” for a host channel that's tied to either a periodic or a non-periodic transfer. that's the whole vibe. πŸŽ€


🌸 NAME 🌸

dwc2_queue_transaction β€” attempts to queue a single transaction request for a host channel associated with either a periodic or non-periodic transfer πŸ¦‹


✨ SYNOPSIS ✨

int dwc2_queue_transaction (struct dwc2_hsotg *hsotg , struct
dwc2_host_chan *chan , u16 fifo_dwords_avail );

πŸ’– ARGUMENTS πŸ’–

  • hsotg β€” the HCD state structure 🫢 like, the main character state blob
  • chan β€” host channel descriptor associated with either a periodic or a non-periodic transfer
  • fifo_dwords_avail β€” number of DWORDs available in the periodic Tx FIFO for periodic transfers, or the non-periodic Tx FIFO for non-periodic transfers πŸ“ (yes, it's a different FIFO depending on your transfer type, keep up bestie)

⭐ RETURN ⭐

  • 1 β€” a request got queued, and more requests may be needed to complete the transfer πŸ‘‘ (there's more work to do, slay)
  • 0 β€” no more requests are required for this transfer, we're done here periodt
  • -1 β€” there is insufficient space in the Tx FIFO 😭 the vibes are not immaculate, the FIFO said no

πŸ¦‹ DESCRIPTION πŸ¦‹

so this function assumes there is space available in the appropriate request queue. like, it's trusting you on that one, no cap. πŸ™ˆ

for an OUT transfer or a SETUP transaction in Slave mode, it checks whether space is available in the appropriate Tx FIFO. so it does an actual vibe check on the FIFO for those cases πŸ’…

⚠️ must be called with interrupt disabled AND spinlock held. both. not one, both. this is not optional and I am not joking around about it πŸ”₯

🌈 SEE ALSO 🌈

kernel file ./drivers/usb/dwc2/hcd.c and honestly the whole friend group:


okay that's the whole page, you ate that fr fr πŸ’œ this iconic little entry lives under ./drivers/usb/dwc2 and it's dated October 2026 β€” so yeah, mark your calendar bestie, and remember: interrupts off, spinlock held, and the FIFO's the one who decides. πŸ§šβ€β™€οΈβœ¨πŸ«Ά

πŸ“¦ where this page comes from