drm/atomic-helper: Add private_obj atomic_create_state helper
Now that we have an atomic_create_state callback for drm_private_objs, we can provide a helper for it. It's somewhat different from the other similar helpers though, because we definitely expect drm_private_obj to be subclassed. It wouldn't make sense for a driver to use it as-is. So we can't provide a straight implementation of the atomic_create_state callback, but rather we provide the parts that will deal with the drm_private_obj initialization, and we will leave the allocation and initialization of the subclass to drivers. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patch.msgid.link/20260128-drm-private-obj-reset-v4-3-90891fa3d3b0@redhat.com Signed-off-by: Maxime Ripard <mripard@kernel.org>master
parent
47b5ac7daa
commit
e7be39ed17
|
|
@ -714,6 +714,28 @@ void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
|||
}
|
||||
EXPORT_SYMBOL(drm_atomic_helper_connector_destroy_state);
|
||||
|
||||
/**
|
||||
* __drm_atomic_helper_private_obj_create_state - initializes private object state
|
||||
* @obj: private object
|
||||
* @state: new state to initialize
|
||||
*
|
||||
* Initializes the newly allocated @state, usually required when
|
||||
* initializing the drivers.
|
||||
*
|
||||
* @obj is assumed to be zeroed.
|
||||
*
|
||||
* This is useful for drivers that use private states.
|
||||
*/
|
||||
void __drm_atomic_helper_private_obj_create_state(struct drm_private_obj *obj,
|
||||
struct drm_private_state *state)
|
||||
{
|
||||
if (state)
|
||||
state->obj = obj;
|
||||
|
||||
obj->state = state;
|
||||
}
|
||||
EXPORT_SYMBOL(__drm_atomic_helper_private_obj_create_state);
|
||||
|
||||
/**
|
||||
* __drm_atomic_helper_private_obj_duplicate_state - copy atomic private state
|
||||
* @obj: CRTC object
|
||||
|
|
|
|||
|
|
@ -84,6 +84,9 @@ void
|
|||
__drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state);
|
||||
void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
||||
struct drm_connector_state *state);
|
||||
|
||||
void __drm_atomic_helper_private_obj_create_state(struct drm_private_obj *obj,
|
||||
struct drm_private_state *state);
|
||||
void __drm_atomic_helper_private_obj_duplicate_state(struct drm_private_obj *obj,
|
||||
struct drm_private_state *state);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue