xilinx_dma_p...eral_dma_vec(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… xilinx_dma_p...eral_dma_vec(9) πŸŽ€

okay so bestie, welcome to the Kernel API Manual ✨ (yes the title got cut off with ... in the header, that's just how it is, we don't ask questions πŸ’€). Today's main character is xilinx_dma_prep_peripheral_dma_vec β€” the function that prepares descriptors for a DMA_SLAVE transaction, but make it vector-coded πŸ¦‹.


✨ NAME ✨

xilinx_dma_prep_peripheral_dma_vec β€” literally the glow-up that preps descriptors for a DMA_SLAVE transaction built out of DMA vectors. it's giving "get the descriptors ready before anything spicy happens" πŸ”₯


🌸 SYNOPSIS 🌸

struct dma_async_tx_descriptor * xilinx_dma_prep_peripheral_dma_vec
(struct dma_chan *dchan , const struct dma_vec *vecs , size_t nb , enum
dma_transfer_direction direction , unsigned long flags );

no cap, that's the whole signature β€” five args, one return, zero drama (well, okay, some drama, see RETURN below 😭).


πŸ¦‹ ARGUMENTS πŸ¦‹

okay so here's the cast of characters, and every single one of them matters:

  • dchan β€” the DMA channel. this is the main character of the function, the channel everything runs through πŸ’–
  • vecs β€” an array of DMA vectors that should be transferred. yes, plural, it's a whole vibe and a whole array ✨
  • nb β€” number of entries in vecs. bestie, please get this right, it's literally how many vectors there are πŸ™ˆ
  • direction β€” the DMA direction. the compass of the whole operation 🧭
  • flags β€” transfer ack flags. ack, like "yes I acknowledge" 🫢

πŸ‘‘ RETURN πŸ‘‘

  • Async transaction descriptor on success πŸŽ‰ icon behavior, we love to see it
  • NULL on failure πŸ’€ not so iconic, but at least it tells you
bestie FYI: NULL is not a descriptor. if you get NULL back, something in the descriptor-prep department said "no" 😭

πŸ”₯ SEE ALSO πŸ”₯

this list is long and it ATE, no crumbs. every single one, in the original order, because sequence is part of the slay πŸ’…:

Kernel file ./drivers/dma/xilinx/xilinx_dma.c, plus: 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), struct xilinx_dma_device(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_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)

like, that's the whole friend group and they're all invited to the function 🫢


and that's the tea, bestie πŸ“ this little gem lives in ./drivers/dma/xilinx, it's stamped October 2026, and it comes to you courtesy of the Kernel API Manual β€” go forth and prep those peripheral DMA vecs with main character energy πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from