mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 11:21:26 -04:00
drm/atomic: Make drm_atomic_private_obj_init fallible
Since we're going to move the drm_private_obj state allocation to a callback, we need to be able to deal with its possible failure. Make drm_private_obj_init return an error code on failure. Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patch.msgid.link/20260128-drm-private-obj-reset-v4-1-90891fa3d3b0@redhat.com Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
@@ -927,12 +927,14 @@ static void drm_atomic_plane_print_state(struct drm_printer *p,
|
||||
*
|
||||
* Initialize the private object, which can be embedded into any
|
||||
* driver private object that needs its own atomic state.
|
||||
*
|
||||
* RETURNS:
|
||||
* Zero on success, error code on failure
|
||||
*/
|
||||
void
|
||||
drm_atomic_private_obj_init(struct drm_device *dev,
|
||||
struct drm_private_obj *obj,
|
||||
struct drm_private_state *state,
|
||||
const struct drm_private_state_funcs *funcs)
|
||||
int drm_atomic_private_obj_init(struct drm_device *dev,
|
||||
struct drm_private_obj *obj,
|
||||
struct drm_private_state *state,
|
||||
const struct drm_private_state_funcs *funcs)
|
||||
{
|
||||
memset(obj, 0, sizeof(*obj));
|
||||
|
||||
@@ -944,6 +946,8 @@ drm_atomic_private_obj_init(struct drm_device *dev,
|
||||
list_add_tail(&obj->head, &dev->mode_config.privobj_list);
|
||||
|
||||
state->obj = obj;
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_atomic_private_obj_init);
|
||||
|
||||
|
||||
@@ -723,10 +723,10 @@ struct drm_connector_state * __must_check
|
||||
drm_atomic_get_connector_state(struct drm_atomic_state *state,
|
||||
struct drm_connector *connector);
|
||||
|
||||
void drm_atomic_private_obj_init(struct drm_device *dev,
|
||||
struct drm_private_obj *obj,
|
||||
struct drm_private_state *state,
|
||||
const struct drm_private_state_funcs *funcs);
|
||||
int drm_atomic_private_obj_init(struct drm_device *dev,
|
||||
struct drm_private_obj *obj,
|
||||
struct drm_private_state *state,
|
||||
const struct drm_private_state_funcs *funcs);
|
||||
void drm_atomic_private_obj_fini(struct drm_private_obj *obj);
|
||||
|
||||
struct drm_private_state * __must_check
|
||||
|
||||
Reference in New Issue
Block a user