xilinx_dpdm..._prep_cyclic(9)
π xilinx_dpdma_chan_prep_cyclic(9) π
okay so bestie, welcome to the Kernel API Manual β¨ β this is the page for xilinx_dpdma_chan_prep_cyclic, and honestly it's giving "small function, big job" energy. Let's get into it π«Ά
β¨ NAME β¨
xilinx_dpdma_chan_prep_cyclic β Prepare a cyclic dma descriptor π
π SYNOPSIS π
struct dma_async_tx_descriptor * xilinx_dpdma_chan_prep_cyclic (struct
xilinx_dpdma_chan *chan , dma_addr_t buf_addr , size_t buf_len , size_t
period_len , unsigned long flags );
like literally, that signature is the whole vibe check. struct pointer out, five args in, no notes π
π¦ ARGUMENTS π¦
chanβ the DPDMA channel, your main character πbuf_addrβ buffer address, aka where the actual data livesbuf_lenβ buffer length, how much of it we're working withperiod_lenβ number of periods π (yes bestie, cyclic means it loops β that's the whole point)flagsβ the tx flags argument that gets passed in to the prepare function
πΈ DESCRIPTION πΈ
so basically this one prepares a tx descriptor, and ngl it's doing a lot under the hood β it includes the internal software/hardware descriptors for the given cyclic transaction π§
like, it's not just one descriptor, it's the whole little squad of them for your cyclic transfer. team effort, fr fr π₯
β RETURN β
on success you get a dma async tx descriptor back π and if it doesn't work out? NULL. that's it, that's the mood π
π SEE ALSO π
kernel file ./drivers/dma/xilinx/xilinx_dpdma.c plus this whole bestie list:
struct xilinx_dpdma_hw_desc(9)struct xilinx_dpdma_sw_desc(9)struct xilinx_dpdma_tx_desc(9)struct xilinx_dpdma_chan(9)struct xilinx_dpdma_device(9)xilinx_dpdma_sw_desc_set_dma_addrs(9)xilinx_dpdma_chan_alloc_sw_desc(9)xilinx_dpdma_chan_free_sw_desc(9)xilinx_dpdma_chan_dump_tx_desc(9)xilinx_dpdma_chan_alloc_tx_desc(9)xilinx_dpdma_chan_free_tx_desc(9)xilinx_dpdma_chan_prep_interleaved_dma(9)xilinx_dpdma_chan_enable(9)xilinx_dpdma_chan_disable(9)xilinx_dpdma_chan_pause(9)xilinx_dpdma_chan_unpause(9)xilinx_dpdma_chan_queue_transfer(9)xilinx_dpdma_chan_ostand(9)xilinx_dpdma_chan_notify_no_ostand(9)xilinx_dpdma_chan_wait_no_ostand(9)xilinx_dpdma_chan_poll_no_ostand(9)xilinx_dpdma_chan_stop(9)xilinx_dpdma_chan_done_irq(9)xilinx_dpdma_chan_vsync_irq(9)xilinx_dpdma_chan_err(9)xilinx_dpdma_chan_handle_err(9)xilinx_dpdma_alloc_chan_resources(9)xilinx_dpdma_free_chan_resources(9)xilinx_dpdma_terminate_all(9)xilinx_dpdma_synchronize(9)xilinx_dpdma_err(9)xilinx_dpdma_handle_err_irq(9)xilinx_dpdma_enable_irq(9)xilinx_dpdma_disable_irq(9)xilinx_dpdma_chan_err_task(9)
like, go read them, iykyk ππ
ok that's the whole page bestie, no gatekeeping here π«Ά go build something iconic π
signed off from ./drivers/dma/xilinx, dated October 2026, page xilinx_dpdm..._prep_cyclic(9) β periodt π
β¨
π¦ 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