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);
|
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
|
* __drm_atomic_helper_private_obj_duplicate_state - copy atomic private state
|
||||||
* @obj: CRTC object
|
* @obj: CRTC object
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,9 @@ void
|
||||||
__drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state);
|
__drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state);
|
||||||
void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
||||||
struct drm_connector_state *state);
|
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,
|
void __drm_atomic_helper_private_obj_duplicate_state(struct drm_private_obj *obj,
|
||||||
struct drm_private_state *state);
|
struct drm_private_state *state);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue