STRUCT DRM_CONNECTOR_INFOFRAME_FUNCS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct drm_connector_infoframe_funcs β€” the InfoFrame-related functions, and yes this is the Kernel API Manual energy we're bringing today 🫢


✨ SYNOPSIS ✨

struct drm_connector_infoframe_funcs {
    int (*clear_infoframe)(struct drm_connector *connector);
    int (*write_infoframe)(struct drm_connector *connector, const u8
*buffer, size_t len);
 };

πŸŽ€ Members πŸŽ€

🌸 clear_infoframe

Okay so picture this: this callback gets invoked through drm_atomic_helper_connector_hdmi_update_infoframes during a commit, and its whole job is to clear the infoframes into the hardware. Iconic behavior honestly. It gets called once for each frame type to be disabled β€” one at a time, no skipping, no grouping, periodt πŸ’…

The clear_infoframe callback is mandatory for AVI and HDMI-VS InfoFrame types. Not optional. Not a vibe. Mandatory πŸ”₯

Returns: 0 on success, a negative error code otherwise 😭

πŸ¦‹ write_infoframe

This callback is invoked through drm_atomic_helper_connector_hdmi_update_infoframes during a commit to program the infoframes into the hardware. It will be called for every updated infoframe type β€” so if you updated a bunch, bestie, it's showing up for each one πŸ‘‘

The write_infoframe callback is mandatory for AVI and HDMI-VS InfoFrame types. Same deal as above, no cap πŸ’œ

Returns: 0 on success, a negative error code otherwise 😭


🌈 SEE ALSO 🌈

The kernel file here is ./include/drm/drm_connector.h, and it comes with a whole friend group of references β€” every single one, because we don't do leaving people out 🫢

  • 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_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)

ok that's the whole page bestie, go read your infoframes πŸ’€βœ¨

And that's a wrap! This came straight out of ./include/drm, dated October 2026, and it's all part of the Kernel API Manual β€” slay, go touch some hardware πŸŒΈπŸ’–πŸŽ€

πŸ“¦ where this page comes from