drm_do_probe_ddc_edid(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 a void * so, y'know, vibes (iykyk)
  • buf β€” the EDID data buffer that's gonna get filled up πŸ“ a u8 *, ready to receive
  • block β€” which 128 byte EDID block to start fetching from 🧚 it's an unsigned int, so like, 128 bytes per block, that's the unit bestie
  • len β€” the EDID data buffer length to fetch πŸ“ a size_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 πŸ”₯

  • 0 on success πŸ‘‘ slay, we got the EDID
  • -1 on 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