STRUCT XGENE_DMA(9)
π struct xgene_dma(9) β the Kernel API Manual, but make it make sense
okay so bestie, buckle up β this is the kernel API manual page for struct xgene_dma(9), and we're about to get into the internal representation of an X-Gene DMA device. yes, internal. yes, it's giving "you're not supposed to touch this but here's the tea anyway" β¨
πΈ NAME πΈ
struct xgene_dma β the internal representation of an X-Gene DMA device π
like, it's the little struct that holds the whole vibe of the device together. main character energy fr.
β¨ SYNOPSIS β¨
struct xgene_dma {
struct device *dev;
struct clk *clk;
int err_irq;
int ring_num;
void __iomem *csr_dma;
void __iomem *csr_ring;
void __iomem *csr_ring_cmd;
void __iomem *csr_efuse;
struct dma_device dma_dev[XGENE_DMA_MAX_CHANNEL];
struct xgene_dma_chan chan[XGENE_DMA_MAX_CHANNEL];
};
look at her. ten fields. absolutely iconic. no notes. π
π¦ MEMBERS π¦
okay so every single one of these babies, one by one, no skips, no cap:
devβ reference to this device'sstruct deviceπ«Ά like, the actual device this whole thing belongs toclkβ reference to this device's clock β° the heartbeat, the rhythm, the metronomeerr_irqβ DMA error irq number π¨ it's the irq that lights up when things go sidewaysring_numβ start id number for DMA ring π where the ring numbering begins, bestiecsr_dmaβ base for DMA register access π your home base for poking at DMA registerscsr_ringβ base for DMA ring register access π― same energy, but the ring registerscsr_ring_cmdβ base for DMA ring command register access π« yup, the command ones β third base, third addresscsr_efuseβ base for efuse register access π₯ efuse registers live here, and honestly? obsesseddma_devβ embeddedstruct dma_deviceπ embedded, as in it lives inside this struct, an array ofXGENE_DMA_MAX_CHANNELof themchanβ reference to X-Gene DMA channels π§ also an array ofXGENE_DMA_MAX_CHANNEL, the actual channels doing the work
ngl bestie, this struct is basically a whole little ecosystem β pointers and arrays all living together in one happy home π
π SEE ALSO π
go look at these, iykyk β kernel file ./drivers/dma/xgene-dma.c and friends:
struct xgene_dma_chan(9)xgene_dma_clean_completed_descriptor(9)xgene_dma_run_tx_complete_actions(9)xgene_dma_clean_running_descriptor(9)xgene_chan_xfer_ld_pending(9)xgene_dma_cleanup_descriptors(9)xgene_dma_free_desc_list(9)
a whole squad. a friend group. a coven, if you will. π―οΈπ
and that's the whole page, bestie β no gatekeeping, no missing details, periodt. π
big love to ./drivers/dma for shipping this at October 2026, we literally could not have done it without you πβ¨
π¦ 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