[PATCH] drm/bridge: analogix_dp: Use devm_drm_bridge_alloc() API

Maxime Ripard mripard at kernel.org
Mon Jun 30 16:44:24 UTC 2025


Hi,

On Fri, Jun 27, 2025 at 06:56:52PM +0200, Marek Szyprowski wrote:
> -static int analogix_dp_create_bridge(struct drm_device *drm_dev,
> -				     struct analogix_dp_device *dp)
> -{
> -	struct drm_bridge *bridge;
> -
> -	bridge = devm_kzalloc(drm_dev->dev, sizeof(*bridge), GFP_KERNEL);
> -	if (!bridge) {
> -		DRM_ERROR("failed to allocate for drm bridge\n");
> -		return -ENOMEM;
> -	}
> -
> -	dp->bridge = bridge;
> -
> -	bridge->driver_private = dp;
> -	bridge->funcs = &analogix_dp_bridge_funcs;
> -
> -	return drm_bridge_attach(dp->encoder, bridge, NULL, 0);
> -}
> -
>  static int analogix_dp_dt_parse_pdata(struct analogix_dp_device *dp)
>  {
>  	struct device_node *dp_node = dp->dev->of_node;
> @@ -1491,7 +1472,8 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
>  		return ERR_PTR(-EINVAL);
>  	}
>  
> -	dp = devm_kzalloc(dev, sizeof(struct analogix_dp_device), GFP_KERNEL);
> +	dp = devm_drm_bridge_alloc(dev, struct analogix_dp_device, bridge,
> +				   &analogix_dp_bridge_funcs);
>  	if (!dp)
>  		return ERR_PTR(-ENOMEM);
>  
> @@ -1643,7 +1625,7 @@ int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev)
>  		return ret;
>  	}
>  
> -	ret = analogix_dp_create_bridge(drm_dev, dp);
> +	ret = drm_bridge_attach(dp->encoder, &dp->bridge, NULL, 0);
>  	if (ret) {
>  		DRM_ERROR("failed to create bridge (%d)\n", ret);
>  		goto err_unregister_aux;

It looks like you don't set bridge->driver_private anymore. Is it on purpose?

Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 273 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20250630/113a33ca/attachment.sig>


More information about the dri-devel mailing list