diff options
| -rw-r--r-- | drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c | 17 | ||||
| -rw-r--r-- | drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c | 17 |
2 files changed, 14 insertions, 20 deletions
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c index 8870766b9e54..87eb5fc72a17 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c @@ -712,24 +712,21 @@ static void rcar_du_plane_atomic_destroy_state(struct drm_plane *plane, kfree(to_rcar_plane_state(state)); } -static void rcar_du_plane_reset(struct drm_plane *plane) +static struct drm_plane_state *rcar_du_plane_create_state(struct drm_plane *plane) { struct rcar_du_plane_state *state; - if (plane->state) { - rcar_du_plane_atomic_destroy_state(plane, plane->state); - plane->state = NULL; - } - state = kzalloc_obj(*state); - if (state == NULL) - return; + if (!state) + return ERR_PTR(-ENOMEM); - __drm_atomic_helper_plane_reset(plane, &state->state); + __drm_atomic_helper_plane_state_init(&state->state, plane); state->hwindex = -1; state->source = RCAR_DU_PLANE_MEMORY; state->colorkey = RCAR_DU_COLORKEY_NONE; + + return &state->state; } static int rcar_du_plane_atomic_set_property(struct drm_plane *plane, @@ -767,7 +764,7 @@ static int rcar_du_plane_atomic_get_property(struct drm_plane *plane, static const struct drm_plane_funcs rcar_du_plane_funcs = { .update_plane = drm_atomic_helper_update_plane, .disable_plane = drm_atomic_helper_disable_plane, - .reset = rcar_du_plane_reset, + .atomic_create_state = rcar_du_plane_create_state, .destroy = drm_plane_cleanup, .atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state, .atomic_destroy_state = rcar_du_plane_atomic_destroy_state, diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c index ae9f381b03c8..cc3213a9dd76 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c @@ -421,26 +421,23 @@ static void rcar_du_vsp_plane_atomic_destroy_state(struct drm_plane *plane, kfree(to_rcar_vsp_plane_state(state)); } -static void rcar_du_vsp_plane_reset(struct drm_plane *plane) +static struct drm_plane_state *rcar_du_vsp_plane_create_state(struct drm_plane *plane) { struct rcar_du_vsp_plane_state *state; - if (plane->state) { - rcar_du_vsp_plane_atomic_destroy_state(plane, plane->state); - plane->state = NULL; - } - state = kzalloc_obj(*state); - if (state == NULL) - return; + if (!state) + return ERR_PTR(-ENOMEM); + + __drm_atomic_helper_plane_state_init(&state->state, plane); - __drm_atomic_helper_plane_reset(plane, &state->state); + return &state->state; } static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = { .update_plane = drm_atomic_helper_update_plane, .disable_plane = drm_atomic_helper_disable_plane, - .reset = rcar_du_vsp_plane_reset, + .atomic_create_state = rcar_du_vsp_plane_create_state, .destroy = drm_plane_cleanup, .atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state, .atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state, |
