Hi Maxime,

The ST7920 driver changes look correct to me.

Reviewed-by: Iker Pedrosa <[email protected]>

El lun, 31 ago 2026 a las 17:35, Maxime Ripard (<[email protected]>) escribió:
>
> The st7920 crtc implementation provides a custom reset hook. However,
> this hook only allocates the state, initializes it with
> __drm_atomic_helper_crtc_reset(), and warns if there's a previous state.
> It does not perform any hardware reset.
>
> Since this is exactly what the atomic_create_state hook is meant to
> do, minus the old state cleanup which the caller handles, convert the
> implementation to use atomic_create_state with
> __drm_atomic_helper_crtc_state_init() instead.
>
> Reviewed-by: Thomas Zimmermann <[email protected]>
> Signed-off-by: Maxime Ripard <[email protected]>
> ---
> Cc: Iker Pedrosa <[email protected]>
> ---
>  drivers/gpu/drm/sitronix/st7920.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/sitronix/st7920.c 
> b/drivers/gpu/drm/sitronix/st7920.c
> index 0a75e9319080..9887ed746ceb 100644
> --- a/drivers/gpu/drm/sitronix/st7920.c
> +++ b/drivers/gpu/drm/sitronix/st7920.c
> @@ -573,21 +573,21 @@ static void st7920_crtc_atomic_disable(struct drm_crtc 
> *crtc,
>
>         drm_dev_exit(idx);
>  }
>
>  /* Called during init to allocate the CRTC's atomic state. */
> -static void st7920_crtc_reset(struct drm_crtc *crtc)
> +static struct drm_crtc_state *st7920_crtc_create_state(struct drm_crtc *crtc)
>  {
>         struct st7920_crtc_state *st7920_state;
>
> -       drm_WARN_ON_ONCE(crtc->dev, crtc->state);
> -
>         st7920_state = kzalloc_obj(*st7920_state);
>         if (!st7920_state)
> -               return;
> +               return ERR_PTR(-ENOMEM);
>
> -       __drm_atomic_helper_crtc_reset(crtc, &st7920_state->base);
> +       __drm_atomic_helper_crtc_state_init(&st7920_state->base, crtc);
> +
> +       return &st7920_state->base;
>  }
>
>  static struct drm_crtc_state *st7920_crtc_duplicate_state(struct drm_crtc 
> *crtc)
>  {
>         struct st7920_crtc_state *st7920_state;
> @@ -627,11 +627,11 @@ static const struct drm_crtc_helper_funcs 
> st7920_crtc_helper_funcs = {
>         .atomic_enable = st7920_crtc_atomic_enable,
>         .atomic_disable = st7920_crtc_atomic_disable,
>  };
>
>  static const struct drm_crtc_funcs st7920_crtc_funcs = {
> -       .reset = st7920_crtc_reset,
> +       .atomic_create_state = st7920_crtc_create_state,
>         .destroy = drm_crtc_cleanup,
>         .set_config = drm_atomic_helper_set_config,
>         .page_flip = drm_atomic_helper_page_flip,
>         .atomic_duplicate_state = st7920_crtc_duplicate_state,
>         .atomic_destroy_state = st7920_crtc_destroy_state,
>
> --
> 2.55.0
>

Reply via email to