STRUCT DW_EDMA_CHIP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

so like, you're reading struct dw_edma_chip(9) from the Kernel API Manual, and bestie, it's literally the representation of DesignWare eDMA controller hardware ✨ that's the whole vibe


πŸ¦‹ SYNOPSIS πŸ¦‹

struct dw_edma_chip {
    struct device           *dev;
    int nr_irqs;
    const struct dw_edma_plat_ops   *ops;
    u32 flags;
    void __iomem            *reg_base;
    u16 ll_wr_cnt;
    u16 ll_rd_cnt;
    struct dw_edma_region   ll_region_wr[HDMA_MAX_WR_CH];
    struct dw_edma_region   ll_region_rd[HDMA_MAX_RD_CH];
    struct dw_edma_region   dt_region_wr[HDMA_MAX_WR_CH];
    struct dw_edma_region   dt_region_rd[HDMA_MAX_RD_CH];
    int db_irq;
    resource_size_t db_offset;
    enum dw_edma_map_format mf;
    u8 func_no;
    struct dw_edma          *dw;
    bool cfg_non_ll;
};

πŸŽ€ Members πŸŽ€

okay so let's go member by member, no skips, we're doing the whole list periodt πŸ’…

  • dev β€” the struct device of the eDMA controller 🫢
  • nr_irqs β€” total number of DMA IRQs, like the whole squad count
  • ops β€” the DMA channel to IRQ number mapping, i.e. who goes with which IRQ
  • flags β€” the dw_edma_chip_flags situation 🌸
  • reg_base β€” DMA register base address, the home address of the registers
  • ll_wr_cnt β€” DMA write link list count ✍️
  • ll_rd_cnt β€” DMA read link list count πŸ“–
  • ll_region_wr β€” DMA descriptor link list memory for the write channel 🧚
  • ll_region_rd β€” DMA descriptor link list memory for the read channel
  • dt_region_wr β€” DMA data memory for the write channel 🌈
  • dt_region_rd β€” DMA data memory for the read channel
  • db_irq β€” Virtual IRQ dedicated to interrupt emulation, she's virtual, she's special ⭐
  • db_offset β€” offset from the DMA register base
  • mf β€” DMA register map format
  • func_no β€” PCI endpoint function number used by DMA TLPs πŸ”₯
  • dw β€” the struct dw_edma that gets filled by dw_edma_probe, the main character fr fr
ngl, you'll also spot cfg_non_ll sitting up there in the struct 🫣 β€” the Members list above is exactly what the page gives us, so we're not out here making stuff up about it πŸ’€

⭐ SEE ALSO ⭐

  • Kernel file ./include/linux/dma/edma.h
  • struct dw_edma_plat_ops(9)
  • enum dw_edma_chip_flags(9)
  • enum dw_edma_ch_irq_mode(9)

go read those next, iykyk πŸ‘‘


and that's the whole page bestie πŸ’– this one came from ./include/linux/dma, dated October 2026, and it's the struct dw_edma_chip(9) footer signing off β€” slay, ate, no cap πŸŽ€βœ¨

πŸ“¦ where this page comes from