dwc2_hcd_complete_xfer_ddma(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… dwc2_hcd_complete_xfer_ddma(9) πŸ’…

okay so bestie, welcome to the Kernel API Manual β€” today’s main character is dwc2_hcd_complete_xfer_ddma(9), and she is lowkey doing important work. 🫢


🌸 NAME 🌸

okay so dwc2_hcd_complete_xfer_ddma scans the descriptor list, updates URB's status, and calls the completion routine for the URB if it's done. She’s called from interrupt handlers, bestie β€” interrupt-handler energy fr fr. πŸ˜­πŸ’–


✨ SYNOPSIS ✨

void dwc2_hcd_complete_xfer_ddma (struct dwc2_hsotg *hsotg , struct dwc2_host_chan *chan , int chnum , enum dwc2_halt_status halt_status );

πŸŽ€ ARGUMENTS πŸŽ€

  • hsotg β€” the HCD state structure for the DWC OTG controller. that’s the whole state-structure vibe πŸ‘‘
  • chan β€” the Host channel the transfer is completed on. yep, that channel πŸ’…
  • chnum β€” index of Host channel registers. literally the register index, no cap ✨
  • halt_status β€” reason the channel is being halted, or just XferComplete for isochronous transfers. keeping it real πŸ¦‹

πŸ¦‹ DESCRIPTION πŸ¦‹

Bestie, she releases the channel to be used by other transfers β€” sharing is caring, periodt. πŸ’–

In case of Isochronous endpoint, the channel is not halted until the end of the session, i.e. until the QTD list is empty. 🌈

If a periodic channel is released, the FrameList is updated accordingly. πŸ“‹βœ¨

She also calls transaction selection routines to activate pending transfers β€” activating pending transfers is her little side quest, and she ate. πŸ”₯πŸ‘‘


πŸ’œ SEE ALSO πŸ’œ

Kernel file ./drivers/usb/dwc2/hcd_ddma.c β€” yes bestie, that’s the spot 🧚


Signing off from source/version ./drivers/usb/dwc2, dated October 2026 β€” mwah πŸ’‹, and yes, this page is still dwc2_hcd_complete_xfer_ddma(9) πŸ’–πŸŽ€

πŸ“¦ where this page comes from