STRUCT DRM_HDMI_INFO(9)
π struct drm_hdmi_info β the Kernel API Manual, bestie edition π
okay so this page is struct drm_hdmi_info(9) from the Kernel API Manual and it's literally the little gossip folder where the kernel keeps the tea about what your HDMI sink can actually do. runtime info, no cap. let's get into it β¨
π NAME π
struct drm_hdmi_info β runtime information about the connected HDMI sink. that's it. that's the vibe check. π«Ά
β¨ SYNOPSIS β¨
struct drm_hdmi_info {
struct drm_scdc scdc;
unsigned long y420_vdb_modes[BITS_TO_LONGS(256)];
unsigned long y420_cmdb_modes[BITS_TO_LONGS(256)];
u8 y420_dc_modes;
u8 max_frl_rate_per_lane;
u8 max_lanes;
struct drm_hdmi_dsc_cap dsc_cap;
};
look at her. seven fields. main character energy fr fr π
πΈ Members πΈ (the whole cast)
scdcβ your sink's SCDC support and capabilities. that's the little handshake channel, she's got lore πy420_vdb_modesβ a bitmap of modes that can support ycbcr420 output only (so like, not normal RGB/YCBCR444/422 outputs, they said what they said π). the max VIC defined by theCEA-861-Gspec is219, so the size is256bits to map up to256VICs. yes bestie, 256 bits for 219 VICs, that's the bit math, don't @ me π§y420_cmdb_modesβ a bitmap of modes that can support ycbcr420 output also, along with normal HDMI outputs. this one's the friendly one, she plays nice with everybody π«Ά. the max VIC defined by theCEA-861-Gspec is219, so the size is256bits to map up to256VICs. same deal, same numbers, iconic πy420_dc_modesβ bitmap of deep color support index. deep color!! we love a rich palette πmax_frl_rate_per_laneβ support fixed rate link. per lane. that's the spec, that's the field π¦max_lanesβ supported by sink. how many lanes your sink is bringing to the function πdsc_capβ DSC capabilities of the sink. compression girlies rise π₯
β Description β
so what does this struct do? it describes if a given display supports advanced HDMI 2.0 features. that's the whole assignment. β¨
and where does this info even come from? it's available in CEA-861-F extension blocks (like HF-VSDB). iykyk π
ngl this is the part where you go "oh so that's how the kernel knows my monitor is fancy." and honestly? correct.
π¦ SEE ALSO π¦ (the whole friend group, nobody left out)
Kernel file ./include/drm/drm_connector.h, plus literally all of these:
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), 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).
like i said. everybody showed up to this party ππ
and that's the page bestie!! sign-off time: this one lives in ./include/drm, dated October 2026, and it's filed under struct drm_hdmi_info(9). go read your EDID and hydrate ππΈβ¨
π¦ 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