STRUCT ZYNQMP_DMA_CHAN(9)
π struct zynqmp_dma_chan(9) β the Kernel API Manual glow-up π
okay bestie, buckle up β this is the page for struct zynqmp_dma_chan, aka the driver-specific DMA channel structure β¨ (yeah that whole thing is the NAME section, we're doing this properly π)
β¨ SYNOPSIS β¨
struct zynqmp_dma_chan {
struct zynqmp_dma_device *zdev;
void __iomem *regs;
spinlock_t lock;
struct list_head pending_list;
struct list_head free_list;
struct list_head active_list;
struct zynqmp_dma_desc_sw *sw_desc_pool;
struct list_head done_list;
struct dma_chan common;
void *desc_pool_v;
dma_addr_t desc_pool_p;
u32 desc_free_cnt;
struct device *dev;
int irq;
bool is_dmacoherent;
struct tasklet_struct tasklet;
bool idle;
size_t desc_size;
bool err;
u32 bus_width;
u32 src_burst_len;
u32 dst_burst_len;
u32 irq_offset;
};
like, that's the whole struct, no crumbs left behind π«Ά
πΈ Members πΈ
not me about to go through every single field, because every single field matters π€π
zdevβ the driver-specific device structure πregsβ control registers offset β¨lockβ the descriptor operation lock (lock it down, bestie π)pending_listβ descriptors waiting π°οΈfree_listβ descriptors free π¦active_listβ descriptors active π₯sw_desc_poolβ the SW descriptor pool πdone_listβ complete descriptors βcommonβ the DMA common channel πdesc_pool_vβ statically allocated descriptor base πΈdesc_pool_pβ physical allocated descriptor base π§desc_free_cntβ descriptor available count π’devβ the dma device πirqβ channel IRQ β‘is_dmacoherentβ tells whether dma operations are coherent or not π (the vibe check for coherency, if you will)taskletβ cleanup work after irq π§Ήidleβ channel status; π (yes, with the semicolon, we don't edit the source material okay π)desc_sizeβ size of the low level descriptor πerrβ channel has errors πbus_widthβ bus width π£οΈsrc_burst_lenβ source burst length πdst_burst_lenβ dest burst length πirq_offsetβ irq register offset π
π SEE ALSO π
the whole friend group, fr fr β from the kernel file ./drivers/dma/xilinx/zynqmp_dma.c, struct zynqmp_dma_desc_ll(9), struct zynqmp_dma_desc_sw(9), struct zynqmp_dma_device(9), 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_tx_submit(9), zynqmp_dma_get_descriptor(9), zynqmp_dma_free_descriptor(9), zynqmp_dma_free_desc_list(9), zynqmp_dma_alloc_chan_resources(9), zynqmp_dma_start(9), zynqmp_dma_handle_ovfl_int(9), zynqmp_dma_device_config(9), zynqmp_dma_start_transfer(9), zynqmp_dma_chan_desc_cleanup(9), zynqmp_dma_complete_descriptor(9), zynqmp_dma_issue_pending(9), zynqmp_dma_free_descriptors(9), zynqmp_dma_free_chan_resources(9), zynqmp_dma_reset(9), zynqmp_dma_irq_handler(9), zynqmp_dma_do_tasklet(9), zynqmp_dma_device_terminate_all(9), zynqmp_dma_synchronize(9), zynqmp_dma_prep_memcpy(9), zynqmp_dma_chan_remove(9), zynqmp_dma_chan_probe(9), of_zynqmp_dma_xlate(9), zynqmp_dma_suspend(9), zynqmp_dma_resume(9), zynqmp_dma_runtime_suspend(9), zynqmp_dma_runtime_resume(9), zynqmp_dma_probe(9), zynqmp_dma_remove(9)
like hello?? that's a whole squad ππ«Ά
okay that's the page!! mwah π this iconic little number lives in ./drivers/dma/xilinx, it's dated October 2026, and it came to you straight from the Kernel API Manual β periodt, no cap, go read some kernel source 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