STRUCT PMC_DEV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so bestie, welcome to struct pmc_dev β€” the pmc device structure, in the Kernel API Manual (that's section 9, the kernely one, iykyk). It's literally the vibe check for a power management controller device, and we're gonna go through it field by field, no cap. πŸ¦‹


✨ SYNOPSIS ✨

here's the whole struct, character for character, do not touch, she's perfect:

struct pmc_dev {
    struct pmc *pmcs[MAX_NUM_PMC];
    struct dentry *dbgfs_dir;
    struct platform_device *pdev;
    unsigned int crystal_freq;
    int pmc_xram_read_bit;
    struct mutex lock;
    u64 s0ix_counter;
    void (*suspend)(struct pmc_dev *pmcdev);
    int (*resume)(struct pmc_dev *pmcdev);
    u64 *pkgc_res_cnt;
    u8 num_of_pkgc;
    u32 die_c6_offset;
    struct telem_endpoint *pc_ep;
    struct telem_endpoint *punit_ep;
    struct pmc_info *regmap_list;
    const char **pkgc_ltr_blocker_counters;
    u32 pkgc_ltr_blocker_offset;
    const char **pkgc_blocker_counters;
    u32 pkgc_blocker_offset;
 };

πŸŽ€ Members πŸŽ€

okay so here's the member-by-member tour. the ones below are the ones this page actually spells out for you β€” a few of the fields up there (pmcs, lock, die_c6_offset, pc_ep, punit_ep, regmap_list) are just vibing in the struct without a lil description on this page, and that's just how it is. πŸ™ˆ

  • dbgfs_dir β€” path to debugfs interface. that's the door to the debug filesystem, bestie. πŸ’–
  • pdev β€” pointer to platform_device struct. slay, a pointer to the platform device.
  • crystal_freq β€” crystal frequency from cpuid. yes, from cpuid, she asked the CPU directly. ⭐
  • pmc_xram_read_bit β€” flag to indicate whether PMC XRAM shadow registers used to read MPHY PG and PLL status are available. so: is the XRAM shadow-register route for reading MPHY PG and PLL status a thing or not. binary queen. πŸŽ€
  • s0ix_counter β€” S0ix residency (step adjusted). the residency number, already step-adjusted for you. πŸ‘‘
  • suspend β€” Function to perform platform specific suspend. platform does its own suspend thing. 😭
  • resume β€” Function to perform platform specific resume. and the matching resume. 🌸
  • pkgc_res_cnt β€” Array of PKGC residency counters. πŸ”₯
  • num_of_pkgc β€” Number of PKGC. that's how many PKGCs we're dealing with. fr fr. πŸ’œ
  • pkgc_ltr_blocker_counters β€” Array of PKGC LTR blocker counters. 🫢
  • pkgc_ltr_blocker_offset β€” Offset to PKGC LTR blockers in telemetry region. 🌈
  • pkgc_blocker_counters β€” Array of PKGC blocker counters. ✨
  • pkgc_blocker_offset β€” Offset to PKGC blocker in telemetry region. πŸ¦‹

🧚 Description 🧚

like, the whole entire point: pmc_dev contains info about power management controller device. that's it, that's the tea. one struct, all the PMC device info, main character energy. πŸ’…


⭐ SEE ALSO ⭐

the crossover episode, bestie:

  • Kernel file ./drivers/platform/x86/intel/pmc/core.h struct
  • pmc_reg_map(9)
  • struct pmc_info(9)
  • struct pmc(9)
  • struct pmc_dev_info(9)

ngl, go read those too, they're all part of the same friend group 🫢

okay bye bestie, mwah πŸ’‹ β€” this page lives at ./drivers/platform/x86/intel/pmc, dated October 2026, and it's struct pmc_dev(9) all the way down. πŸ“

πŸ“¦ where this page comes from