Hello Marek, Maxime, thanks Marek for spotting the issue and sending a patch!
On Mon, 30 Jun 2025 18:44:24 +0200 Maxime Ripard <mrip...@kernel.org> wrote: > > @@ -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? This looks correct to me. In current code, driver_private is used to hold a pointer to the driver private struct (struct analogix_dp_device). With devm_drm_bridge_alloc() container_of() is now enough, no pointer is needed. With the patch applied, driver_private becomes unused. Thus I think the patch is correct: Reviewed-by: Luca Ceresoli <luca.ceres...@bootlin.com> -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com