SYNOPSIS
struct drm_crtc_state {
struct drm_crtc * crtc;
bool enable;
bool active;
bool planes_changed:1;
bool mode_changed:1;
bool active_changed:1;
bool connectors_changed:1;
bool color_mgmt_changed:1;
u32 plane_mask;
u32 connector_mask;
u32 encoder_mask;
u32 last_vblank_count;
struct drm_display_mode adjusted_mode;
struct drm_display_mode mode;
struct drm_property_blob * degamma_lut;
struct drm_property_blob * ctm;
struct drm_property_blob * gamma_lut;
struct drm_pending_vblank_event * event;
struct drm_atomic_state * state;
};
MEMBERS
crtc
- backpointer to the CRTC
enable
- whether the CRTC should be enabled, gates all other state
active
- whether the CRTC is actively displaying (used for DPMS)
planes_changed
- planes on this crtc are updated
mode_changed
- crtc_state->mode or crtc_state->enable has been changed
active_changed
- crtc_state->active has been toggled.
connectors_changed
- connectors to this crtc have been updated
color_mgmt_changed
- color management properties have changed (degamma or gamma LUT or CSC matrix)
plane_mask
- bitmask of (1 << drm_plane_index(plane)) of attached planes
connector_mask
- bitmask of (1 << drm_connector_index(connector)) of attached connectors
encoder_mask
- bitmask of (1 << drm_encoder_index(encoder)) of attached encoders
last_vblank_count
- for helpers and drivers to capture the vblank of the update to ensure framebuffer cleanup isn't done too early
adjusted_mode
- for use by helpers and drivers to compute adjusted mode timings
mode
- current mode timings
degamma_lut
- Lookup table for converting framebuffer pixel data before apply the conversion matrix
ctm
- Transformation matrix
gamma_lut
- Lookup table for converting pixel data after the conversion matrix
event
- optional pointer to a DRM event to signal upon completion of the state update
state
- backpointer to global drm_atomic_state
DESCRIPTION
Note that the distinction between enable and active is rather subtile: Flipping active while enable is set without changing anything else may never return in a failure from the ->atomic_check callback. Userspace assumes that a DPMS On will always succeed. In other words: enable controls resource assignment, active controls the actual hardware state.
AUTHORS
Jesse Barnes <[email protected]>
Intel Corporation,
- Initial version
Laurent Pinchart <[email protected]>
Ideas on board SPRL,
- Driver internals
Daniel Vetter <[email protected]>
Intel Corporation,
- Contributions all over the place
Lukas Wunner <[email protected]>
- vga_switcheroo documentation
COPYRIGHT