STRUCT AT_DMA_CHAN(9)
π struct at_dma_chan(9) β the kernel API manual, but make it cute
okay so bestie, this is the page for struct at_dma_chan β literally the internal representation of an Atmel HDMAC channel. like, the behind-the-scenes glow-up of one single DMA channel. no cap, it's giving "private backstage pass" energy π
β¨ SYNOPSIS β¨
here's the whole struct, verbatim, don't touch a character of it π«Ά
struct at_dma_chan {
struct virt_dma_chan vc;
struct at_dma *atdma;
void __iomem *ch_regs;
u8 mask;
u8 per_if;
u8 mem_if;
unsigned long status;
u32 save_cfg;
u32 save_dscr;
struct dma_slave_config dma_sconfig;
struct at_desc *desc;
};
πΈ Members πΈ
vcβ the virtual dma channel entry. that's her main character moment in the virt-dma world π«atdmaβ pointer to the driver data. like, who she really belongs to πch_regsβ memory mapped register base. the actual address where the hardware lives, iconicmaskβ channel index in a mask. tiny but important, she's a bitmask girlieper_ifβ peripheral interfacemem_ifβ memory interfacestatusβ transmit status information from irq/prep* functions to tasklet β and listen, use atomic operations on this one fr fr, it's not a vibe to just write it willy-nilly πsave_cfgβ configuration register that is saved on suspend/resume cycle. she gets packed up and unpacked, cozy πsave_dscrβ for cyclic operations, preserve next descriptor address in the cyclic list on suspend/resume cycle. lowkey the "bookmark" of the cyclic list πdma_sconfigβ configuration for slave transfers, passed via.device_config. this is how the settings get handed over β¨descβ pointer to the atmel dma descriptor. her plus-one π«Ά
π¦ SEE ALSO π¦
all the linked lore, and yes, you're gonna want to read it all, bestie:
Kernel file./drivers/dma/at_hdmac.cβ thenstruct atdma_sg(9),struct at_desc(9),enum atc_status(9),struct at_dma(9),atc_chan_is_enabled(9),atc_chan_is_paused(9),atc_chan_is_cyclic(9),set_lli_eol(9),struct at_dma_platform_data(9),struct at_dma_slave(9),atc_dostart(9),atc_calc_bytes_left(9),atc_get_llis_residue(9),atc_get_residue(9),atc_handle_error(9),atc_prep_dma_interleaved(9),atc_prep_dma_memcpy(9),atc_prep_dma_memset(9),atc_prep_slave_sg(9),atc_prep_dma_cyclic(9),atc_tx_status(9),atc_alloc_chan_resources(9),atc_free_chan_resources(9),at_dma_off(9)
and that's the whole page, periodt π
okay and for the sign-off: this one lives over in ./drivers/dma, it's dated October 2026, and the whole thing is filed under struct at_dma_chan(9) β slay, go read the next one, ily π§π
π¦ 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