STRUCT XILINX_DMA_DEVICE(9)
π
struct xilinx_dma_device β the kernel API manual moment π
okay so bestie, welcome to the glow-up of struct xilinx_dma_device(9) β¨ this is from the Kernel API Manual and honestly it's giving "main character energy" for the Xilinx DMA driver. stay with me, it's literally just one struct and a whole lot of friends in SEE ALSO π
πΈ NAME πΈ
struct xilinx_dma_device β the DMA device structure, no cap π¦
β¨ SYNOPSIS β¨
here's the whole thing, copied exactly because we do not play with code around here π«Ά
struct xilinx_dma_device {
void __iomem *regs;
struct device *dev;
struct dma_device common;
struct xilinx_dma_chan *chan[XILINX_MCDMA_MAX_CHANS_PER_DEVICE];
u32 flush_on_fsync;
bool ext_addr;
struct platform_device *pdev;
const struct xilinx_dma_config *dma_config;
struct clk *axi_clk;
struct clk *tx_clk;
struct clk *txs_clk;
struct clk *rx_clk;
struct clk *rxs_clk;
u32 s2mm_chan_id;
u32 mm2s_chan_id;
u32 max_buffer_len;
bool has_axistream_connected;
};
π§ Members π§
okay so this is the part where we go member by member and it's lowkey the best part π
regsβ the I/O mapped base address. like, where it all lives in memory β¨devβ the Device Structure. the whole device vibe check πcommonβ the DMA device structure. the shared, communal one πchanβ the driver specific DMA channel. type isstruct xilinx_dma_chan *and it's an array ofXILINX_MCDMA_MAX_CHANS_PER_DEVICE, iykyk πflush_on_fsyncβ Flush on frame sync. au32, doing exactly what it says π¦ext_addrβ indicates 64 bit addressing is supported by the dma device. icon behavior ngl πpdevβ Platform device structure pointer.struct platform_device *, slay πΈdma_configβ the DMA config structure. it's aconst struct xilinx_dma_config *πaxi_clkβ DMA Axi4-lite interace clock. (yes, "interace" β that's the original spelling, we don't touch it π)tx_clkβ DMA mm2s clock β°txs_clkβ DMA mm2s stream clock. the stream-y one π«rx_clkβ DMA s2mm clock β°rxs_clkβ DMA s2mm stream clock. also stream-y π«s2mm_chan_idβ DMA s2mm channel identifier. au32π₯mm2s_chan_idβ DMA mm2s channel identifier. also au32π₯max_buffer_lenβ Max buffer length.u32. don't exceed it, bestie πhas_axistream_connectedβ AXI DMA connected to AXI Stream IP. abool, and yes it's a whole mood π§
π SEE ALSO π
buckle up, this list is long and it ate π every single one, in order, fr fr:
Kernel file ./drivers/dma/xilinx/xilinx_dma.c struct xilinx_vdma_desc_hw(9), struct xilinx_axidma_desc_hw(9), struct xilinx_aximcdma_desc_hw(9), struct xilinx_cdma_desc_hw(9), struct xilinx_vdma_tx_segment(9), struct xilinx_axidma_tx_segment(9), struct xilinx_aximcdma_tx_segment(9), struct xilinx_cdma_tx_segment(9), struct xilinx_dma_tx_descriptor(9), struct xilinx_dma_chan(9), enum xdma_ip_type(9), vdma_desc_write_64(9), xilinx_dma_get_metadata_ptr(9), xilinx_vdma_alloc_tx_segment(9), xilinx_cdma_alloc_tx_segment(9), xilinx_axidma_alloc_tx_segment(9), xilinx_aximcdma_alloc_tx_segment(9), xilinx_dma_free_tx_segment(9), xilinx_mcdma_free_tx_segment(9), xilinx_cdma_free_tx_segment(9), xilinx_vdma_free_tx_segment(9), 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), 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), xilinx_dma_stop_transfer(9), xilinx_cdma_stop_transfer(9), 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), xilinx_dma_device_config(9), xilinx_dma_complete_descriptor(9), xilinx_dma_reset(9), xilinx_dma_chan_reset(9), xilinx_mcdma_irq_handler(9), xilinx_dma_irq_handler(9), append_desc_queue(9), xilinx_dma_tx_submit(9), 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), xilinx_dma_terminate_all(9), xilinx_vdma_channel_set_config(9), xilinx_dma_chan_remove(9), xilinx_dma_chan_probe(9), xilinx_dma_child_probe(9), of_dma_xilinx_xlate(9), xilinx_dma_probe(9), xilinx_dma_remove(9)
bestie that's a lot of references and every single one is staying, periodt π
π cute little sign-off π
this whole page comes from ./drivers/dma/xilinx, dated October 2026, and it's filed under struct xilinx_dma_device(9) in the Kernel API Manual. obsessed. go read the source, ily, bye π«Άπβ¨
π¦ 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