of_dp_aux_populate_bus(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ of_dp_aux_populate_bus(9) ✨

okay so real talk bestie, this one lives in the Kernel API Manual (section 9, the "kernel internals" zone, iykyk) and it's called of_dp_aux_populate_bus β€” say that five times fast, I dare you πŸ’…


πŸŽ€ NAME πŸŽ€

of_dp_aux_populate_bus β€” populate the endpoint device on the DP AUX, no big deal, just birthing a whole panel device πŸ¦‹


🌸 SYNOPSIS 🌸

int of_dp_aux_populate_bus (struct drm_dp_aux *aux , int
(*done_probing)(struct drm_dp_aux *aux) );

like, look at that signature. she's serving function-pointer energy πŸ‘‘


🫢 ARGUMENTS 🫢

  • aux β€” the AUX channel whose device we want to populate. important! it is required that drm_dp_aux_init has already been called for this AUX channel. no skipping steps bestie, that's the prerequisite era ⭐
  • done_probing β€” the callback function to call after the EP device finishes probing. but listen: it will not be called if there are no EP devices, and in that case this function returns -ENODEV. so don't be out here waiting by the phone for a callback that's never coming 😭

πŸ’– DESCRIPTION πŸ’–

so what does she actually do?? this function will populate the device (expected to be an eDP panel) under the "aux-bus" node of the device providing the AUX channel (AKA aux->dev). it's giving matchmaker, honestly 🧚

when this function finishes, it is _possible_ (but not guaranteed) that our sub-device will have finished probing. and like, please note: if our sub-device returns -EPROBE_DEFER or is probing asynchronously for some reason, we will not return any error codes ourselves β€” but our sub-device will _not_ have actually probed successfully yet. so the vibe check is: no error β‰  success, and that's the tricky part 🫠

in many cases it's important for the caller of this function to be notified when our sub device finishes probing. our sub device is expected to be an eDP panel and the caller is expected to be an eDP controller. the eDP controller needs to be able to get a reference to the panel when it finishes probing. that's literally why the caller can pass in a function pointer that will be called when our sub-device finishes probing β€” it's the "text me when you're done" of kernel APIs πŸ“±

⚠️ if this function succeeds you should later make sure you call of_dp_aux_depopulate_bus to undo it, or just use the devm version of this function. don't leave her hanging, that's so not slay of you πŸ™ˆ

🌈 RETURN 🌈

  • 0 if no error, or a negative error code ✨
  • returns -ENODEV if there are no children. and the done_probing function won't be called in that case. periodt πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/gpu/drm/display/drm_dp_aux_bus.c β€” go read the source, main character behavior honestly πŸ‘‘

and the whole friend group:


okay that's the whole page bestie, you ate that πŸ“ so anyway, this little masterpiece comes to you from ./drivers/gpu/drm/display, dated October 2026, and it's filed under of_dp_aux_populate_bus(9) β€” screenshot it, frame it, put it on your wall πŸ’œπŸŽ€

πŸ“¦ where this page comes from