drm_atomic_check_only(9)
π drm_atomic_check_only β a vibe check for your atomic config
okay so bestie, this one's from the Kernel API Manual, and it's genuinely iconic: it's the "will this even work tho" function. No cap. π
β¨ NAME β¨
drm_atomic_check_only β check whether a given config would work π«Ά
πΈ SYNOPSIS πΈ
int drm_atomic_check_only (struct drm_atomic_commit *state );
π¦ ARGUMENTS π¦
stateβ the atomic configuration you want to check. that's it, that's the whole argument, she's lowkey simple π
π DESCRIPTION π
So like, real talk: this function can return -EDEADLK π and that happens when the driver needed to grab more locks but hit a deadlock. Not the fun kind of deadlock, the kernel kind.
When that happens, the caller must then do the usual w/w backoff dance and restart. the w/w backoff dance is a whole thing, but it's the standard move β you back off, you retry, you slay π
β οΈ Every other error is fatal. not "oops retry" fatal β actually fatal. so if you get anything that isn't -EDEADLK, do not come for the retry, because it's not giving second chances π
π RETURN π
0on success β we ate, no notes β¨- a negative error code on failure β she's not okay, bestie π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/drm_atomic.c, plus the whole friend group:
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_commit(9)drm_atomic_nonblocking_commit(9)drm_atomic_print_new_state(9)drm_state_dump(9)
and that's the whole page, bestie π this one lives in the kernel docs under ./drivers/gpu/drm, it's tagged October 2026, and it's part of the Kernel API Manual. 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