STRUCT IOSM_PCIE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iosm_pcie(9) β€” the Kernel API Manual, but make it cute

okay bestie, welcome to the struct iosm_pcie(9) page from the Kernel API Manual πŸ’– this is the IPC_PCIE struct, and it's basically the main character of the iosm WWAN driver's PCIe era. let's get into it ✨


🌸 NAME 🌸

struct iosm_pcie β€” the IPC_PCIE struct. that's it, that's the whole vibe 🫢


πŸŽ€ SYNOPSIS πŸŽ€

here she is, in all her glory β€” every field, exactly as declared, no cap:

struct iosm_pcie {
    struct pci_dev *pci;
    struct device *dev;
    void __iomem *ipc_regs;
    void __iomem *scratchpad;
    struct iosm_imem *imem;
    int ipc_regs_bar_nr;
    int scratchpad_bar_nr;
    int nvec;
    u32 doorbell_reg_offset;
    u32 doorbell_write;
    u32 doorbell_capture;
    unsigned long suspend;
    enum ipc_pcie_sleep_state d3l2_support;
 };

πŸ¦‹ Members πŸ¦‹

okay so now we go field by field, and honestly? every one of them is serving a purpose πŸ”₯

  • pci β€” address of the device description πŸ’«
  • dev β€” pointer to the generic device structure πŸŽ€
  • ipc_regs β€” the remapped CP doorbell address of the irq register set, and its whole job is to fire the doorbell irq πŸ”” literally what she was born to do
  • scratchpad β€” the remapped CP scratchpad address, used to send the configuration tuple and the IPC descriptors to CP in the ROM phase 🌈 heads up: the config tuple information gets saved on the MSI scratchpad ✨
  • imem β€” pointer to the imem data struct πŸ’œ
  • ipc_regs_bar_nr β€” the BAR number to be used for the IPC doorbell 🌸
  • scratchpad_bar_nr β€” the BAR number to be used for Scratchpad πŸ¦‹
  • nvec β€” the number of requested irq vectors ⭐
  • doorbell_reg_offset β€” doorbell_reg_offset 😭 (yes, that's genuinely the description, she said "I am what I am")
  • doorbell_write β€” the doorbell write register ✍️
  • doorbell_capture β€” the doorbell capture resgister πŸ“Έ
  • suspend β€” S2IDLE sleep/active 😴
  • d3l2_support β€” reads the WWAN RTD3 BIOS setting for D3L2 support πŸ‘‘

πŸ’€ SEE ALSO πŸ’€

go read these next, bestie, they're all linked up 🫢 the kernel file is ./drivers/net/wwan/iosm/iosm_ipc_pcie.h (and the enum lives there too):


ngl the whole thing lives under ./drivers/net/wwan/iosm and that's the path you'll see stamped on the page 🧚

and that's the tea πŸ“ this page dropped October 2026, courtesy of the kernel's very own ./drivers/net/wwan/iosm directory β€” slay, iconic, no notes πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from