ATOMIC STATE RESET AND INITIALIZATION(9)
Kernel API Manual bestie!! We're in (9) territory, and this page is atomic stat...itialization(9) β aka atomic state reset and initialization. Buckle up, it's giving kernel-graphics study date π
β¨ NAME β¨
atomic state reset and initialization β the reset-and-init era of DRM atomic state, and yes, we're gonna understand it together π¦
πΈ DESCRIPTION πΈ
Okay so here's the vibe: both the drm core and the atomic helpers straight-up assume that there is always the full and correct atomic software state available for all connectors, CRTCs and planes. Like, all of them. Always. Which is lowkey a problem on driver load, and also after system suspend π
One way to solve this is to have a hardware state read-out infrastructure that reconstructs the full software state β for example, the i915 driver does this. Slay for them, honestly π
The simpler solution is to just reset the software state to everything off, which is easiest to do by calling drm_mode_config_reset. To facilitate this, the atomic helpers provide default reset implementations for all hooks. Cute, convenient, we love a built-in reset moment β¨
On the upside, the precise state tracking of atomic simplifies system suspend and resume a lot. For drivers using drm_mode_config_reset, a complete recipe is implemented in drm_atomic_helper_suspend and drm_atomic_helper_resume. For other drivers, the building blocks are split out β see the documentation for these functions, bestie π
π« SEE ALSO π«
- Kernel file:
./drivers/gpu/drm/drm_atomic_state_helper.cβ the source file to go peek at π __drm_atomic_helper_crtc_state_init(9)__drm_atomic_helper_crtc_reset(9)drm_atomic_helper_crtc_reset(9)drm_atomic_helper_crtc_create_state(9)__drm_atomic_helper_crtc_duplicate_state(9)drm_atomic_helper_crtc_duplicate_state(9)__drm_atomic_helper_crtc_destroy_state(9)drm_atomic_helper_crtc_destroy_state(9)__drm_atomic_helper_plane_state_init(9)__drm_atomic_helper_plane_reset(9)drm_atomic_helper_plane_reset(9)drm_atomic_helper_plane_create_state(9)__drm_atomic_helper_plane_duplicate_state(9)drm_atomic_helper_plane_duplicate_state(9)__drm_atomic_helper_plane_destroy_state(9)drm_atomic_helper_plane_destroy_state(9)__drm_atomic_helper_connector_state_init(9)__drm_atomic_helper_connector_reset(9)drm_atomic_helper_connector_reset(9)drm_atomic_helper_connector_create_state(9)drm_atomic_helper_connector_tv_margins_reset(9)drm_atomic_helper_connector_tv_reset(9)drm_atomic_helper_connector_tv_check(9)__drm_atomic_helper_connector_duplicate_state(9)drm_atomic_helper_connector_duplicate_state(9)__drm_atomic_helper_connector_destroy_state(9)drm_atomic_helper_connector_destroy_state(9)__drm_atomic_helper_private_obj_create_state(9)__drm_atomic_helper_private_obj_duplicate_state(9)__drm_atomic_helper_bridge_duplicate_state(9)drm_atomic_helper_bridge_duplicate_state(9)drm_atomic_helper_bridge_destroy_state(9)__drm_atomic_helper_bridge_state_init(9)drm_atomic_helper_bridge_create_state(9)
And that's the page, periodt π
Sign-off tea: this one comes from ./drivers/gpu/drm, dated October 2026, under the very long and iconic name atomic stat...itialization(9). byeee π«Άβ¨
π¦ 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