xilinx_dma_child_probe(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… xilinx_dma_child_probe(9) β€” the Kernel API Manual, bestie edition πŸŽ€

okay so this is a page from the Kernel API Manual and honestly? it's giving "one small function, huge responsibility." no cap. let's get into it.


✨ NAME ✨

xilinx_dma_child_probe β€” per-child-node probe, aka the glow-up moment where one child node in the device tree gets its whole life together. 🌱

the way it works: it grabs the number of dma-channels for each child node straight from the device-tree, and then initializes all of the channels. every single one. she doesn't leave anybody on read. πŸ’…


🌸 SYNOPSIS 🌸

int xilinx_dma_child_probe(struct xilinx_dma_device *xdev, struct device_node *node);

πŸ¦‹ ARGUMENTS πŸ¦‹

  • xdev β€” the driver-specific device structure. this is the main character of the whole driver, fr.
  • node β€” the device node. the little device-tree child we're doing the whole probe for. πŸŽ€

⭐ RETURN ⭐

bestie... there's literally nothing here. 😭 the original page documents no return value at all β€” no descriptors, no error codes, nothing. so i'm not gonna invent one for you (that would be lying and lying is not the vibe). the section exists, it's just empty. iconic in a mysterious way tbh. πŸ™ˆ

the return value is undocumented in the source page β€” don't @ me, i'm just the messenger 🫢

πŸ”₯ SEE ALSO πŸ”₯

this list is long long. buckle up, we're going shopping. πŸ›οΈ

the source file itself:

  • Kernel file ./drivers/dma/xilinx/xilinx_dma.c

the descriptor hardware structs (the hardware glowed up into code):

  • struct xilinx_vdma_desc_hw(9)
  • struct xilinx_axidma_desc_hw(9)
  • struct xilinx_aximcdma_desc_hw(9)
  • struct xilinx_cdma_desc_hw(9)

the tx segment structs (the sequel era):

  • struct xilinx_vdma_tx_segment(9)
  • struct xilinx_axidma_tx_segment(9)
  • struct xilinx_aximcdma_tx_segment(9)
  • struct xilinx_cdma_tx_segment(9)

the big structural icons:

  • struct xilinx_dma_tx_descriptor(9)
  • struct xilinx_dma_chan(9)
  • enum xdma_ip_type(9)
  • struct xilinx_dma_device(9)

writes & metadata:

  • vdma_desc_write_64(9)
  • xilinx_dma_get_metadata_ptr(9)

segment allocation era (the getting-ready montage):

  • xilinx_vdma_alloc_tx_segment(9)
  • xilinx_cdma_alloc_tx_segment(9)
  • xilinx_axidma_alloc_tx_segment(9)
  • xilinx_aximcdma_alloc_tx_segment(9)

segment freeing era (the letting-go arc):

  • xilinx_dma_free_tx_segment(9)
  • xilinx_mcdma_free_tx_segment(9)
  • xilinx_cdma_free_tx_segment(9)
  • xilinx_vdma_free_tx_segment(9)

descriptor lifecycle, a whole journey:

  • xilinx_dma_alloc_tx_descriptor(9)
  • xilinx_dma_free_tx_descriptor(9)
  • xilinx_dma_free_desc_list(9)
  • xilinx_dma_free_descriptors(9)
  • xilinx_dma_free_chan_resources(9)

status & housekeeping:

  • xilinx_dma_get_residue(9)
  • xilinx_dma_chan_handle_cyclic(9)
  • xilinx_dma_chan_desc_cleanup(9)
  • xilinx_dma_do_tasklet(9)
  • xilinx_dma_alloc_chan_resources(9)
  • xilinx_dma_calc_copysize(9)
  • xilinx_dma_tx_status(9)

stopping things (respectfully):

  • xilinx_dma_stop_transfer(9)
  • xilinx_cdma_stop_transfer(9)

starting things (the main event):

  • xilinx_dma_start(9)
  • xilinx_vdma_start_transfer(9)
  • xilinx_cdma_start_transfer(9)
  • xilinx_dma_start_transfer(9)
  • xilinx_mcdma_start_transfer(9)
  • xilinx_dma_issue_pending(9)

config, completion, reset (the self-care routine):

  • xilinx_dma_device_config(9)
  • xilinx_dma_complete_descriptor(9)
  • xilinx_dma_reset(9)
  • xilinx_dma_chan_reset(9)

irq handlers, the night shift:

  • xilinx_mcdma_irq_handler(9)
  • xilinx_dma_irq_handler(9)

queue & submit:

  • append_desc_queue(9)
  • xilinx_dma_tx_submit(9)

prep functions (the pre-game):

  • xilinx_vdma_dma_prep_interleaved(9)
  • xilinx_cdma_prep_memcpy(9)
  • xilinx_dma_prep_peripheral_dma_vec(9)
  • xilinx_dma_prep_slave_sg(9)
  • xilinx_dma_prep_dma_cyclic(9)
  • xilinx_mcdma_prep_slave_sg(9)

teardown & siblings:

  • xilinx_dma_terminate_all(9)
  • xilinx_vdma_channel_set_config(9)
  • xilinx_dma_chan_remove(9)
  • xilinx_dma_chan_probe(9)
  • of_dma_xilinx_xlate(9)
  • xilinx_dma_probe(9)
  • xilinx_dma_remove(9)

and that's the whole page, bestie β€” every single reference accounted for, nobody left behind πŸ’–

<h2>🌷 the cute little sign-off 🌷</h2>

this fine piece of documentation lives in ./drivers/dma/xilinx, and the version/date stamped on it is October 2026. so yeah, she's from the future, she's iconic, and she knows it. πŸ‘‘βœ¨

thanks for reading my ted talk, go initialize some channels, and remember: probe responsibly. πŸ¦‹πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from