On Fri, 10 Jun 2022 at 10:30, Maxime Ripard <max...@cerno.tech> wrote:
>
> The current code uses a device-managed function to retrieve the next bridge
> downstream.
>
> However, that means that it will be removed at unbind time, where the DRM
> device is still very much live and might still have some applications that
> still have it open.
>
> Switch to a DRM-managed variant to clean everything up once the DRM device
> has been last closed.
>
> Signed-off-by: Maxime Ripard <max...@cerno.tech>

Reviewed-by: Dave Stevenson <dave.steven...@raspberrypi.com>

> ---
>  drivers/gpu/drm/vc4/vc4_dpi.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c
> index 8a50de2c40d9..9950761449cf 100644
> --- a/drivers/gpu/drm/vc4/vc4_dpi.c
> +++ b/drivers/gpu/drm/vc4/vc4_dpi.c
> @@ -220,10 +220,11 @@ static const struct of_device_id vc4_dpi_dt_match[] = {
>   */
>  static int vc4_dpi_init_bridge(struct vc4_dpi *dpi)
>  {
> +       struct drm_device *drm = dpi->encoder.base.dev;
>         struct device *dev = &dpi->pdev->dev;
>         struct drm_bridge *bridge;
>
> -       bridge = devm_drm_of_get_bridge(dev, dev->of_node, 0, 0);
> +       bridge = drmm_of_get_bridge(drm, dev->of_node, 0, 0);
>         if (IS_ERR(bridge)) {
>                 /* If nothing was connected in the DT, that's not an
>                  * error.
> --
> 2.36.1
>

Reply via email to