diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h index 3732c62351bb..bccc70983d28 100644 --- a/drivers/gpu/drm/mgag200/mgag200_drv.h +++ b/drivers/gpu/drm/mgag200/mgag200_drv.h @@ -407,15 +407,15 @@ void mgag200_crtc_helper_atomic_disable(struct drm_crtc *crtc, struct drm_atomic .atomic_enable = mgag200_crtc_helper_atomic_enable, \ .atomic_disable = mgag200_crtc_helper_atomic_disable -void mgag200_crtc_reset(struct drm_crtc *crtc); +struct drm_crtc_state *mgag200_crtc_atomic_create_state(struct drm_crtc *crtc); struct drm_crtc_state *mgag200_crtc_atomic_duplicate_state(struct drm_crtc *crtc); void mgag200_crtc_atomic_destroy_state(struct drm_crtc *crtc, struct drm_crtc_state *crtc_state); #define MGAG200_CRTC_FUNCS \ - .reset = mgag200_crtc_reset, \ .destroy = drm_crtc_cleanup, \ .set_config = drm_atomic_helper_set_config, \ .page_flip = drm_atomic_helper_page_flip, \ + .atomic_create_state = mgag200_crtc_atomic_create_state, \ .atomic_duplicate_state = mgag200_crtc_atomic_duplicate_state, \ .atomic_destroy_state = mgag200_crtc_atomic_destroy_state diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c index 7e07fc3f1a60..4e952655e4f5 100644 --- a/drivers/gpu/drm/mgag200/mgag200_mode.c +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c @@ -679,18 +679,17 @@ void mgag200_crtc_helper_atomic_disable(struct drm_crtc *crtc, struct drm_atomic mgag200_disable_display(mdev); } -void mgag200_crtc_reset(struct drm_crtc *crtc) +struct drm_crtc_state *mgag200_crtc_atomic_create_state(struct drm_crtc *crtc) { struct mgag200_crtc_state *mgag200_crtc_state; - if (crtc->state) - crtc->funcs->atomic_destroy_state(crtc, crtc->state); - mgag200_crtc_state = kzalloc_obj(*mgag200_crtc_state); - if (mgag200_crtc_state) - __drm_atomic_helper_crtc_reset(crtc, &mgag200_crtc_state->base); - else - __drm_atomic_helper_crtc_reset(crtc, NULL); + if (!mgag200_crtc_state) + return ERR_PTR(-ENOMEM); + + __drm_atomic_helper_crtc_state_init(&mgag200_crtc_state->base, crtc); + + return &mgag200_crtc_state->base; } struct drm_crtc_state *mgag200_crtc_atomic_duplicate_state(struct drm_crtc *crtc)