Commit 055af023 authored by Maxime Ripard's avatar Maxime Ripard

drm/vc4: dpi: Switch to drmm_of_get_bridge

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.
Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarDave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20220711173939.1132294-31-maxime@cerno.tech
parent e126d318
...@@ -240,10 +240,11 @@ static const struct of_device_id vc4_dpi_dt_match[] = { ...@@ -240,10 +240,11 @@ static const struct of_device_id vc4_dpi_dt_match[] = {
*/ */
static int vc4_dpi_init_bridge(struct vc4_dpi *dpi) 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 device *dev = &dpi->pdev->dev;
struct drm_bridge *bridge; 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 (IS_ERR(bridge)) {
/* If nothing was connected in the DT, that's not an /* If nothing was connected in the DT, that's not an
* error. * error.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment