drm_atomic_a...oder_bridges(9)
π NAME π
drm_atomic_add_encoder_bridges β adds the bridges that are attached to an encoder, slay
So this is a page from the Kernel API Manual, bestie, and it's all about drm_atomic_add_encoder_bridges. It's giving "tiny function, big responsibilities" energy, ngl. π
β¨ SYNOPSIS β¨
int drm_atomic_add_encoder_bridges (struct drm_atomic_commit *state ,
struct drm_encoder *encoder );
Like, that's the whole signature. Two args. No cap. π«Ά
πΈ ARGUMENTS πΈ
stateβ the atomic state. Yeah. That one. The main character of the whole atomic sequence, honestly. πencoderβ a DRM encoder. It's the thing whose bridges we're about to collect. π
π¦ DESCRIPTION π¦
Okay so here's the tea: this function adds all the bridges attached to encoder. All of them. Every single one. Obsessed. β¨
Why do we even care? Because you need those bridge states sitting inside state so they're actually available when these get called:
drm_bridge_funcs.atomic_checkdrm_bridge_funcs.atomic_pre_enabledrm_bridge_funcs.atomic_enabledrm_bridge_funcs.atomic_disable_post_disable
That's the whole reason, fr fr. No bridge states in state = those callbacks are gonna have a bad time. π
π₯ RETURN π₯
0β success, we ate, periodt. π-EDEADLKβ uh oh. π The w/w mutex code has detected a deadlock and the entire atomic sequence must be restarted. Like, the entire sequence. Start over. Don't fight it.-ENOMEMβ also possible, because memory said no. π
Heads up bestie: when the error is EDEADLK, that's the w/w mutex code flagging a deadlock and you genuinely have to restart the whole atomic sequence. All other errors are fatal. Like, no recovery arc. π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/drm_atomic.c, plus all of these icons:
state lifetime(9)drm_crtc_commit_wait(9)drm_atomic_commit_default_release(9)drm_atomic_commit_init(9)drm_atomic_commit_alloc(9)drm_atomic_commit_default_clear(9)drm_atomic_commit_clear(9)__drm_atomic_commit_free(9)drm_atomic_get_crtc_state(9)drm_atomic_get_plane_state(9)drm_atomic_get_colorop_state(9)drm_atomic_get_old_colorop_state(9)drm_atomic_get_new_colorop_state(9)drm_atomic_plane_check(9)handling driver private state(9)drm_atomic_private_obj_init(9)drm_atomic_private_obj_fini(9)drm_atomic_get_private_obj_state(9)drm_atomic_get_old_private_obj_state(9)drm_atomic_get_new_private_obj_state(9)drm_atomic_get_old_connector_for_encoder(9)drm_atomic_get_new_connector_for_encoder(9)drm_atomic_get_connector_for_encoder(9)drm_atomic_get_old_crtc_for_encoder(9)drm_atomic_get_new_crtc_for_encoder(9)drm_atomic_get_connector_state(9)drm_atomic_get_bridge_state(9)drm_atomic_get_old_bridge_state(9)drm_atomic_get_new_bridge_state(9)drm_atomic_add_affected_connectors(9)drm_atomic_add_affected_planes(9)drm_atomic_add_affected_colorops(9)drm_atomic_check_only(9)drm_atomic_commit(9)drm_atomic_nonblocking_commit(9)drm_atomic_print_new_state(9)drm_state_dump(9)
Okay that's the whole page, bestie π This little gem lives in ./drivers/gpu/drm, dated October 2026 β go forth and add those bridges, ily, bye! π§β¨
π¦ 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