STRUCT DRM_CONNECTOR_HDMI_FUNCS(9)
π 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 atatomic_checktime 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 fromconnector->ddc. and like, it is still recommended to provideconnector->ddcinstead of implementing this callback π«Ά fr fr. the returned EDID should be freed via thedrm_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 usedrm_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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms