include/drm/drm_atomic.h
Source file repositories/reference/linux-study-clean/include/drm/drm_atomic.h
File Facts
- System
- Linux kernel
- Corpus path
include/drm/drm_atomic.h- Extension
.h- Size
- 50234 bytes
- Lines
- 1378
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
drm/drm_crtc.hdrm/drm_util.h
Detected Declarations
struct drm_crtc_commitstruct __drm_colorops_statestruct __drm_planes_statestruct __drm_crtcs_statestruct __drm_connnectors_statestruct drm_private_objstruct drm_private_statestruct drm_private_state_funcsstruct drm_private_objstruct drm_private_statestruct __drm_private_objs_statestruct drm_atomic_commitstruct drm_bus_cfgstruct drm_bridge_statefunction drm_crtc_commit_putfunction drm_atomic_commit_getfunction drm_atomic_commit_putfunction drm_atomic_get_old_crtc_statefunction drm_atomic_get_new_crtc_statefunction drm_atomic_get_old_plane_statefunction drm_atomic_get_new_plane_statefunction drm_atomic_get_old_connector_statefunction drm_atomic_get_new_connector_statefunction __drm_atomic_get_current_plane_statefunction drm_atomic_crtc_needs_modesetfunction drm_atomic_crtc_effectively_activefunction drm_priv_to_bridge_state
Annotated Snippet
struct drm_crtc_commit {
/**
* @crtc:
*
* DRM CRTC for this commit.
*/
struct drm_crtc *crtc;
/**
* @ref:
*
* Reference count for this structure. Needed to allow blocking on
* completions without the risk of the completion disappearing
* meanwhile.
*/
struct kref ref;
/**
* @flip_done:
*
* Will be signaled when the hardware has flipped to the new set of
* buffers. Signals at the same time as when the drm event for this
* commit is sent to userspace, or when an out-fence is singalled. Note
* that for most hardware, in most cases this happens after @hw_done is
* signalled.
*
* Completion of this stage is signalled implicitly by calling
* drm_crtc_send_vblank_event() on &drm_crtc_state.event.
*/
struct completion flip_done;
/**
* @hw_done:
*
* Will be signalled when all hw register changes for this commit have
* been written out. Especially when disabling a pipe this can be much
* later than @flip_done, since that can signal already when the
* screen goes black, whereas to fully shut down a pipe more register
* I/O is required.
*
* Note that this does not need to include separately reference-counted
* resources like backing storage buffer pinning, or runtime pm
* management.
*
* Drivers should call drm_atomic_helper_commit_hw_done() to signal
* completion of this stage.
*/
struct completion hw_done;
/**
* @cleanup_done:
*
* Will be signalled after old buffers have been cleaned up by calling
* drm_atomic_helper_cleanup_planes(). Since this can only happen after
* a vblank wait completed it might be a bit later. This completion is
* useful to throttle updates and avoid hardware updates getting ahead
* of the buffer cleanup too much.
*
* Drivers should call drm_atomic_helper_commit_cleanup_done() to signal
* completion of this stage.
*/
struct completion cleanup_done;
/**
* @commit_entry:
*
* Entry on the per-CRTC &drm_crtc.commit_list. Protected by
* $drm_crtc.commit_lock.
*/
struct list_head commit_entry;
/**
* @event:
*
* &drm_pending_vblank_event pointer to clean up private events.
*/
struct drm_pending_vblank_event *event;
/**
* @abort_completion:
*
* A flag that's set after drm_atomic_helper_setup_commit() takes a
* second reference for the completion of $drm_crtc_state.event. It's
* used by the free code to remove the second reference if commit fails.
*/
bool abort_completion;
};
struct __drm_colorops_state {
struct drm_colorop *ptr;
Annotation
- Immediate include surface: `drm/drm_crtc.h`, `drm/drm_util.h`.
- Detected declarations: `struct drm_crtc_commit`, `struct __drm_colorops_state`, `struct __drm_planes_state`, `struct __drm_crtcs_state`, `struct __drm_connnectors_state`, `struct drm_private_obj`, `struct drm_private_state`, `struct drm_private_state_funcs`, `struct drm_private_obj`, `struct drm_private_state`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.