Am 14.10.26 um 19:27 schrieb Maxime Ripard:
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]>
Reviewed-by: Thomas Zimmermann <[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,
};
/*
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Stefan Gaiser, Jochen Jaser, Abhinav Puri, (HRB 36809, AG Nürnberg)