drm_atomic_commit(9)
π drm_atomic_commit(9) β like, the whole Kernel API Manual moment
okay bestie, so this one lives in the Kernel API Manual and it's called drm_atomic_commit β and yes the manual name is literally just hanging out at the top, we love a consistent header. Let's get into it π«Ά
β¨ NAME β¨
drm_atomic_commit β commit configuration atomically. iykyk, all-or-nothing energy π₯
π SYNOPSIS π
int drm_atomic_commit (struct drm_atomic_commit *state );
πΈ ARGUMENTS πΈ
stateβ the atomic configuration to check. that's the one, bestie π
π¦ DESCRIPTION π¦
okay so heads up, because this part matters: this function can return -EDEADLK if the driver needed to acquire more locks but encountered a deadlock π. When that happens, the caller must then do the usual w/w backoff dance and restart. Not me telling you to literally do the backoff dance, it's a real thing, do it. All other errors are fatal β like, actually fatal, so don't go ignoring them π«Ά
Also super important: this function will take its own reference on state. So callers should always release their reference with drm_atomic_commit_put. every time. no cap. π
β RETURN β
0 on success, negative error code on failure. that's it, that's the vibe check π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/drm_atomic.c 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_encoder_bridges(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_nonblocking_commit(9)drm_atomic_print_new_state(9)drm_state_dump(9)
that's a lot of friends but they're all iconic, we don't skip any of them π
ngl if you got -EDEADLK you're not done, you're just on a lil break. backoff, restart, slay.
and that's the whole page, bestie!! π this cutie came from ./drivers/gpu/drm and it's dated October 2026, filed right back under drm_atomic_commit(9) like the main character it is. periodt. πβ¨
π¦ 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