STRUCT SCMI_POWERCAP_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct scmi_powercap_info(9) β€” like, the whole Kernel API Manual vibe ✨

okay bestie, buckle up πŸŽ€ you're reading the Kernel API Manual entry for struct scmi_powercap_info(9), and it's literally the cheat sheet for one available Powercap domain. one domain. one struct. one absolute icon. πŸ‘‘


🌸 NAME 🌸

struct scmi_powercap_info β€” describes one available Powercap domain. that's it, that's the whole gig. no cap. πŸ’–


✨ SYNOPSIS ✨

here's the shape of it, bestie β€” every field, exactly as it lives in the header:

struct scmi_powercap_info {
    unsigned int id;
    bool notify_powercap_cap_change;
    bool notify_powercap_measurement_change;
    bool async_powercap_cap_set;
    bool powercap_cap_config;
    bool powercap_monitoring;
    bool powercap_pai_config;
    bool powercap_scale_mw;
    bool powercap_scale_uw;
    bool fastchannels;
    char name[SCMI_MAX_STR_SIZE];
    unsigned int min_pai;
    unsigned int max_pai;
    unsigned int pai_step;
    unsigned int min_power_cap;
    unsigned int max_power_cap;
    unsigned int power_cap_step;
    unsigned int sustainable_power;
    unsigned int accuracy;
  #define SCMI_POWERCAP_ROOT_ZONE_ID     0xFFFFFFFFUL;
    unsigned int parent_id;
    struct scmi_fc_info *fc_info;
 };

like, look at all those bools. she's thorough. she contains multitudes. πŸ¦‹


🧚 Members 🧚

okay now the main character energy part β€” field by field, no skipping, no summarising, we're doing the whole roster πŸ’…

  • id β€” the Domain ID, as advertised by the platform. it's giving... "hello, this is who I am." πŸͺͺ
  • notify_powercap_cap_change β€” CAP change notification support. yes, she can tell you when the CAP moves. πŸ””
  • notify_powercap_measurement_change β€” MEASUREMENTS change notifications support. same energy, but for measurements. πŸ“ˆ
  • async_powercap_cap_set β€” Asynchronous CAP set support. lowkey the "don't wait up" of CAP setting. ⏳
  • powercap_cap_config β€” CAP configuration support. you can configure the CAP. slay. πŸŽ€
  • powercap_monitoring β€” Monitoring (measurements) support. she's watching. respectfully. πŸ‘€
  • powercap_pai_config β€” PAI configuration support. yes bestie, PAI is configurable here. βš™οΈ
  • powercap_scale_mw β€” Domain reports power data in milliwatt units. πŸ‡²πŸ‡Ό energy (the unit, not the country, but honestly? iconic either way).
  • powercap_scale_uw β€” Domain reports power data in microwatt units. and here's the tea 🍡: when both powercap_scale_mw and powercap_scale_uw are set to false, the domain reports power data on an abstract linear scale. no real watts, just vibes. 😭
  • name β€” the name assigned to the Powercap Domain by the platform. her government name. 🫢
  • min_pai β€” Minimum configurable PAI. the floor. ⬇️
  • max_pai β€” Maximum configurable PAI. the ceiling. ⬆️
  • pai_step β€” Step size between two consecutive PAI values. the baby steps in between. 🐾
  • min_power_cap β€” Minimum configurable CAP. 🧊
  • max_power_cap β€” Maximum configurable CAP. πŸ”₯
  • power_cap_step β€” Step size between two consecutive CAP values. again with the baby steps. 🐣
  • sustainable_power β€” Maximum sustainable power consumption for this domain under normal conditions. key phrase: normal conditions. we don't discuss non-normal conditions. πŸ’€
  • min_pai… wait no β€” ok bestie we already did that one, stay with me. πŸ™ˆ
  • accuracy β€” the accuracy with which the power is measured and reported, in integral multiples of 0.001 percent. tiny. precise. perfectionist. ⭐
  • parent_id β€” Identifier of the containing parent power capping domain, or the value 0xFFFFFFFF if this powercap domain is a root domain not contained in any other domain. also, shoutout to SCMI_POWERCAP_ROOT_ZONE_ID being 0xFFFFFFFFUL up in the struct πŸ‘‘ β€” same energy, different spelling.
heads up bestie 🫢 β€” the struct also carries fastchannels and struct scmi_fc_info *fc_info, but this page doesn't describe them. so we're not gonna make stuff up about them. we simply admire them from a respectful distance. πŸ’œ

🌈 SEE ALSO 🌈

the whole friend group, no one left behind β€” Kernel file ./include/linux/scmi_protocol.h, plus:

  • struct scmi_base_info(9)
  • struct scmi_clk_proto_ops(9)
  • struct scmi_perf_proto_ops(9)
  • struct scmi_power_proto_ops(9)
  • struct scmi_sensor_reading(9)
  • struct scmi_range_attrs(9)
  • struct scmi_sensor_axis_info(9)
  • struct scmi_sensor_intervals_info(9)
  • struct scmi_sensor_info(9)
  • struct scmi_sensor_proto_ops(9)
  • struct scmi_reset_proto_ops(9)
  • struct scmi_voltage_info(9)
  • struct scmi_voltage_proto_ops(9)
  • struct scmi_powercap_proto_ops(9)
  • struct scmi_pinctrl_proto_ops(9)
  • struct scmi_notify_ops(9)
  • struct scmi_handle(9)
  • module_scmi_driver(9)
  • module_scmi_protocol(9)

and that's the whole page, bestie β€” go forth and cap some power πŸ’…βœ¨

this little masterclass came from ./include/linux, dated October 2026, and it's the struct scmi_powercap_info(9) entry. iykyk πŸ¦‹πŸŽ€πŸ’–

πŸ“¦ where this page comes from