STRUCT CEC_EVENT_STATE_CHANGE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– STRUCT CEC_EVENT_STATE_CHANGE(9) πŸ’–

okay bestie, welcome to the Kernel API Manual β€” this is the page about struct cec_event_state_change, and it's literally the little glow-up notification your CEC adapter sends when its state changes. no cap, it's tiny but it carries.


✨ NAME ✨

struct cec_event_state_change β€” used when the CEC adapter changes state. that's it, that's the whole vibe check. πŸ¦‹


🌸 SYNOPSIS 🌸

struct cec_event_state_change {
    __u16 phys_addr;
    __u16 log_addr_mask;
    __u16 have_conn_info;
 };

look at her. three little __u16 fields, absolutely iconic. πŸ‘‘


πŸŽ€ Members πŸŽ€

  • phys_addr β€” the current physical address. the main character of the struct, honestly.
  • log_addr_mask β€” the current logical address mask. it's giving "who am I in the group chat" energy. πŸ’…
  • have_conn_info β€” if non-zero, then HDMI connector information is available.
🚨 okay so this is the important caveat, do not skip: this field is only valid if CEC_CAP_CONNECTOR_INFO is set. if that capability is set and have_conn_info is zero, then that indicates that the HDMI connector device is not instantiated, either because the HDMI driver is still configuring the device or because the HDMI device was unbound. so like… zero doesn't mean "nope forever", it means "not yet / not rn". 😭

πŸ’œ SEE ALSO πŸ’œ

Kernel file ./include/uapi/linux/cec.h β€” and yes, the whole friend group shows up too:


🫢 and that's the page!! source line for the credits: ./include/uapi/linux, dated October 2026, filed under struct cec_...state_change(9). periodt. βœ¨πŸŽ€πŸ’–

πŸ“¦ where this page comes from