diff options
Diffstat (limited to 'include/drm/drm_atomic.h')
-rw-r--r-- | include/drm/drm_atomic.h | 32 |
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 | */ | ||
192 | struct drm_private_obj { | 203 | struct 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 | */ | ||
198 | struct drm_private_state { | 226 | struct 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 | */ |
222 | struct drm_atomic_state { | 254 | struct drm_atomic_state { |
223 | struct kref ref; | 255 | struct kref ref; |