STRUCT MTK_GEN3_PCIE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct mtk_gen3_pcie(9) β€” Kernel API Manual vibes ✨

okay so bestie, welcome to the struct mtk_gen3_pcie(9) page!! πŸ’– this is the group chat where every single box of info about one PCIe port lives β€” all the fields, all the resets, all the lock drama. no cap, it's all here, and we're gonna go through it together 🫢


🌸 NAME 🌸

struct mtk_gen3_pcie β€” literally just "PCIe port information", that's the whole vibe ✨


πŸŽ€ SYNOPSIS πŸŽ€

struct mtk_gen3_pcie {
    struct device *dev;
    void __iomem *base;
    phys_addr_t reg_base;
    struct reset_control *mac_reset;
    struct reset_control_bulk_data phy_resets[MAX_NUM_PHY_RESETS];
    struct phy *phy;
    struct clk_bulk_data *clks;
    int num_clks;
    u8 max_link_speed;
    u8 num_lanes;
    int irq;
    u32 saved_irq_state;
    raw_spinlock_t irq_lock;
    struct irq_domain *intx_domain;
    struct irq_domain *msi_bottom_domain;
    struct mtk_msi_set msi_sets[PCIE_MSI_SET_NUM];
    struct mutex lock;
    unsigned long msi_irq_in_use[BITS_TO_LONGS( PCIE_MSI_IRQS_NUM)];
    const struct mtk_gen3_pcie_pdata *soc;
 };

like, look at her. she's got everything πŸ’…


πŸ’œ Members πŸ’œ

  • dev β€” pointer to the PCIe device, the main character herself 🌟
  • base β€” IO mapped register base, where the register magic happens ✨
  • reg_base β€” physical register base, the real-world address bestie πŸ—ΊοΈ
  • mac_reset β€” MAC reset control, for when things need a little reset moment πŸŒ€
  • phy_resets β€” PHY reset controllers (plural, she's got a whole array of them) πŸ”
  • phy β€” PHY controller block, iconic hardware energy πŸ¦‹
  • clks β€” PCIe clocks, we love a timely queen ⏰
  • num_clks β€” PCIe clocks count for this port, the receipts πŸ”’
  • max_link_speed β€” maximum link speed (PCIe Gen) for this port, she's fast fr fr 🏎️
  • num_lanes β€” number of PCIe lanes for this port, staying in her lane(s) πŸ’…
  • irq β€” PCIe controller interrupt number, the interrupt's own little id πŸ†”
  • saved_irq_state β€” IRQ enable state saved at suspend time, so she remembers where she left off 😴
  • irq_lock β€” lock protecting IRQ register access, no cutting in line πŸ”’
  • intx_domain β€” legacy INTx IRQ domain, the old-school icon πŸ‘‘
  • msi_bottom_domain β€” MSI IRQ bottom domain, bottom but still thriving πŸ™ˆ
  • msi_sets β€” MSI sets information, the whole collection πŸŽ€
  • lock β€” lock protecting IRQ bit map, another lock, she's careful okay 😭
  • msi_irq_in_use β€” bit map for assigned MSI IRQ, tracking who's taken πŸ‘€
  • soc β€” pointer to SoC-dependent operations, the plot twists live here 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

go read those too, iykyk πŸ“šβœ¨


that's the whole page bestie, you ate that πŸ“πŸ’– this came to you from ./drivers/pci/controller, dated October 2026 β€” mwah, slay, periodt πŸ’…πŸŽ€πŸ”₯

πŸ“¦ where this page comes from