atc_prep_dma_cyclic(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… atc_prep_dma_cyclic β€” Kernel API Manual ✨

okay so bestie, this is the one that prepares a cyclic DMA transfer β€” like, the DMA goes round and round forever, no cap. It's an iconic little function and honestly it's giving main character energy in ./drivers/dma/at_hdmac.c. πŸ¦‹


🌸 SYNOPSIS 🌸

struct dma_async_tx_descriptor * atc_prep_dma_cyclic (struct dma_chan
*chan , dma_addr_t buf_addr , size_t buf_len , size_t period_len , enum
dma_transfer_direction direction , unsigned long flags );

like, yes, that's the whole signature, copy it exactly bestie, don't be weird about it πŸ’–


πŸŽ€ ARGUMENTS πŸŽ€

  • chan β€” the DMA channel you're prepping. this is your channel, the one you're setting up. 🫢
  • buf_addr β€” the physical DMA address where the buffer starts. physical, bestie, not the virtual one, ok? 😭
  • buf_len β€” total number of bytes for the entire buffer. the whole thing. periodt. ✨
  • period_len β€” number of bytes for each period. so like, the buffer gets chopped into periods of this size, iykyk. πŸŽ€
  • direction β€” transfer direction, to or from device. lowkey self-explanatory but we said it anyway πŸ’…
  • flags β€” tx descriptor status flags. the flags go here. yes, those flags. ⭐

πŸ‘‘ SEE ALSO πŸ‘‘

k so the source file is ./drivers/dma/at_hdmac.c and honestly there's a whole friend group hanging out with this function, go say hi to all of them:


ngl this whole page lives under ./drivers/dma β€” that's the directory, bestie, go look πŸ‘€

and that's the page!! 🌈 slayed, ate, left no crumbs. this iconic piece of documentation is stamped October 2026 and lives at ./drivers/dma, and the page itself is atc_prep_dma_cyclic(9) β€” mwah, love u, go prep some cyclic DMA πŸ’œπŸŽ€βœ¨

πŸ“¦ where this page comes from