STRUCT DRM_DISPLAY_INFO(9)
π struct drm_display_info(9) π
okay bestie, welcome to the Kernel API Manual page for struct drm_display_info β and yes, this is literally the runtime data about the connected sink. no cap, we're getting into every single field π
β¨ NAME β¨
struct drm_display_info β runtime data about the connected sink π«Ά
πΈ SYNOPSIS πΈ
struct drm_display_info {
unsigned int width_mm;
unsigned int height_mm;
unsigned int bpc;
enum subpixel_order subpixel_order;
int panel_orientation;
u32 color_formats;
const u32 *bus_formats;
unsigned int num_bus_formats;
u32 bus_flags;
int max_tmds_clock;
bool dvi_dual;
bool is_hdmi;
bool has_audio;
bool has_hdmi_infoframe;
bool rgb_quant_range_selectable;
u8 edid_hdmi_rgb444_dc_modes;
u8 edid_hdmi_ycbcr444_dc_modes;
u8 cea_rev;
struct drm_hdmi_info hdmi;
struct hdr_sink_metadata hdr_sink_metadata;
bool non_desktop;
struct drm_monitor_range_info monitor_range;
struct drm_luminance_range_info luminance_range;
u8 mso_stream_count;
u8 mso_pixel_overlap;
u32 max_dsc_bpp;
u8 *vics;
int vics_len;
u32 quirks;
u16 source_physical_address;
struct drm_amd_vsdb_info amd_vsdb;
u8 panel_type;
};
π Members π
okay so these are all the fields, bestie β every one, no skipping, no "oops I forgot one" energy:
width_mmβ Physical width in mm.height_mmβ Physical height in mm.bpcβ Maximum bits per color channel. Used by HDMI and DP outputs.subpixel_orderβ Subpixel order of LCD panels.panel_orientationβ Read only connector property for built-in panels, indicating the orientation of the panel vs the device's casing.drm_connector_initsets this toDRM_MODE_PANEL_ORIENTATION_UNKNOWN. When notUNKNOWNthis gets used by thedrm_fb_helpersto rotate the fb to compensate and gets exported as prop to userspace.color_formatsβ HDMI Color formats, selects between RGB and YCbCr modes. Uses a bitmask ofDRM_OUTPUT_COLOR_FORMAT_defines, which are _not_ the same ones as used to describe the pixel format in framebuffers, and also don't match the formats inbus_formatswhich are shared with v4l.bus_formatsβ Pixel data format on the wire, somewhat redundant withcolor_formats. Array of sizenum_bus_formatsencoded usingMEDIA_BUS_FMT_defines shared with v4l and media drivers.num_bus_formatsβ Size ofbus_formatsarray.bus_flagsβ Additional information (like pixel signal polarity) for the pixel data on the bus, usingenum drm_bus_flagsvaluesDRM_BUS_FLAGS_.max_tmds_clockβ Maximum TMDS clock rate supported by the sink in kHz.0means undefined.dvi_dualβ Dual-link DVI sink?is_hdmiβ True if the sink is an HDMI device. This field shall be used instead of callingdrm_detect_hdmi_monitorwhen possible.has_audioβ True if the sink supports audio. This field shall be used instead of callingdrm_detect_monitor_audiowhen possible.has_hdmi_infoframeβ Does the sink support the HDMI infoframe?rgb_quant_range_selectableβ Does the sink support selecting the RGB quantization range?edid_hdmi_rgb444_dc_modesβ Mask of supported hdmi deep color modes in RGB 4:4:4. Even more stuff redundant withbus_formats.edid_hdmi_ycbcr444_dc_modesβ Mask of supported hdmi deep color modes in YCbCr 4:4:4. Even more stuff redundant withbus_formats.cea_revβ CEA revision of the HDMI sink.hdmiβ advance features of a HDMI sink.hdr_sink_metadataβ HDR Metadata Information read from sinknon_desktopβ Non desktop display (HMD).monitor_rangeβ Frequency range supported by monitor range descriptorluminance_rangeβ Luminance range supported by panelmso_stream_countβ eDP Multi-SST Operation (MSO) stream count from the DisplayID VESA vendor block.0for conventional Single-Stream Transport (SST), or2or4MSO streams.mso_pixel_overlapβ eDP MSO segment pixel overlap,0-8pixels.max_dsc_bppβ Maximum DSC target bitrate, if it is set to0the monitor's default value is used instead.vicsβ Array ofvics_lenVICs. Internal to EDID parsing.vics_lenβ Number of elements invics. Internal to EDID parsing.quirksβ EDID based quirks. DRM core and drivers can query thedrm_edid_quirkquirks usingdrm_edid_has_quirk, the rest of the quirks also tracked here are internal to EDID parsing.source_physical_addressβ Source Physical Address from HDMI Vendor-Specific Data Block, for CEC usage. Defaults toCEC_PHYS_ADDR_INVALID(0xffff).amd_vsdbβ AMD-specific VSDB information.panel_typeβ Panel type from DisplayID Display Parameters Data Block (tag0x21). UsesDRM_MODE_PANEL_TYPE_*constants.
π¦ Description π¦
Describes a given display (e.g. CRT or flat panel) and its limitations. For fixed display sinks like built-in panels there's not much difference between this and struct drm_connector. But for sinks with a real cable this structure is meant to describe all the things at the other end of the cable.
For sinks which provide an EDID this can be filled out by calling drm_add_edid_modes.
π SEE ALSO π
Kernel file ./include/drm/drm_connector.h β and all the besties it brought with it:
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_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)
that's the whole glow-up, bestie β source ./include/drm, dated October 2026, for struct drm_display_info(9). slay and read the docs πβ¨
π¦ 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