Am 14.10.26 um 19:27 schrieb Maxime Ripard:
The ast DisplayPort connector reset implementation creates a custom
state subclass, but only initializes a pristine state without resetting
any hardware. This is equivalent to what atomic_create_state expects.
Convert to it.

Signed-off-by: Maxime Ripard <[email protected]>

Reviewed-by: Thomas Zimmermann <[email protected]>

with nitpicks below.

---
Cc: Dave Airlie <[email protected]>
Cc: Jocelyn Falempe <[email protected]>
---
  drivers/gpu/drm/ast/ast_dp.c | 19 ++++++++++---------
  1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/ast/ast_dp.c b/drivers/gpu/drm/ast/ast_dp.c
index f22c0c215a21..7708169d0254 100644
--- a/drivers/gpu/drm/ast/ast_dp.c
+++ b/drivers/gpu/drm/ast/ast_dp.c
@@ -467,21 +467,22 @@ static int ast_astdp_connector_helper_detect_ctx(struct 
drm_connector *connector
  static const struct drm_connector_helper_funcs 
ast_astdp_connector_helper_funcs = {
        .get_modes = ast_astdp_connector_helper_get_modes,
        .detect_ctx = ast_astdp_connector_helper_detect_ctx,
  };
-static void ast_astdp_connector_reset(struct drm_connector *connector)
+static struct drm_connector_state *ast_astdp_connector_create_state(struct 
drm_connector *connector)
  {
-       struct ast_astdp_connector_state *astdp_state = 
kzalloc_obj(*astdp_state);
+       struct ast_astdp_connector_state *astdp_state;
- if (connector->state)
-               connector->funcs->atomic_destroy_state(connector, 
connector->state);
+       astdp_state = kzalloc_obj(*astdp_state);
+       if (!astdp_state)
+               return ERR_PTR(-ENOMEM);
- if (astdp_state)
-               __drm_atomic_helper_connector_reset(connector, 
&astdp_state->base);
-       else
-               __drm_atomic_helper_connector_reset(connector, NULL);
+       __drm_atomic_helper_connector_state_init(&astdp_state->base,
+                                                connector);

No need to break the line here.

+
+       return &astdp_state->base;
  }
static struct drm_connector_state *
  ast_astdp_connector_atomic_duplicate_state(struct drm_connector *connector)
  {
@@ -511,11 +512,11 @@ static void 
ast_astdp_connector_atomic_destroy_state(struct drm_connector *conne
        __drm_atomic_helper_connector_destroy_state(&astdp_state->base);
        kfree(astdp_state);
  }
static const struct drm_connector_funcs ast_astdp_connector_funcs = {
-       .reset = ast_astdp_connector_reset,
+       .atomic_create_state = ast_astdp_connector_create_state,

Should go before atomic_duplicate_state

Best regards
Thomas

        .fill_modes = drm_helper_probe_single_connector_modes,
        .destroy = drm_connector_cleanup,
        .atomic_duplicate_state = ast_astdp_connector_atomic_duplicate_state,
        .atomic_destroy_state = ast_astdp_connector_atomic_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)


Reply via email to