drm_edid_read(9)
β¨ drm_edid_read(9) β¨
okay so bestie, welcome to the Kernel API Manual π today we're talking about drm_edid_read β the little function that reads your monitor's whole personality (its EDID, obviously) straight off the connector's I2C adapter. it's giving "let me get to know you" energy π«Ά
πΈ SYNOPSIS πΈ
const struct drm_edid * drm_edid_read (struct drm_connector *connector);
like, one argument. that's it. we love a low-maintenance icon π
π ARGUMENTS π
connectorβ the connector you're using. your main character. the one whose I2C adapter we're gonna hit up π
π¦ DESCRIPTION π¦
so the whole vibe: this reads EDID using the connector's I2C adapter. simple, clean, slay β¨
but β and this is the tea β the EDID can be overridden π³ either by debugfs override_edid, or by the firmware EDID (that's drm_edid_load_firmware and the drm.edid_firmware parameter). and they go in this priority order, okay? remember it:
- debugfs
override_edid - firmware EDID (
drm_edid_load_firmware/drm.edid_firmware)
having either of those means we bypass the actual EDID reads entirely β no cap, no probing, nothing π₯
π lowkey important: the returned pointer must be freed using drm_edid_free. do not leave it hanging, bestie. that's not the move.
π RETURN π
a pointer to the EDID π β¦or NULL if the probe/read failed π (it happens, we recover, we move on).
π SEE ALSO π
literally the whole friend group, periodt:
Kernel file ./drivers/gpu/drm/drm_edid.c
drm_edid_header_is_valid(9), drm_edid_is_valid(9), drm_edid_valid(9), drm_do_probe_ddc_edid(9), drm_edid_override_connector_update(9), drm_edid_raw(9), drm_edid_alloc(9), drm_edid_dup(9), drm_edid_free(9), drm_probe_ddc(9), drm_get_edid(9), drm_edid_read_custom(9), drm_edid_read_ddc(9), drm_edid_get_product_id(9), drm_edid_print_product_id(9), drm_edid_get_panel_id(9), drm_edid_read_base_block(9), drm_get_edid_switcheroo(9), drm_edid_read_switcheroo(9), drm_edid_duplicate(9), edid_get_quirks(9), drm_match_cea_mode(9), drm_display_mode_from_cea_vic(9), drm_edid_match(9), drm_edid_get_monitor_name(9), drm_edid_to_sad(9), drm_edid_to_speaker_allocation(9), drm_av_sync_delay(9), drm_detect_hdmi_monitor(9), drm_detect_monitor_audio(9), drm_default_rgb_quant_range(9), drm_edid_connector_update(9), drm_edid_connector_add_modes(9), drm_connector_update_edid_property(9), drm_add_edid_modes(9), drm_add_modes_noedid(9), drm_hdmi_avi_infoframe_from_display_mode(9), drm_hdmi_avi_infoframe_quant_range(9), drm_hdmi_vendor_infoframe_from_display_mode(9), drm_edid_is_digital(9)
π§ and that's the page, bestie!! this one comes to you from ./drivers/gpu/drm, dated October 2026 β screenshot it, frame it, put it on your wall π mwah π
π¦ 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