STRUCT ZYNQMP_DMA_DESC_SW(9)
π
struct zynqmp_dma_desc_sw(9)
okay so this is straight out of the Kernel API Manual bestie, and we're doing a full vibe check on struct zynqmp_dma_desc_sw β literally the per-transaction structure, the main character of this whole page π
β¨ NAME β¨
struct zynqmp_dma_desc_sw β Per Transaction structure πΈ
π¦ SYNOPSIS π¦
struct zynqmp_dma_desc_sw {
u64 src;
u64 dst;
u32 len;
struct list_head node;
struct list_head tx_list;
struct dma_async_tx_descriptor async_tx;
struct zynqmp_dma_desc_ll *src_v;
dma_addr_t src_p;
struct zynqmp_dma_desc_ll *dst_v;
dma_addr_t dst_p;
};
π Members π
like, every single field, no skips, we're not doing that here π
srcβ the source address for simple mode dma πdstβ the destination address for simple mode dma π―lenβ the transfer length for simple mode dma πnodeβ the node in the channel descriptor list πtx_listβ the list head for the current transfer πasync_txβ the async transaction descriptor β‘src_vβ virtual address of the src descriptor π§src_pβ physical address of the src descriptor π«Άdst_vβ virtual address of the dst descriptor π§dst_pβ physical address of the dst descriptor π«Ά
π SEE ALSO π
the way this page links out to *everything*β¦ it's giving "who's who of the zynqmp_dma file" π and yes, it lives in the Kernel file ./drivers/dma/xilinx/zynqmp_dma.c π
the structs, the icons of the family:
struct zynqmp_dma_desc_ll(9)struct zynqmp_dma_chan(9)struct zynqmp_dma_device(9)
descriptor setup & config era:
zynqmp_dma_update_desc_to_ctrlr(9)zynqmp_dma_desc_config_eod(9)zynqmp_dma_config_sg_ll_desc(9)zynqmp_dma_init(9)zynqmp_dma_device_config(9)
submitting & getting & freeing (the whole cycle, slay):
zynqmp_dma_tx_submit(9)zynqmp_dma_get_descriptor(9)zynqmp_dma_free_descriptor(9)zynqmp_dma_free_desc_list(9)zynqmp_dma_free_descriptors(9)zynqmp_dma_issue_pending(9)zynqmp_dma_prep_memcpy(9)
resources & starting & stopping:
zynqmp_dma_alloc_chan_resources(9)zynqmp_dma_free_chan_resources(9)zynqmp_dma_start(9)zynqmp_dma_start_transfer(9)zynqmp_dma_reset(9)zynqmp_dma_device_terminate_all(9)zynqmp_dma_synchronize(9)
interrupts & cleanup (lowkey the busy part):
zynqmp_dma_handle_ovfl_int(9)zynqmp_dma_irq_handler(9)zynqmp_dma_do_tasklet(9)zynqmp_dma_chan_desc_cleanup(9)zynqmp_dma_complete_descriptor(9)
probe/remove & the xlate moment:
zynqmp_dma_chan_probe(9)zynqmp_dma_chan_remove(9)zynqmp_dma_probe(9)zynqmp_dma_remove(9)of_zynqmp_dma_xlate(9)
power management besties (napping is self-care):
zynqmp_dma_suspend(9)zynqmp_dma_resume(9)zynqmp_dma_runtime_suspend(9)zynqmp_dma_runtime_resume(9)
fr fr go read them all, iykyk π
and that's the page!! π brought to you by the fine people over at ./drivers/dma/xilinx, dated October 2026 β go drink some water and go touch some DMA descriptors, bestie π«Άπβ¨
π¦ 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