of_dp_aux_populate_bus(9)
β¨ 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 thatdrm_dp_aux_inithas 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 callof_dp_aux_depopulate_busto undo it, or just use thedevmversion of this function. don't leave her hanging, that's so not slay of you π
π RETURN π
0if no error, or a negative error code β¨- returns
-ENODEVif there are no children. and thedone_probingfunction 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:
dp_aux_ep_match(9)dp_aux_ep_probe(9)dp_aux_ep_remove(9)dp_aux_ep_shutdown(9)dp_aux_ep_dev_release(9)of_dp_aux_ep_destroy(9)of_dp_aux_depopulate_bus(9)devm_of_dp_aux_populate_bus(9)
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
- 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