STRUCT DRM_CONNECTOR_HDMI_FUNCS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_connector_hdmi_funcs(9) β€” a Kernel API Manual moment

okay so bestie, welcome to the manual page for struct drm_connector_hdmi_funcs(9), straight outta the Kernel API Manual ✨ this is the little bundle of function pointers that tells DRM how your HDMI connector should behave, and honestly? it's giving backstage-pass energy πŸŽ€


🌸 NAME 🌸

struct drm_connector_hdmi_funcs β€” the drm_hdmi_connector control functions, aka the vibes committee for your HDMI connector πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

struct drm_connector_hdmi_funcs {
    enum drm_mode_status (*tmds_char_rate_valid)(const struct drm_connector *connector, const struct drm_display_mode *mode, unsigned long long tmds_rate);
    const struct drm_edid *(*read_edid)(struct drm_connector *connector);
    struct drm_connector_infoframe_funcs avi;
    struct drm_connector_infoframe_funcs hdmi;
    struct drm_connector_infoframe_funcs audio;
    struct drm_connector_infoframe_funcs hdr_drm;
    struct drm_connector_infoframe_funcs spd;
};

πŸ‘‘ MEMBERS πŸ‘‘

  • tmds_char_rate_valid β€” so this callback gets invoked at atomic_check time to figure out whether a particular TMDS character rate is actually supported by the driver. it's literally the "can we tho?" check πŸ’…

The tmds_char_rate_valid callback is optional. no cap.

Returns:

Either drm_mode_status.MODE_OK or one of the failure reasons in enum drm_mode_status. periodt.

  • read_edid β€” this callback is used by the framework as a replacement for reading the EDID from connector->ddc. and like, it is still recommended to provide connector->ddc instead of implementing this callback 🫢 fr fr. the returned EDID should be freed via the drm_edid_free.

The read_edid callback is optional.

Returns: Valid EDID on success, NULL in case of failure. 😭

  • avi β€” set of callbacks for handling the AVI InfoFrame. these callbacks are mandatory. no skipping, bestie πŸ’€
  • hdmi β€” set of callbacks for handling the HDMI Vendor-Specific InfoFrame. these callbacks are mandatory too πŸ‘‘
  • audio β€” set of callbacks for handling the Audio InfoFrame. these callbacks are optional, but they're required for drivers which use drm_atomic_helper_connector_hdmi_update_audio_infoframe. iykyk 🎧
  • hdr_drm β€” set of callbacks for handling the HDR DRM InfoFrame. these callbacks are mandatory if HDR output is to be supported 🌈 (so if you want the pretty colors, you gotta pay the toll)
  • spd β€” set of callbacks for handling the SPD InfoFrame. these callbacks are optional πŸ“

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/drm/drm_connector.h plus the whole extended universe, bestie β€” every single one, no gatekeeping:

  • enum drm_connector_status(9)
  • enum drm_connector_registration_state(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_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)

and that's the whole page, bestie πŸ’œ this one lives in ./include/drm, dated October 2026, and it goes out under the header struct drm_...r_hdmi_funcs(9) β€” thanks for reading, mwah πŸ«Άβœ¨πŸŽ€

πŸ“¦ where this page comes from