Re: [PATCH 01/37] drm/adp: mipi: Switch to atomic bridge callbacks

"Joshua Peisach" <[email protected]>
Newsgroups dev.linux.lists.asahi,org.freedesktop.lists.dri-devel
Message-ID <[email protected]>
On Wed Jun 17, 2026 at 6:14 AM EDT, Maxime Ripard wrote:
> The mipi bridge still uses the deprecated non-atomic bridge
> callbacks.
>
> Switch to their atomic counterparts, adding the bridge state
> handlers if not already present.
>
> Generated by the following Coccinelle script:
>
> @ is_bridge @
> identifier funcs;
> @@
>
>  struct drm_bridge_funcs funcs = {
> 	...,
>  };
>
> @ has_create_state depends on is_bridge @
> identifier funcs, f;
> @@
>
> struct drm_bridge_funcs funcs = {
>   ...,
>   .atomic_create_state = f,
>   ...,
> };
>
> @ update_struct depends on (is_bridge && !has_create_state) @
> identifier is_bridge.funcs;
> identifier f;
> @@
>
>  struct drm_bridge_funcs funcs = {
> +	.atomic_create_state = drm_atomic_helper_bridge_create_state,
> +	.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
> +	.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
>  	...,
>  };
>
> @ update_pre_enable_struct depends on (is_bridge && !has_create_state) @
> identifier is_bridge.funcs;
> identifier f;
> @@
>
>  struct drm_bridge_funcs funcs = {
>  	...,
> -	.pre_enable = f,
> +	.atomic_pre_enable = f,
>  	...,
>  };
>
> @ update_pre_enable_impl depends on update_pre_enable_struct @
> identifier update_pre_enable_struct.f;
> identifier b;
> @@
>
> -void f(struct drm_bridge *b)
> +void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
>  {
> 	...
>  }
>
> @ update_enable_struct depends on (is_bridge && !has_create_state) @
> identifier is_bridge.funcs;
> identifier f;
> @@
>
>  struct drm_bridge_funcs funcs = {
>  	...,
> -	.enable = f,
> +	.atomic_enable = f,
>  	...,
>  };
>
> @ update_enable_impl depends on update_enable_struct @
> identifier update_enable_struct.f;
> identifier b;
> @@
>
> -void f(struct drm_bridge *b)
> +void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
>  {
> 	...
>  }
>
> @ update_disable_struct depends on (is_bridge && !has_create_state) @
> identifier is_bridge.funcs;
> identifier f;
> @@
>
>  struct drm_bridge_funcs funcs = {
>  	...,
> -	.disable = f,
> +	.atomic_disable = f,
>  	...,
>  };
>
> @ update_disable_impl depends on update_disable_struct @
> identifier update_disable_struct.f;
> identifier b;
> @@
>
> -void f(struct drm_bridge *b)
> +void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
>  {
> 	...
>  }
>
> @ update_post_disable_struct depends on (is_bridge && !has_create_state) @
> identifier is_bridge.funcs;
> identifier f;
> @@
>
>  struct drm_bridge_funcs funcs = {
>  	...,
> -	.post_disable = f,
> +	.atomic_post_disable = f,
>  	...,
>  };
>
> @ update_post_disable_impl depends on update_post_disable_struct @
> identifier update_post_disable_struct.f;
> identifier b;
> @@
>
> -void f(struct drm_bridge *b)
> +void f(struct drm_bridge *b, struct drm_atomic_commit *commit)
>  {
> 	...
>  }
>
> Signed-off-by: Maxime Ripard <[email protected]>
>
> ---
> To: Sasha Finkelstein <[email protected]>
> Cc: Janne Grunau <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> ---
>  drivers/gpu/drm/adp/adp-mipi.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/adp/adp-mipi.c b/drivers/gpu/drm/adp/adp-mipi.c
> index cba7d32150a9..232bb9539423 100644
> --- a/drivers/gpu/drm/adp/adp-mipi.c
> +++ b/drivers/gpu/drm/adp/adp-mipi.c
> @@ -3,10 +3,11 @@
>  #include <linux/component.h>
>  #include <linux/iopoll.h>
>  #include <linux/of.h>
>  #include <linux/platform_device.h>
>  
> +#include <drm/drm_atomic_state_helper.h>
>  #include <drm/drm_bridge.h>
>  #include <drm/drm_mipi_dsi.h>
>  
>  #define DSI_GEN_HDR 0x6c
>  #define DSI_GEN_PLD_DATA 0x70
> @@ -220,10 +221,13 @@ static int adp_dsi_bridge_attach(struct drm_bridge *bridge,
>  
>  	return drm_bridge_attach(encoder, adp->next_bridge, bridge, flags);
>  }
>  
>  static const struct drm_bridge_funcs adp_dsi_bridge_funcs = {
> +	.atomic_create_state = drm_atomic_helper_bridge_create_state,
> +	.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
> +	.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
>  	.attach	= adp_dsi_bridge_attach,
>  };
>  
>  static int adp_mipi_probe(struct platform_device *pdev)
>  {

I have no objections, nor do I really think there would be any, but
I wanted to point out, thank you for not CCing *everyone* on the entire
patchset but just the cover letter and the patch I'm interested in :)

Happily,

Reviewed-by: Joshua Peisach <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.