summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Ripard <mripard@kernel.org>2026-02-24 19:10:27 +0300
committerMaxime Ripard <mripard@kernel.org>2026-03-20 12:03:10 +0300
commitaf95bb0092fa6b76608133f13f8e09c79082c91a (patch)
tree5451456587c2cdc076f3b01222e20213a05c0fc9
parent3c668e8c652a9d6d226b72f1e90b5a611b748f4a (diff)
downloadlinux-af95bb0092fa6b76608133f13f8e09c79082c91a.tar.xz
drm/omapdrm: Switch private_obj initialization to atomic_create_state
The omapdrm driver relies on a drm_private_obj, that is initialized by allocating and initializing a state, and then passing it to drm_private_obj_init. Since we're gradually moving away from that pattern to the more established one relying on a atomic_create_state implementation, let's migrate this instance to the new pattern. Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Link: https://patch.msgid.link/20260224-drm-private-obj-reset-v5-2-5a72f8ec9934@kernel.org Signed-off-by: Maxime Ripard <mripard@kernel.org>
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index bf0bad8c8cf1..90832b4b8c9d 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -275,7 +275,22 @@ static void omap_global_destroy_state(struct drm_private_obj *obj,
kfree(omap_state);
}
+static struct drm_private_state *
+omap_global_atomic_create_state(struct drm_private_obj *obj)
+{
+ struct omap_global_state *state;
+
+ state = kzalloc_obj(*state);
+ if (!state)
+ return ERR_PTR(-ENOMEM);
+
+ __drm_atomic_helper_private_obj_create_state(obj, &state->base);
+
+ return &state->base;
+}
+
static const struct drm_private_state_funcs omap_global_state_funcs = {
+ .atomic_create_state = omap_global_atomic_create_state,
.atomic_duplicate_state = omap_global_duplicate_state,
.atomic_destroy_state = omap_global_destroy_state,
};
@@ -283,13 +298,8 @@ static const struct drm_private_state_funcs omap_global_state_funcs = {
static int omap_global_obj_init(struct drm_device *dev)
{
struct omap_drm_private *priv = dev->dev_private;
- struct omap_global_state *state;
-
- state = kzalloc_obj(*state);
- if (!state)
- return -ENOMEM;
- drm_atomic_private_obj_init(dev, &priv->glob_obj, &state->base,
+ drm_atomic_private_obj_init(dev, &priv->glob_obj, NULL,
&omap_global_state_funcs);
return 0;
}