Hi Maxime,

Thank you for the patch.

On Sat, May 30, 2026 at 03:59:10PM +0200, Maxime Ripard wrote:
> The drm_atomic_helper_bridge_reset() helper is deprecated in favour
> of the new atomic_create_state callback.
> 
> Add drm_atomic_helper_bridge_create_state() as the counterpart helper
> for this new callback.

I'd write here that drivers will be converted to the new helper in
subsequent changes, and drm_atomic_helper_bridge_reset() then removed.

> Signed-off-by: Maxime Ripard <[email protected]>
> ---
>  drivers/gpu/drm/drm_atomic_state_helper.c | 25 +++++++++++++++++++++++++
>  include/drm/drm_atomic_state_helper.h     |  2 ++
>  2 files changed, 27 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c 
> b/drivers/gpu/drm/drm_atomic_state_helper.c
> index f0688f2d83fe..b99dedbc4140 100644
> --- a/drivers/gpu/drm/drm_atomic_state_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_state_helper.c
> @@ -925,5 +925,30 @@ drm_atomic_helper_bridge_reset(struct drm_bridge *bridge)
>  
>       __drm_atomic_helper_bridge_state_init(bridge_state, bridge);
>       return bridge_state;
>  }
>  EXPORT_SYMBOL(drm_atomic_helper_bridge_reset);
> +
> +/**
> + * drm_atomic_helper_bridge_create_state - default 
> &drm_bridge_funcs.atomic_create_state hook for bridges

Line wrap.

"default" is a bit misleading, I would assume it would be used by the
core if the .atomic_create_state() pointer was null. Maybe

 * drm_atomic_helper_bridge_create_state - Implementation of 
&drm_bridge_funcs.atomic_create_state
 *      for bridge drivers that do no subclass the state

But maybe that's a bit long. Up to you.

Reviewed-by: Laurent Pinchart <[email protected]>

> + * @bridge: bridge object
> + *
> + * Allocates and initializes pristine @drm_bridge_state.
> + *
> + * This is useful for drivers that don't subclass @drm_bridge_state.
> + *
> + * RETURNS:
> + * Pointer to new bridge state, or ERR_PTR on failure.
> + */
> +struct drm_bridge_state *
> +drm_atomic_helper_bridge_create_state(struct drm_bridge *bridge)
> +{
> +     struct drm_bridge_state *bridge_state;
> +
> +     bridge_state = kzalloc_obj(*bridge_state);
> +     if (!bridge_state)
> +             return ERR_PTR(-ENOMEM);
> +
> +     __drm_atomic_helper_bridge_state_init(bridge_state, bridge);
> +     return bridge_state;
> +}
> +EXPORT_SYMBOL(drm_atomic_helper_bridge_create_state);
> diff --git a/include/drm/drm_atomic_state_helper.h 
> b/include/drm/drm_atomic_state_helper.h
> index cbc760598b9e..68c685ad330f 100644
> --- a/include/drm/drm_atomic_state_helper.h
> +++ b/include/drm/drm_atomic_state_helper.h
> @@ -103,6 +103,8 @@ drm_atomic_helper_bridge_duplicate_state(struct 
> drm_bridge *bridge);
>  void drm_atomic_helper_bridge_destroy_state(struct drm_bridge *bridge,
>                                           struct drm_bridge_state *state);
>  void __drm_atomic_helper_bridge_state_init(struct drm_bridge_state *state,
>                                          struct drm_bridge *bridge);
>  struct drm_bridge_state *
> +drm_atomic_helper_bridge_create_state(struct drm_bridge *bridge);
> +struct drm_bridge_state *
>  drm_atomic_helper_bridge_reset(struct drm_bridge *bridge);
> 

-- 
Regards,

Laurent Pinchart

Reply via email to