STRUCT DRM_CONNECTOR_HDMI_AUDIO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct drm_connector_hdmi_audio β€” the Kernel API Manual, bestie edition πŸŽ€

okay so this page lives in the Kernel API Manual and it's all about struct drm_connector_hdmi_audio(9). yes the header really does truncate it to struct drm_...r_hdmi_audio(9), she's mysterious like that πŸ’…


✨ NAME ✨

struct drm_connector_hdmi_audio β€” the DRM generic HDMI Codec-related structure. (the original says "gemeric" β€” that's just a lil typo in the kernel docs, we love her anyway 🫢)


🌸 SYNOPSIS 🌸

struct drm_connector_hdmi_audio {
    const struct drm_connector_hdmi_audio_funcs *funcs;
    struct platform_device *codec_pdev;
    struct mutex lock;
    void (*plugged_cb)(struct device *dev, bool plugged);
    struct device *plugged_cb_dev;
    bool last_state;
    int dai_port;
 };

πŸ’– Members πŸ’–

  • funcs β€” the actual implementation of the HDMI codec functionality that the DRM HDMI Codec framework is gonna use. it's giving "the vibes provider" ✨
  • codec_pdev β€” a platform device, created to hold the HDMI Codec. it gets automatically unregistered during drm_connector_cleanup, so like… don't stress about cleaning up after it, she handles herself πŸ’…
  • lock β€” a mutex whose whole job is protecting last_state, plugged_cb and plugged_cb_dev. guard those three with your life, no cap πŸ”’
  • plugged_cb β€” the callback that fires when the HDMI sink gets plugged into (or unplugged from) this connector. the framework assigns it when the ASoC code asks for it. literally the main character callback πŸŽ€
  • plugged_cb_dev β€” the data for plugged_cb. it's provided by the ASoC. think of it as the callback's emotional support device 🫢
  • last_state β€” the last plugged state recorded by the framework (original docs spell it "recored", adore her). it exists so the state can be reported to plugged_cb correctly. lowkey a memory keeper 🧚
  • dai_port β€” the port in DT that's used for the Codec DAI. it's an int, it's iconic, periodt 🌟

πŸ¦‹ Description πŸ¦‹

HDMI drivers usually incorporate a HDMI Codec β€” that's just how they're built, fr fr.

This structure expresses the generic HDMI Codec as used by the DRM HDMI Codec framework. highkey the whole point of her πŸ’œ


🌈 SEE ALSO 🌈

Kernel file ./include/drm/drm_connector.h, plus the whole squad:

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_hdmi_funcs(9), struct drm_connector_funcs(9), struct drm_cmdline_mode(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)


bestie that's a LOT of cross-references, but every single one of them is in the original so we're keeping every single one of them. iykyk πŸ’€

okay that's the whole page, mwah πŸ’‹ β€” she ships out of ./include/drm, dated October 2026, and she's filed under struct drm_...r_hdmi_audio(9) in the Kernel API Manual. slay and goodbye πŸ‘‘πŸŒˆ

πŸ“¦ where this page comes from