STRUCT DRM_MODE_CONFIG_HELPER_FUNCS(9)
π NAME π
okay bestie, this is the struct drm_...helper_funcs(9) page in the Kernel API Manual, and itβs all about struct drm_mode_config_helper_funcs β the way this struct carries the global modeset helper operations is iconic. lowkey very DRM, highkey very important. π
β¨
struct drm_mode_config_helper_funcsβ global modeset helper operations
β¨ SYNOPSIS β¨
struct drm_mode_config_helper_funcs {
void (*atomic_commit_tail)(struct drm_atomic_commit *state);
int (*atomic_commit_setup)(struct drm_atomic_commit *state);
};
π― Members π―
atomic_commit_tail
- This hook is used by the default
atomic_commithook implemented indrm_atomic_helper_committogether with the nonblocking commit helpers (peepdrm_atomic_helper_setup_commitfor a starting point) to implement blocking and nonblocking commits easily. Heads up: it is not used by the atomic helpers. π - This function is called when the new atomic state has already been swapped into the various state pointers. The
statepassed in therefore contains copies of the old/previous state. This hook should commit the new state into hardware. The helpers have already waited for preceding atomic commits and fences, but drivers can add more waiting calls at the start of their implementation, e.g. to wait for a driver-internal request for implicit syncing, before starting to commit the update to the hardware. π«Ά - After the atomic update is committed to the hardware, this hook needs to call
drm_atomic_helper_commit_hw_done. Then wait for the update to be executed by the hardware β for example usingdrm_atomic_helper_wait_for_vblanksordrm_atomic_helper_wait_for_flip_doneβ and then clean up the old framebuffers usingdrm_atomic_helper_cleanup_planes. β¨ - When disabling a CRTC, this hook _must_ stall for the commit to complete. Vblank waits donβt work on disabled CRTC, hence the core canβt take care of this. And it also canβt rely on the vblank event, since that can be signalled already when the screen shows black, which can happen much earlier than the last hardware access needed to shut off the display pipeline completely. π
- This hook is optional. The default implementation is
drm_atomic_helper_commit_tail. π
atomic_commit_setup
- This hook is used by the default
atomic_commithook implemented indrm_atomic_helper_committogether with the nonblocking helpers (seedrm_atomic_helper_setup_commit) to extend the DRM commit setup. It is not used by the atomic helpers. π - This function is called at the end of
drm_atomic_helper_setup_commit, so once the commit has been properly setup across the generic DRM object states. It lets drivers do some additional commit tracking that isnβt related to a CRTC, plane or connector, tracked in adrm_private_objstructure. π¦ - Note that the documentation of
drm_private_objhas more details on how one should implement this. π - This hook is optional. πΈ
π Description π
These helper functions are used by the atomic helpers. periodt, thatβs the whole vibe. no cap. π
π¦ SEE ALSO π¦
- Kernel file
./include/drm/drm_modeset_helper_vtables.hoverview(9) struct drm_crtc_helper_funcs(9)drm_crtc_helper_add(9)struct drm_encoder_helper_funcs(9)drm_encoder_helper_add(9)struct drm_connector_helper_funcs(9)drm_connector_helper_add(9)struct drm_plane_helper_funcs(9)drm_plane_helper_add(9)
xoxo, bestie π
β source/version: ./include/drm; date: October 2026. slay. π
π¦ 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