drm_atomic_g...olorop_state(9)
π drm_atomic_g...olorop_state β a Kernel API Manual moment
okay so bestie, welcome to the Kernel API Manual page for drm_atomic_g...olorop_state(9) β yes the name is doing a little ellipsis thing, we love an abbreviated icon β¨
πΈ NAME πΈ
drm_atomic_get_colorop_state β literally just get the colorop state, that's the whole job, no cap π
π¦ SYNOPSIS π¦
struct drm_colorop_state * drm_atomic_get_colorop_state (struct
drm_atomic_commit *state , struct drm_colorop *colorop );
like, that's the whole signature, copy it exactly bestie π«Ά
π ARGUMENTS π
stateβ the global atomic state object. yes global, she's the main character of this whole operation πcoloropβ the colorop you want the state object for. that's the one. that's your girl π
π₯ DESCRIPTION π₯
So what does this function do?? It returns the colorop state for the given colorop β and if that state doesn't exist yet? it allocates it, because it's an icon and it handles things π β¨
It also grabs the relevant plane lock to make sure that the state is consistent. gotta protect the vibe check, y'know? π
What you get back is either:
- the allocated state, or
- the error code encoded into the pointer
β οΈ okay this part matters bestie: when the error is EDEADLK, the w/w mutex code has detected a deadlock and the entire atomic sequence must be restarted. like, the whole thing. start over. no shortcuts π
All other errors are fatal. not cute. not recoverable. fatal fr fr π
π SEE ALSO π
OK this list is LONG and every single one of these is staying, because I would never do my besties dirty by skipping entries π
Kernel file ./drivers/gpu/drm/drm_atomic.c, plus:
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_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_commit(9)drm_atomic_nonblocking_commit(9)drm_atomic_print_new_state(9)drm_state_dump(9)
like, the whole friend group showed up ππ
π§ sign-off π§
this lil masterpiece lives in ./drivers/gpu/drm, dated October 2026 β go read it, it's giving kernel dev excellence, iykyk πΈβ¨π«Ά
π¦ 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