drm_atomic_get_plane_state(9)
β¨ drm_atomic_get_plane_state(9) β¨
Okay bestie, so this is a page from the Kernel API Manual β yes, the kernel, that big serious thing β and it's about grabbing a plane state. Stay with me, it's actually cute. π
πΈ NAME πΈ
drm_atomic_get_plane_state β get plane state. That's literally the whole job. Iconic behaviour, no notes. π
π¦ SYNOPSIS π¦
struct drm_plane_state * drm_atomic_get_plane_state (struct
drm_atomic_commit *state , struct drm_plane *plane );
π ARGUMENTS π
stateβ the global atomic state object. Like, the big picture container for the whole operation. πplaneβ the plane you want the state object for. This is your main character. π
π DESCRIPTION π
So what this function does: it returns the plane state for the given plane, and it allocates it if needed β no cap, it'll make one for you if there isn't one already. π«Ά
It also grabs the relevant plane lock, which is the whole vibe check here, because it makes sure the state is consistent. Lock first, chaos never. π₯
π RETURN π
You get either the allocated state, or an error code that's been encoded into the pointer. Fr fr, that's how this one works β the pointer itself is holding the error. π
When the error is EDEADLK, that means the w/w mutex code has detected a deadlock, and the entire atomic sequence must be restarted. Like, not just a little retry β the whole sequence. Periodt. π
All other errors are fatal. π So, y'know, handle those.
π 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_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_commit(9), drm_atomic_nonblocking_commit(9), drm_atomic_print_new_state(9), drm_state_dump(9)
That's a whole friend group of functions, and honestly they all ate. π§
And that's the page! This one lives in ./drivers/gpu/drm, it's dated October 2026, and the whole thing is filed under drm_atomic_get_plane_state(9). Go forth and get those plane states, bestie. π¦β¨π
π¦ 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