dwc2_hcd_start_xfer_ddma(9)
π NAME π
dwc2_hcd_start_xfer_ddma β starts a transfer in Descriptor DMA mode β¨
Okay so real talk, this is a function from the Kernel API Manual, and it's lowkey the "get this transfer moving" moment for Descriptor DMA. Let's get into it π«Ά
πΈ SYNOPSIS πΈ
void dwc2_hcd_start_xfer_ddma (struct dwc2_hsotg *hsotg , struct dwc2_qh
*qh );
Yes bestie it's void, and yes we'll talk about the RETURN section in a sec. Justβ¦ stay with me π
π ARGUMENTS π
hsotgβ the HCD state structure for the DWC OTG controller π like, the whole controller's situation lives in hereqhβ the QH to init π this is the one getting set up, main character energy fr
β RETURN β
0 if successful, negative error code otherwise.
That's what the page says, and that's what I'm telling you. Periodt π
π¦ DESCRIPTION π¦
So here's the vibe check on what this actually does β¨
For Control and Bulk endpoints, it initializes the descriptor list and starts the transfer. Simple, clean, iconic π
For Interrupt and Isochronous endpoints, it initializes the descriptor list and then updates FrameList, marking the appropriate entries as active. Very much a "set it up, then flag it live" sitch π
For Isochronous endpoints, the starting descriptor index is calculated based on the scheduled frame β but only on the first transfer descriptor within a session π― Then the transfer is started via enabling the channel. Slay.
And also for Isochronous endpoints: the channel is not halted on the XferComplete interrupt, so it stays assigned to the endpoint (QH) until the session is done π§ Not me pointing out that this is the deliberate behaviour, okay, it's just how it works.
π₯ SEE ALSO π₯
- Kernel file
./drivers/usb/dwc2/hcd_ddma.cβdwc2_hcd_qh_init_ddma(9),dwc2_hcd_qh_free_ddma(9),dwc2_hcd_complete_xfer_ddma(9)π
And that's the whole page cutie π this came out of the ./drivers/usb/dwc2 corner of the kernel, dated October 2026 β go off, Descriptor DMA, no cap πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms