xilinx_dma_child_probe(9)
π 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
- 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