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
signature.asc
Description: PGP signature