[PATCH 43/70] sysfb: Convert to create_state
Maxime Ripard <[email protected]>
| Newsgroups | org.freedesktop.lists.dri-devel |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Maxime Ripard <[email protected]> --- Cc: Javier Martinez Canillas <[email protected]> --- drivers/gpu/drm/sysfb/drm_sysfb_helper.h | 4 ++-- drivers/gpu/drm/sysfb/drm_sysfb_modeset.c | 20 +++++++++----------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/sysfb/drm_sysfb_helper.h b/drivers/gpu/drm/sysfb/drm_sysfb_helper.h index 547f2327af5e..445eb5b5ca06 100644 --- a/drivers/gpu/drm/sysfb/drm_sysfb_helper.h +++ b/drivers/gpu/drm/sysfb/drm_sysfb_helper.h @@ -169,16 +169,16 @@ int drm_sysfb_crtc_helper_atomic_check(struct drm_crtc *crtc, struct drm_atomic_ #define DRM_SYSFB_CRTC_HELPER_FUNCS \ .mode_valid = drm_sysfb_crtc_helper_mode_valid, \ .atomic_check = drm_sysfb_crtc_helper_atomic_check -void drm_sysfb_crtc_reset(struct drm_crtc *crtc); +struct drm_crtc_state *drm_sysfb_crtc_create_state(struct drm_crtc *crtc); struct drm_crtc_state *drm_sysfb_crtc_atomic_duplicate_state(struct drm_crtc *crtc); void drm_sysfb_crtc_atomic_destroy_state(struct drm_crtc *crtc, struct drm_crtc_state *crtc_state); #define DRM_SYSFB_CRTC_FUNCS \ - .reset = drm_sysfb_crtc_reset, \ + .atomic_create_state = drm_sysfb_crtc_create_state, \ .set_config = drm_atomic_helper_set_config, \ .page_flip = drm_atomic_helper_page_flip, \ .atomic_duplicate_state = drm_sysfb_crtc_atomic_duplicate_state, \ .atomic_destroy_state = drm_sysfb_crtc_atomic_destroy_state diff --git a/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c b/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c index d2de29caf89e..ce11ac32fae4 100644 --- a/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c +++ b/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c @@ -513,27 +513,25 @@ int drm_sysfb_crtc_helper_atomic_check(struct drm_crtc *crtc, struct drm_atomic_ return 0; } EXPORT_SYMBOL(drm_sysfb_crtc_helper_atomic_check); -void drm_sysfb_crtc_reset(struct drm_crtc *crtc) +struct drm_crtc_state *drm_sysfb_crtc_create_state(struct drm_crtc *crtc) { struct drm_sysfb_device *sysfb = to_drm_sysfb_device(crtc->dev); struct drm_sysfb_crtc_state *sysfb_crtc_state; - if (crtc->state) - drm_sysfb_crtc_state_destroy(to_drm_sysfb_crtc_state(crtc->state)); - sysfb_crtc_state = kzalloc_obj(*sysfb_crtc_state); - if (sysfb_crtc_state) { - sysfb_crtc_state->format = sysfb->fb_format; - __drm_atomic_helper_crtc_reset(crtc, &sysfb_crtc_state->base); - } else { - __drm_atomic_helper_crtc_reset(crtc, NULL); - } + if (!sysfb_crtc_state) + return ERR_PTR(-ENOMEM); + + sysfb_crtc_state->format = sysfb->fb_format; + __drm_atomic_helper_crtc_state_init(&sysfb_crtc_state->base, crtc); + + return &sysfb_crtc_state->base; } -EXPORT_SYMBOL(drm_sysfb_crtc_reset); +EXPORT_SYMBOL(drm_sysfb_crtc_create_state); struct drm_crtc_state *drm_sysfb_crtc_atomic_duplicate_state(struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; struct drm_crtc_state *crtc_state = crtc->state; -- 2.55.0