diff --git a/drivers/gpu/drm/vc4/tests/vc4_mock_crtc.c b/drivers/gpu/drm/vc4/tests/vc4_mock_crtc.c index ade3309ae042..247863f8e2c5 100644 --- a/drivers/gpu/drm/vc4/tests/vc4_mock_crtc.c +++ b/drivers/gpu/drm/vc4/tests/vc4_mock_crtc.c @@ -14,7 +14,7 @@ static const struct drm_crtc_helper_funcs vc4_dummy_crtc_helper_funcs = { static const struct drm_crtc_funcs vc4_dummy_crtc_funcs = { .atomic_destroy_state = vc4_crtc_destroy_state, .atomic_duplicate_state = vc4_crtc_duplicate_state, - .reset = vc4_crtc_reset, + .atomic_create_state = vc4_crtc_create_state, }; struct vc4_dummy_crtc *vc4_mock_pv(struct kunit *test, diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c index 4572b0b9bae1..f42cd5353230 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -1135,21 +1135,19 @@ void vc4_crtc_destroy_state(struct drm_crtc *crtc, drm_atomic_helper_crtc_destroy_state(crtc, state); } -void vc4_crtc_reset(struct drm_crtc *crtc) +struct drm_crtc_state *vc4_crtc_create_state(struct drm_crtc *crtc) { struct vc4_crtc_state *vc4_crtc_state; - if (crtc->state) - vc4_crtc_destroy_state(crtc, crtc->state); - vc4_crtc_state = kzalloc_obj(*vc4_crtc_state); if (!vc4_crtc_state) { - crtc->state = NULL; - return; + return ERR_PTR(-ENOMEM); } vc4_crtc_state->assigned_channel = VC4_HVS_CHANNEL_DISABLED; - __drm_atomic_helper_crtc_reset(crtc, &vc4_crtc_state->base); + __drm_atomic_helper_crtc_state_init(&vc4_crtc_state->base, crtc); + + return &vc4_crtc_state->base; } int vc4_crtc_late_register(struct drm_crtc *crtc) @@ -1170,7 +1168,7 @@ static const struct drm_crtc_funcs vc4_crtc_funcs = { .set_property = NULL, .cursor_set = NULL, /* handled by drm_mode_cursor_universal */ .cursor_move = NULL, /* handled by drm_mode_cursor_universal */ - .reset = vc4_crtc_reset, + .atomic_create_state = vc4_crtc_create_state, .atomic_duplicate_state = vc4_crtc_duplicate_state, .atomic_destroy_state = vc4_crtc_destroy_state, .enable_vblank = vc4_enable_vblank, diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h index 0f5958c1e6b6..649032174dbd 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -949,7 +949,7 @@ int vc4_crtc_atomic_check(struct drm_crtc *crtc, struct drm_crtc_state *vc4_crtc_duplicate_state(struct drm_crtc *crtc); void vc4_crtc_destroy_state(struct drm_crtc *crtc, struct drm_crtc_state *state); -void vc4_crtc_reset(struct drm_crtc *crtc); +struct drm_crtc_state *vc4_crtc_create_state(struct drm_crtc *crtc); void vc4_crtc_handle_vblank(struct vc4_crtc *crtc); void vc4_crtc_send_vblank(struct drm_crtc *crtc); int vc4_crtc_late_register(struct drm_crtc *crtc); diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c index bc3f366fc3e6..c469f8b1068b 100644 --- a/drivers/gpu/drm/vc4/vc4_txp.c +++ b/drivers/gpu/drm/vc4/vc4_txp.c @@ -425,7 +425,7 @@ static void vc4_txp_disable_vblank(struct drm_crtc *crtc) {} static const struct drm_crtc_funcs vc4_txp_crtc_funcs = { .set_config = drm_atomic_helper_set_config, .page_flip = vc4_page_flip, - .reset = vc4_crtc_reset, + .atomic_create_state = vc4_crtc_create_state, .atomic_duplicate_state = vc4_crtc_duplicate_state, .atomic_destroy_state = vc4_crtc_destroy_state, .enable_vblank = vc4_txp_enable_vblank,