summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/vkms/vkms_plane.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
index 2fd4edf2d190..fd3d34dcf0fe 100644
--- a/drivers/gpu/drm/vkms/vkms_plane.c
+++ b/drivers/gpu/drm/vkms/vkms_plane.c
@@ -83,28 +83,25 @@ static void vkms_plane_destroy_state(struct drm_plane *plane,
kfree(vkms_state);
}
-static void vkms_plane_reset(struct drm_plane *plane)
+static struct drm_plane_state *vkms_plane_create_state(struct drm_plane *plane)
{
struct vkms_plane_state *vkms_state;
- if (plane->state) {
- vkms_plane_destroy_state(plane, plane->state);
- plane->state = NULL; /* must be set to NULL here */
- }
-
vkms_state = kzalloc_obj(*vkms_state);
if (!vkms_state) {
DRM_ERROR("Cannot allocate vkms_plane_state\n");
- return;
+ return ERR_PTR(-ENOMEM);
}
- __drm_gem_reset_shadow_plane(plane, &vkms_state->base);
+ __drm_gem_shadow_plane_state_init(plane, &vkms_state->base);
+
+ return &(&vkms_state->base)->base;
}
static const struct drm_plane_funcs vkms_plane_funcs = {
.update_plane = drm_atomic_helper_update_plane,
.disable_plane = drm_atomic_helper_disable_plane,
- .reset = vkms_plane_reset,
+ .atomic_create_state = vkms_plane_create_state,
.atomic_duplicate_state = vkms_plane_duplicate_state,
.atomic_destroy_state = vkms_plane_destroy_state,
};