ENUM DRM_CONNECTOR_REGISTRATION_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum drm_connector_registration_state(9) πŸ’…

okay bestie so this is a page from the Kernel API Manual, and it's all about enum drm_connector_registration_state β€” literally the vibe tracker for where a &drm_connector is at in its userspace-registration journey. sit down, get comfy, we're doing DRM lore πŸŽ€


✨ NAME ✨

enum drm_connector_registration_state β€” the userspace registration status for a &drm_connector. that's it, that's the whole thing, and yet it matters so much 🫢


🌸 SYNOPSIS 🌸

enum drm_connector_registration_state {
    DRM_CONNECTOR_INITIALIZING ,
    DRM_CONNECTOR_REGISTERED ,
    DRM_CONNECTOR_UNREGISTERED

};

look at her go. three states, zero drama (well, okay, a little drama β€” see the last one) ✨


πŸ¦‹ Constants πŸ¦‹

  • DRM_CONNECTOR_INITIALIZING β€” the connector was just born. freshly created, not yet exposed to userspace, still in its soft-launch era πŸ™ˆ there should be no additional restrictions to how the state of this connector may be modified. go wild, honestly.
  • DRM_CONNECTOR_REGISTERED β€” glow-up complete πŸ’– fully initialized and registered with sysfs, which means it has been exposed to userspace. and again: there should be no additional restrictions to how the state of this connector may be modified. iconic, unbothered, thriving.
  • DRM_CONNECTOR_UNREGISTERED β€” the plot twist 😭 this connector either (a) was exposed to userspace and has since been unregistered and removed from userspace, or (b) got unregistered before it ever had a chance to be exposed to userspace (e.g. it's still sitting in the DRM_CONNECTOR_INITIALIZING state). when a connector is unregistered, there are additional restrictions to how its state may be modified:
    • an unregistered connector may only have its DPMS changed from On->Off. once DPMS is changed to Off, it may not be switched back to On. one-way street, no U-turns, no cap 🚫
    • modesets are not allowed on unregistered connectors, unless they would result in disabling its assigned CRTCs. this means disabling a CRTC on an unregistered connector is OK, but enabling one is not.
    • removing a CRTC from an unregistered connector is OK, but new CRTCs may never be assigned to an unregistered connector. it's giving "you can leave but you can't bring plus-ones" πŸ’€

⭐ Description ⭐

this enum is literally just here to track the status of initializing a connector and registering it with userspace β€” so that DRM can prevent bogus modesets on connectors that no longer exist. like, respectfully, if the connector is gone, stop trying to modeset it. periodt πŸ”₯


🌈 SEE ALSO 🌈

bestie, the cross-reference list is long and honestly kind of iconic. it's all in the kernel file ./include/drm/drm_connector.h, and here's the whole squad:

  • enum drm_connector_status(9)
  • enum drm_connector_tv_mode(9)
  • struct drm_scrambling(9)
  • struct drm_hdmi_dsc_cap(9)
  • struct drm_hdmi_info(9)
  • enum drm_link_status(9)
  • enum drm_panel_orientation(9)
  • enum drm_hdmi_broadcast_rgb(9)
  • struct drm_monitor_range_info(9)
  • struct drm_luminance_range_info(9)
  • enum drm_privacy_screen_status(9)
  • enum drm_colorspace(9)
  • enum drm_output_color_format(9)
  • enum drm_connector_color_format(9)
  • enum drm_bus_flags(9)
  • struct drm_amd_vsdb_info(9)
  • struct drm_display_info(9)
  • struct drm_connector_tv_margins(9)
  • struct drm_tv_connector_state(9)
  • struct drm_connector_hdmi_infoframe(9)
  • struct drm_connector_state(9)
  • struct drm_connector_cec_funcs(9)
  • struct drm_connector_infoframe_funcs(9)
  • struct drm_connector_hdmi_funcs(9)
  • struct drm_connector_funcs(9)
  • struct drm_cmdline_mode(9)
  • struct drm_connector_hdmi_audio(9)
  • struct drm_connector_cec(9)
  • struct drm_connector(9)
  • drm_connector_lookup(9)
  • drm_connector_get(9)
  • drm_connector_put(9)
  • drm_connector_is_unregistered(9)
  • struct drm_tile_group(9)
  • struct drm_connector_list_iter(9)
  • drm_for_each_connector_iter(9)
  • drm_connector_for_each_possible_encoder(9)
ngl that's a lot of reading. pace yourself, hydrate, come back to it πŸ’œ

aaaand that's the page, bestie 🧚 this came to you from the ./include/drm source, dated October 2026 β€” so go forth, respect the unregistered state restrictions, and slay your modesets responsibly. mwah πŸ’‹ enum drm_co...ration_state(9) out. πŸŽ€

πŸ“¦ where this page comes from