drm_bridge_hpd_enable(9)
π drm_bridge_hpd_enable(9) β the Kernel API Manual glow-up π
okay bestie, welcome to the Kernel API Manual, the drm_bridge_hpd_enable(9) page specifically, and honestly? this one's giving "small function, big responsibilities." let's get into it β¨
πΈ NAME πΈ
drm_bridge_hpd_enable β turn on hot plug detection for the bridge. that's it, that's the vibe π
β¨ SYNOPSIS β¨
void drm_bridge_hpd_enable (struct drm_bridge *bridge , void (*cb)(void
*data, enum drm_connector_status status) , void *data );
like, literally just three things and you're off to the races π
π¦ ARGUMENTS π¦
bridgeβ the bridge control structure. your main character struct, the one you're doing all this for πcbβ the hot-plug detection callback. the little function that gets tapped on the shoulder when something happens π«Άdataβ the data that gets passed to that hot-plug detection callback. it's giving "plus one" energy, it comes along for the ride π
π§ DESCRIPTION π§
so here's the tea, bestie: this function calls drm_bridge_funcs.hpd_enable if it's implemented, and then registers the cb and data you handed over as the hot plug notification callback. from that moment on, whenever the bridge detects an output status change, that cb gets called with your data. every single time. until hot plug notification gets disabled again with drm_bridge_hpd_disable. periodt π
β οΈ okay important: hot plug detection is only supported if theDRM_BRIDGE_OP_HPDflag is set inbridge->ops. this function shall not be called when that flag is not set. like, don't. it's not a "try it and see" situation, ngl π
also, and this is the part people forget: only one hot plug detection callback can be registered at a time. so calling this function when hot plug detection is already enabled for the bridge? that's an error. one callback, one slot, no queue π
π SEE ALSO π
the whole friend group, no cap:
- Kernel file
./drivers/gpu/drm/drm_bridge.c overview(9)display driver integration(9)special care dsi(9)dsi bridge operations(9)bridge chain format selection(9)drm_bridge_enter(9)drm_bridge_exit(9)drm_bridge_unplug(9)drm_bridge_get(9)drm_bridge_put(9)drm_bridge_clear_and_put(9)drm_bridge_put_void(9)drm_bridge_add(9)devm_drm_bridge_add(9)drm_bridge_remove(9)drm_bridge_attach(9)bridge operations(9)drm_bridge_chain_mode_valid(9)drm_bridge_chain_mode_set(9)drm_atomic_bridge_chain_disable(9)drm_atomic_bridge_chain_post_disable(9)drm_atomic_bridge_chain_pre_enable(9)drm_atomic_bridge_chain_enable(9)drm_atomic_bridge_chain_check(9)drm_bridge_detect(9)drm_bridge_get_modes(9)drm_bridge_edid_read(9)drm_bridge_hpd_disable(9)drm_bridge_hpd_notify(9)of_drm_find_and_get_bridge(9)of_drm_find_bridge(9)of_drm_get_bridge_by_endpoint(9)devm_drm_put_bridge(9)
iykyk π₯
and that's the whole page!! mwah π this gem lives at ./drivers/gpu/drm, dated October 2026, and it's filed under drm_bridge_hpd_enable(9) β go read the source, bestie, it slays πβ
π¦ 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