drm_atomic_...heck_modeset(9)
π NAME π
okay bestie, welcome to the drm_atomic_...heck_modeset(9) page from the Kernel API Manual β we're talking about drm_atomic_helper_check_modeset β validate state object for modeset changes. periodt β¨
π¦ SYNOPSIS π¦
int drm_atomic_helper_check_modeset (struct drm_device *dev , struct drm_atomic_commit *state );
π ARGUMENTS π
devβ the DRM device, obvi πstateβ the driver state object, the main character of this whole operation π
β¨ DESCRIPTION β¨
So the vibe here is: check the state object to see if the requested state is physically possible. No cap, that's the whole job. This does all the CRTC and connector related computations for an atomic update and adds any additional connectors needed for full modesets. It calls the various per-object callbacks in the follow order:
drm_connector_helper_funcs.atomic_best_encoderfor determining the new encoder.drm_connector_helper_funcs.atomic_checkto validate the connector state.- If it's determined a modeset is needed then all connectors on the affected CRTC are added and
drm_connector_helper_funcs.atomic_checkis run on them. drm_encoder_helper_funcs.mode_valid,drm_bridge_funcs.mode_validanddrm_crtc_helper_funcs.mode_validare called on the affected components.drm_bridge_funcs.mode_fixupis called on all encoder bridges.drm_encoder_helper_funcs.atomic_checkis called to validate any encoder state. This function is only called when the encoder will be part of a configured CRTC, it must not be used for implementing connector property validation. If this function isNULL,drm_atomic_encoder_helper_funcs.mode_fixupis called instead.drm_crtc_helper_funcs.mode_fixupis called last, to fix up the mode with CRTC constraints.
πΈ the state flags bestie π
drm_crtc_state.mode_changedis set when the input mode is changed.drm_crtc_state.connectors_changedis set when a connector is added or removed from the CRTC.drm_crtc_state.active_changedis set whendrm_crtc_state.activechanges, which is used for DPMS.drm_crtc_state.no_vblankis set from the result ofdrm_dev_has_vblank.
See also: drm_atomic_crtc_needs_modeset
π¨ IMPORTANT π¨
Drivers which setdrm_crtc_state.mode_changed(e.g. in theirdrm_plane_helper_funcs.atomic_checkhooks if a plane update can't be done without a full modeset) must call this function after that change. It is permitted to call this function multiple times for the same update, e.g. when thedrm_crtc_helper_funcs.atomic_checkfunctions depend upon the adjusted dotclock for fifo space allocation and watermark computation. no cap, this one matters π
π RETURN π
Zero for success or -errno β simple as that, bestie π«Ά
π SEE ALSO π
Kernel file ./drivers/gpu/drm/drm_atomic_helper.c
overview(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_disable_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)
this lil page lives in ./drivers/gpu/drm, dated October 2026, and it's your girl drm_atomic_...heck_modeset(9) signing off β love u bestie, go validate those modesets π
β¨π¦
π¦ 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