drm_do_probe_ddc_edid(9)
π drm_do_probe_ddc_edid β like, the Kernel API Manual page you didn't know you needed
okay so bestie, gather round π«Ά this is a page from the Kernel API Manual (manual section 9, kernel devs stay winning) and it's all about drm_do_probe_ddc_edid β the little function that goes "hey monitor, who even are you?" over I2C. iconic behavior honestly.
β¨ NAME β¨
drm_do_probe_ddc_edid β get EDID information via I2C π₯οΈβ¨
like. it literally fetches your display's whole self-description. main character function fr.
πΈ SYNOPSIS πΈ
int drm_do_probe_ddc_edid (void *data , u8 *buf , unsigned int block ,
size_t len );
yes she takes four arguments and yes she returns an int. copy it exactly, no cap π
π¦ ARGUMENTS π¦
dataβ the I2C device adapter π« it's avoid *so, y'know, vibes (iykyk)bufβ the EDID data buffer that's gonna get filled up π au8 *, ready to receiveblockβ which 128 byte EDID block to start fetching from π§ it's anunsigned int, so like, 128 bytes per block, that's the unit bestielenβ the EDID data buffer length to fetch π asize_t, so she's spacious
π DESCRIPTION π
so what does she do? she tries to fetch EDID information by calling I2C driver functions β¨ that's it, that's the whole job. she asks the I2C driver very nicely and hopes for the best π
no extra steps, no hidden lore, just a probe and a prayer.
π₯ RETURN π₯
0on success π slay, we got the EDID-1on failure π not slay, no EDID for you
π SEE ALSO π
okay this is the long part, and the way it is LONG. she has so many friends. Kernel file ./drivers/gpu/drm/drm_edid.c β that's where the family lives π and here's the whole group chat, in order:
drm_edid_header_is_valid(9), drm_edid_is_valid(9), drm_edid_valid(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_read(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)
no, I didn't skip any. there are literally that many. ate π
ngl bestie, if you're reading this page you're probably deep in DRM driver land β drink some water, your eyes deserve it π«Άπ§
okay that's the page!! mwah π this one's signed off from ./drivers/gpu/drm and dated October 2026, so like a little time capsule for future you πβ¨ bye bestie, go read some EDID bytes for me π¦
π¦ 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