aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm/drm_atomic.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/drm/drm_atomic.h')
-rw-r--r--include/drm/drm_atomic.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index 5afd6e364fb6..1c27526c499e 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -189,12 +189,40 @@ struct drm_private_state_funcs {
189 struct drm_private_state *state); 189 struct drm_private_state *state);
190}; 190};
191 191
192/**
193 * struct drm_private_obj - base struct for driver private atomic object
194 *
195 * A driver private object is initialized by calling
196 * drm_atomic_private_obj_init() and cleaned up by calling
197 * drm_atomic_private_obj_fini().
198 *
199 * Currently only tracks the state update functions and the opaque driver
200 * private state itself, but in the future might also track which
201 * &drm_modeset_lock is required to duplicate and update this object's state.
202 */
192struct drm_private_obj { 203struct drm_private_obj {
204 /**
205 * @state: Current atomic state for this driver private object.
206 */
193 struct drm_private_state *state; 207 struct drm_private_state *state;
194 208
209 /**
210 * @funcs:
211 *
212 * Functions to manipulate the state of this driver private object, see
213 * &drm_private_state_funcs.
214 */
195 const struct drm_private_state_funcs *funcs; 215 const struct drm_private_state_funcs *funcs;
196}; 216};
197 217
218/**
219 * struct drm_private_state - base struct for driver private object state
220 * @state: backpointer to global drm_atomic_state
221 *
222 * Currently only contains a backpointer to the overall atomic update, but in
223 * the future also might hold synchronization information similar to e.g.
224 * &drm_crtc.commit.
225 */
198struct drm_private_state { 226struct drm_private_state {
199 struct drm_atomic_state *state; 227 struct drm_atomic_state *state;
200}; 228};
@@ -218,6 +246,10 @@ struct __drm_private_objs_state {
218 * @num_private_objs: size of the @private_objs array 246 * @num_private_objs: size of the @private_objs array
219 * @private_objs: pointer to array of private object pointers 247 * @private_objs: pointer to array of private object pointers
220 * @acquire_ctx: acquire context for this atomic modeset state update 248 * @acquire_ctx: acquire context for this atomic modeset state update
249 *
250 * States are added to an atomic update by calling drm_atomic_get_crtc_state(),
251 * drm_atomic_get_plane_state(), drm_atomic_get_connector_state(), or for
252 * private state structures, drm_atomic_get_private_obj_state().
221 */ 253 */
222struct drm_atomic_state { 254struct drm_atomic_state {
223 struct kref ref; 255 struct kref ref;