drm_edid_read(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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:

  1. debugfs override_edid
  2. 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