HDMI CONNECTOR PROPERTIES(9)
๐ HDMI connector properties ๐ (Kernel API Manual, bestie)
Okay so picture this: you're deep in the Kernel API Manual and you hit this page, and it's literally all about the โจpropertiesโจ that live on an HDMI connector. Two of them. That's it. And they're both giving main character energy, so let's go ๐ซถ
๐ Broadcast RGB (HDMI specific)
So this property tells you which Quantization Range is being used โ like, Full vs Limited, the classic duo ๐
The way it works: the color processing pipeline gets adjusted to match whatever value the property holds, and the Infoframes get generated and sent accordingly. Everything stays in sync, no cap.
Important vibe check: this property is only relevant if the HDMI output format is RGB. If it's one of the YCbCr variant, it will be ignored. Literally ignored. Don't come for it ๐ธ
Also โ and this is the part people skip โ the CRTC attached to the connector must be configured by user-space to always produce full-range pixels. That's on you, bestie, not on the kernel.
The value of this property can be one of the following:
- Automatic โ the quantization range is selected automatically based on the mode, according to the HDMI specifications (
HDMI 1.4b - Section 6.6 - Video Quantization Ranges) ๐ - Full โ full quantization range is forced. Periodt.
- Limited 16:235 โ limited quantization range is forced. And like, despite the name suggesting otherwise, this works for any number of bits-per-component. The name is lowkey lying to you, but it's fine ๐ซ
โ ๏ธ Real talk: property values other than Automatic can result in colors being off (if limited is selected but the display expects full), or a black screen (if full is selected but the display expects limited). Black screen. BLANK. Nothing. So maybe don't just yolo it ๐ญ
Drivers can set up this property by calling drm_connector_attach_broadcast_rgb_property. That's the hookup, iykyk โจ
๐ฌ content type (HDMI specific)
This one indicates the content type setting to be used in HDMI infoframes, so the external device knows what kind of content it's getting and adjusts its display settings accordingly. It's basically telling the display "hey bestie, this is what you're looking at" ๐
The value of this property can be one of the following:
- No Data โ content type is unknown
- Graphics โ content type is graphics
- Photo โ content type is photo
- Cinema โ content type is cinema
- Game โ content type is game ๐ฎ
The meaning of each content type is defined in CTA-861-G table 15 โ go read the table, it's iconic.
Drivers can set up this property by calling drm_connector_attach_content_type_property. And the decoding to infoframe values is done through drm_hdmi_avi_infoframe_content_type ๐
โจ SEE ALSO โจ
Buckle up, this list is long โ the whole DRM connector cinematic universe. Every single one, in order, no skipping ๐
Kernel file ./drivers/gpu/drm/drm_connector.coverview(9)drm_get_connector_type_name(9)drm_connector_get_cmdline_mode(9)drm_connector_init(9)drm_connector_dynamic_init(9)drm_connector_init_with_ddc(9)drmm_connector_init(9)drmm_connector_hdmi_init(9)drm_connector_attach_edid_property(9)drm_connector_attach_encoder(9)drm_connector_has_possible_encoder(9)drm_connector_cec_phys_addr_invalidate(9)drm_connector_cec_phys_addr_set(9)drm_connector_cleanup(9)drm_connector_register(9)drm_connector_dynamic_register(9)drm_connector_unregister(9)drm_get_connector_status_name(9)drm_get_connector_force_name(9)drm_connector_list_iter_begin(9)drm_connector_list_iter_next(9)drm_connector_list_iter_end(9)drm_get_subpixel_order_name(9)drm_display_info_set_bus_formats(9)drm_get_tv_mode_from_name(9)drm_get_colorspace_name(9)standard connector properties(9)drm_mode_create_dvi_i_properties(9)drm_connector_attach_dp_subconnector_property(9)Analog TV Connector Properties(9)drm_connector_attach_content_type_property(9)drm_connector_attach_tv_margin_properties(9)drm_mode_create_tv_margin_properties(9)drm_mode_create_tv_properties_legacy(9)drm_mode_create_tv_properties(9)drm_mode_create_scaling_mode_property(9)Variable refresh properties(9)drm_connector_attach_vrr_capable_property(9)drm_connector_attach_scaling_mode_property(9)drm_mode_create_aspect_ratio_property(9)standard connector properties(9)โ yes it's here twice, we don't make the rules ๐drm_mode_create_hdmi_colorspace_property(9)drm_mode_create_dp_colorspace_property(9)drm_mode_create_content_type_property(9)drm_mode_create_suggested_offset_properties(9)drm_connector_set_path_property(9)drm_connector_set_tile_property(9)drm_connector_set_link_status_property(9)drm_connector_attach_max_bpc_property(9)drm_connector_attach_hdr_output_metadata_property(9)drm_connector_attach_broadcast_rgb_property(9)drm_connector_attach_colorspace_property(9)Color format(9)drm_connector_attach_color_format_property(9)drm_connector_atomic_hdr_metadata_equal(9)drm_connector_set_vrr_capable_property(9)drm_connector_set_panel_orientation(9)drm_connector_set_panel_orientation_with_quirk(9)drm_connector_set_orientation_from_panel(9)drm_connector_create_privacy_screen_properties(9)drm_connector_attach_privacy_screen_properties(9)drm_connector_attach_privacy_screen_provider(9)drm_connector_update_privacy_screen(9)drm_connector_find_by_fwnode(9)drm_connector_oob_hotplug_event(9)drm_connector_get_color_format(9)Tile group(9)drm_mode_put_tile_group(9)drm_mode_get_tile_group(9)drm_mode_create_tile_group(9)drm_connector_attach_panel_type_property(9)
That's the whole page, bestie. Go forth and configure your CRTC correctly ๐
๐ mwah ๐ โ this one lives over in ./drivers/gpu/drm, dated October 2026, and it slays every time โจ
๐ฆ 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