STRUCT XGENE_DMA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ 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's struct device 🫢 like, the actual device this whole thing belongs to
  • clk β€” reference to this device's clock ⏰ the heartbeat, the rhythm, the metronome
  • err_irq β€” DMA error irq number 🚨 it's the irq that lights up when things go sideways
  • ring_num β€” start id number for DMA ring 🌈 where the ring numbering begins, bestie
  • csr_dma β€” base for DMA register access πŸ“ your home base for poking at DMA registers
  • csr_ring β€” base for DMA ring register access 🎯 same energy, but the ring registers
  • csr_ring_cmd β€” base for DMA ring command register access πŸ’« yup, the command ones β€” third base, third address
  • csr_efuse β€” base for efuse register access πŸ”₯ efuse registers live here, and honestly? obsessed
  • dma_dev β€” embedded struct dma_device πŸ‘‘ embedded, as in it lives inside this struct, an array of XGENE_DMA_MAX_CHANNEL of them
  • chan β€” reference to X-Gene DMA channels 🧚 also an array of XGENE_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:

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