The gud connector reset implementation creates a pristine state, then initializes driver-specific TV properties, margins, and brightness from the initial state. It does not perform any hardware reset.
Since this is equivalent to what atomic_create_state expects, convert the reset function to an atomic_create_state hook that returns the initialized state. Signed-off-by: Maxime Ripard <[email protected]> --- Cc: Ruben Wauters <[email protected]> --- drivers/gpu/drm/gud/gud_connector.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/gud/gud_connector.c b/drivers/gpu/drm/gud/gud_connector.c index a57f2565d33e..ddbf3b3ebbca 100644 --- a/drivers/gpu/drm/gud/gud_connector.c +++ b/drivers/gpu/drm/gud/gud_connector.c @@ -345,29 +345,36 @@ static void gud_connector_destroy(struct drm_connector *connector) drm_connector_cleanup(connector); kfree(gconn->properties); kfree(gconn); } -static void gud_connector_reset(struct drm_connector *connector) +static struct drm_connector_state * +gud_connector_create_state(struct drm_connector *connector) { + struct drm_connector_state *connector_state; struct gud_connector *gconn = to_gud_connector(connector); - drm_atomic_helper_connector_reset(connector); - connector->state->tv = gconn->initial_tv_state; + connector_state = drm_atomic_helper_connector_create_state(connector); + if (IS_ERR(connector_state)) + return connector_state; + + connector_state->tv = gconn->initial_tv_state; /* Set margins from command line */ - drm_atomic_helper_connector_tv_margins_state_init(connector->state, + drm_atomic_helper_connector_tv_margins_state_init(connector_state, connector); if (gconn->initial_brightness >= 0) - connector->state->tv.brightness = gconn->initial_brightness; + connector_state->tv.brightness = gconn->initial_brightness; + + return connector_state; } static const struct drm_connector_funcs gud_connector_funcs = { .fill_modes = drm_helper_probe_single_connector_modes, .late_register = gud_connector_late_register, .early_unregister = gud_connector_early_unregister, .destroy = gud_connector_destroy, - .reset = gud_connector_reset, + .atomic_create_state = gud_connector_create_state, .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; /* -- 2.55.0
