STRUCT QCOM_ICC_BCM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct qcom_icc_bcm(9) πŸ¦‹

okay so bestie, welcome to the Kernel API Manual entry for struct qcom_icc_bcm β€” literally the Qualcomm specific hardware accelerator nodes known as Bus Clock Manager (BCM). It’s giving very specific kernel internals, and we’re gonna get through every single field together πŸ’–


✨ NAME ✨

struct qcom_icc_bcm β€” Qualcomm specific hardware accelerator nodes known as Bus Clock Manager (BCM). No cap, that’s the whole vibe of this page πŸŽ€


🌸 SYNOPSIS 🌸

struct qcom_icc_bcm {
    const char *name;
    u32 type;
    u32 addr;
    u64 vote_x[QCOM_ICC_NUM_BUCKETS];
    u64 vote_y[QCOM_ICC_NUM_BUCKETS];
    u64 vote_scale;
    u32 enable_mask;
    bool dirty;
    bool keepalive;
    struct bcm_db aux_data;
    struct list_head list;
    struct list_head ws_list;
    size_t num_nodes;
    struct qcom_icc_node *nodes[];
};

🧚 Members 🧚

  • name β€” the bcm node name used to fetch BCM data from command db. It’s the little name-tag energy for the BCM node 🏷️
  • type β€” latency or bandwidth bcm. That’s the whole type situation, periodt.
  • addr β€” address offsets used when voting to RPMH. Very addressy, very offset-coded ✨
  • vote_x β€” aggregated threshold values, represents sum_bw when type is bw bcm. The aggregate is aggregating, bestie.
  • vote_y β€” aggregated threshold values, represents peak_bw when type is bw bcm. Peak-coded threshold values, we love to see it πŸ”₯
  • vote_scale β€” scaling factor for vote_x and vote_y. It scales the votes, obviously, and it ate πŸ’…
  • enable_mask β€” optional mask to send as vote instead of vote_x/vote_y. Optional icon behavior.
  • dirty β€” flag used to indicate whether the bcm needs to be committed. Not me checking if the BCM is dirty πŸ™ˆ
  • keepalive β€” flag used to indicate whether a keepalive is required. Keeping it alive, keeping it iconic 🫢
  • aux_data β€” auxiliary data used when calculating threshold values and communicating with RPMh. So it’s the aux data bestie, doing threshold math and RPMh communication ✨
  • list β€” used to link to other bcms when compiling lists for commit. Linked-list core, fr fr.
  • ws_list β€” used to keep track of bcms that may transition between wake/sleep. Wake/sleep transitions stay tracked πŸ’€
  • num_nodes β€” total number of num_nodes. Yes, that’s what it says, and we’re not gonna pretend otherwise 😭
  • nodes β€” list of qcom_icc_nodes that this BCM encapsulates. Encapsulation queen πŸ‘‘

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/interconnect/qcom/icc-rpmh.h
  • struct qcom_icc_provider(9)
  • struct bcm_db(9)
  • struct qcom_icc_qosbox(9)
  • struct qcom_icc_node(9)

okay that’s the page, bestie β€” this one comes from ./drivers/interconnect/qcom, and the version/date vibe is October 2026. Bye, love u, go read the other structs πŸ’œπŸŽ€

πŸ“¦ where this page comes from