STRUCT PL08X_PHY_CHAN(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct pl08x_phy_chan(9) ✨

okay bestie, buckle up πŸ’… this is a page from the Kernel API Manual and it's literally about a struct that holds the physical channels β€” like, the actual hardware channels, not the fake virtual ones. main character energy fr fr πŸŽ€


🌸 NAME 🌸

struct pl08x_phy_chan β€” the holder for the physical channels πŸ’–


✨ SYNOPSIS ✨

no cap, here's the whole thing, character for character:

struct pl08x_phy_chan {
    unsigned int id;
    void __iomem *base;
    void __iomem *reg_config;
    void __iomem *reg_control;
    void __iomem *reg_src;
    void __iomem *reg_dst;
    void __iomem *reg_lli;
    void __iomem *reg_busy;
    spinlock_t lock;
    struct pl08x_dma_chan *serving;
    bool locked;
    bool ftdmac020;
    bool pl080s;
 };

like... she's got a LOT going on and honestly? iconic of her 🫢


πŸ’œ Members πŸ’œ

okay so let's go through every single one because we are NOT skipping anything, bestie:

  • id β€” the physical index to this channel πŸ”’ like her little ID card
  • base β€” the memory base address for this physical channel πŸ“ home address vibes
  • reg_config β€” the configuration address for this physical channel βš™οΈ
  • reg_control β€” the control address for this physical channel πŸŽ›οΈ
  • reg_src β€” the transfer source address register πŸ“€ where the tea comes from
  • reg_dst β€” the transfer destination address register πŸ“₯ where it's going
  • reg_lli β€” the transfer LLI address register πŸ”— (LLI my beloved)
  • reg_busy β€” if the variant has a special per-channel busy register, this contains a pointer to it πŸ‘€ note the "if" β€” not every variant has one, so don't assume, bestie
  • lock β€” a lock to use when altering an instance of this struct πŸ”’ pls respect the lock, she's not decorative
  • serving β€” the virtual channel currently being served by this physical channel πŸ’β€β™€οΈ she's literally in service
  • locked β€” the channel is unavailable for the system, e.g. dedicated to secure world 🚫 like sorry, she's booked, and also kind of a security thing
  • ftdmac020 β€” the channel is on a FTDMAC020 🧚
  • pl080s β€” the channel is on a PL08s ⭐

πŸ¦‹ SEE ALSO πŸ¦‹

go read these next, iykyk:

  • Kernel file ./drivers/dma/amba-pl08x.c
  • struct vendor_data(9)
  • struct pl08x_bus_data(9)
  • struct pl08x_sg(9)
  • struct pl08x_txd(9)
  • enum pl08x_dma_chan_state(9)
  • struct pl08x_dma_chan(9)
  • struct pl08x_driver_data(9)

aaaand that's the whole thing, no crumbs left πŸ’€πŸ’– this came from ./drivers/dma, dated October 2026, and the page itself is struct pl08x_phy_chan(9) β€” go off, you now officially understand physical channels better than half the group chat πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from