drm_atomic_h...anes_on_crtc(9)
π NAME π
Okay so bestie, meet drm_atomic_helper_disable_planes_on_crtc(9) β the Kernel API Manual's very own helper to disable a CRTC's planes. That's it, that's the whole vibe. β¨
π¦ SYNOPSIS π¦
void drm_atomic_helper_disable_planes_on_crtc (struct drm_crtc_state
*old_crtc_state , bool atomic );
Lowkey just two little arguments and she's off to turn everything off π
π ARGUMENTS π
old_crtc_stateβ an atomic state object carrying the old CRTC state. She's looking at where you've been, not where you're going πatomicβ if it's set, she synchronizes with the CRTC'satomic_begin/flushhooks. So it's the "yes queen, do the whole ritual" switch πΈ
β¨ DESCRIPTION β¨
So what does she actually do? She disables all the planes associated with the given CRTC. Every single one. Not a crumb left. π
The manual says you can use this for instance in the CRTC helper atomic_disable callback to disable all planes β that's the canonical use case, iykyk.
Now here's the cute little sequencing detail: if the atomic parameter is set, the function calls the CRTC's atomic_begin hook before disabling the planes, and the atomic_flush hook after. Order matters, bestie, she's nothing if not choreographed π§
β οΈ And now the serious bit, no cap: it is a bug to call this function without having implemented the drm_plane_helper_funcs.atomic_disable plane hook. Like, actual bug. Not the fun kind. Do not test her. π
π₯ SEE ALSO π₯
The whole friend group, in original order β every last one of them π«Ά
- Kernel file
./drivers/gpu/drm/drm_atomic_helper.coverview(9) drm_atomic_helper_check_modeset(9)drm_atomic_helper_check_wb_connector_state(9)drm_atomic_helper_check_plane_state(9)drm_atomic_helper_check_crtc_primary_plane(9)drm_atomic_helper_check_planes(9)drm_atomic_helper_check(9)drm_atomic_helper_commit_encoder_bridge_disable(9)drm_atomic_helper_commit_crtc_disable(9)drm_atomic_helper_commit_encoder_bridge_post_disable(9)drm_atomic_helper_update_legacy_modeset_state(9)drm_atomic_helper_calc_timestamping_constants(9)drm_atomic_helper_commit_crtc_set_mode(9)drm_atomic_helper_commit_modeset_disables(9)drm_atomic_helper_commit_writebacks(9)drm_atomic_helper_commit_encoder_bridge_pre_enable(9)drm_atomic_helper_commit_crtc_enable(9)drm_atomic_helper_commit_encoder_bridge_enable(9)drm_atomic_helper_commit_modeset_enables(9)drm_atomic_helper_wait_for_fences(9)drm_atomic_helper_wait_for_vblanks(9)drm_atomic_helper_wait_for_flip_done(9)drm_atomic_helper_commit_tail(9)drm_atomic_helper_commit_tail_rpm(9)drm_atomic_helper_async_check(9)drm_atomic_helper_async_commit(9)drm_atomic_helper_commit(9)implementing nonblocking commit(9)drm_atomic_helper_setup_commit(9)drm_atomic_helper_wait_for_dependencies(9)drm_atomic_helper_fake_vblank(9)drm_atomic_helper_commit_hw_done(9)drm_atomic_helper_commit_cleanup_done(9)drm_atomic_helper_prepare_planes(9)drm_atomic_helper_unprepare_planes(9)drm_atomic_helper_commit_planes(9)drm_atomic_helper_commit_planes_on_crtc(9)drm_atomic_helper_cleanup_planes(9)drm_atomic_helper_swap_state(9)drm_atomic_helper_update_plane(9)drm_atomic_helper_disable_plane(9)drm_atomic_helper_set_config(9)drm_atomic_helper_disable_all(9)drm_atomic_helper_reset_crtc(9)drm_atomic_helper_shutdown(9)drm_atomic_helper_duplicate_state(9)drm_atomic_helper_suspend(9)drm_atomic_helper_commit_duplicated_state(9)drm_atomic_helper_resume(9)drm_atomic_helper_page_flip(9)drm_atomic_helper_page_flip_target(9)drm_atomic_helper_bridge_propagate_bus_fmt(9)drm_atomic_helper_bridge_get_hdmi_output_bus_fmts(9)
And that's the whole page, bestie π Hope you slay your modeset π
Source: ./drivers/gpu/drm β dated October 2026 β and the page header was drm_atomic_h...anes_on_crtc(9), in case you were wondering where we came in π
π¦ 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