From: Louis Chauvet <louis.chauvet@bootlin.com>
To: Luca Ceresoli <luca.ceresoli@bootlin.com>,
Biju Das <biju.das.jz@bp.renesas.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Anitha Chrisanthus <anitha.chrisanthus@intel.com>,
Linus Walleij <linusw@kernel.org>,
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>,
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Magnus Damm <magnus.damm@gmail.com>,
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Hui Pu <Hui.Pu@gehealthcare.com>,
Ian Ray <ian.ray@gehealthcare.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
dri-devel@lists.freedesktop.org,
linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 4/4] drm/omap: dss: convert to of_drm_find_and_get_bridge()
Date: Wed, 8 Apr 2026 18:14:46 +0200 [thread overview]
Message-ID: <abf6a5ef-c05d-4d9d-8b36-6a422966ec89@bootlin.com> (raw)
In-Reply-To: <20260402-drm-bridge-alloc-getput-drm_of_find_bridge-4-v4-4-421781c8c061@bootlin.com>
On 4/2/26 18:27, Luca Ceresoli wrote:
> of_drm_find_bridge() is deprecated. Move to its replacement
> of_drm_find_and_get_bridge() which gets a bridge reference, and ensure it
> is put when done.
>
> omapdss_device_init_output() can take one bridge pointer in out->bridge or
> two pointers in out->bridge and out->next_bridge. Ensure each has a
> corresponding drm_bridge_get() and add drm_bridge_put() calls in the
> cleanup code.
>
> Also slightly change the initial code assigning out->panel and out->bridge
> to ensure and clarify that either out->panel or out->bridge is set in the
> function prologue, not both. If both were set, the 'if (out->panel){...}'
> code that follows would overwrite out->bridge without having put the
> reference.
>
> Finally, take a reference in case a panel_bridge is added using
> drm_panel_bridge_add(). This ensures we always need to put a reference,
> which came either from of_drm_find_and_get_bridge() or by the
> drm_panel_bridge_add+drm_bridge_get() branch.
>
> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
> ---
> drivers/gpu/drm/omapdrm/dss/output.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/output.c b/drivers/gpu/drm/omapdrm/dss/output.c
> index 7378e855c278..ca891aba3820 100644
> --- a/drivers/gpu/drm/omapdrm/dss/output.c
> +++ b/drivers/gpu/drm/omapdrm/dss/output.c
> @@ -30,11 +30,13 @@ int omapdss_device_init_output(struct omap_dss_device *out,
> return 0;
> }
>
> - out->bridge = of_drm_find_bridge(remote_node);
> out->panel = of_drm_find_panel(remote_node);
> if (IS_ERR(out->panel))
> out->panel = NULL;
>
> + if (!out->panel)
> + out->bridge = of_drm_find_and_get_bridge(remote_node);
> +
> of_node_put(remote_node);
>
> if (out->panel) {
> @@ -49,7 +51,7 @@ int omapdss_device_init_output(struct omap_dss_device *out,
> goto error;
> }
>
> - out->bridge = bridge;
> + out->bridge = drm_bridge_get(bridge);
> }
>
> if (local_bridge) {
> @@ -59,7 +61,7 @@ int omapdss_device_init_output(struct omap_dss_device *out,
> }
>
> out->next_bridge = out->bridge;
> - out->bridge = local_bridge;
> + out->bridge = drm_bridge_get(local_bridge);
> }
>
> if (!out->bridge) {
> @@ -79,6 +81,9 @@ void omapdss_device_cleanup_output(struct omap_dss_device *out)
> if (out->bridge && out->panel)
> drm_panel_bridge_remove(out->next_bridge ?
> out->next_bridge : out->bridge);
> +
> + drm_bridge_put(out->next_bridge);
> + drm_bridge_put(out->bridge);
> }
>
> void dss_mgr_set_timings(struct omap_dss_device *dssdev,
>
next prev parent reply other threads:[~2026-04-08 16:14 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 16:27 [PATCH v4 0/4] drm/bridge: convert users of of_drm_find_bridge(), part 4 Luca Ceresoli
2026-04-02 16:27 ` [PATCH v4 1/4] drm: renesas: rz-du: rzg2l_du_encoder: convert to of_drm_find_and_get_bridge() Luca Ceresoli
2026-04-08 15:44 ` Louis Chauvet
2026-04-08 17:39 ` Luca Ceresoli
2026-04-08 21:33 ` Laurent Pinchart
2026-04-09 12:32 ` Luca Ceresoli
2026-04-02 16:27 ` [PATCH v4 2/4] drm/kmb/dsi: " Luca Ceresoli
2026-04-08 15:44 ` Louis Chauvet
2026-04-02 16:27 ` [PATCH v4 3/4] drm: rcar-du: encoder: " Luca Ceresoli
2026-04-08 16:03 ` Louis Chauvet
2026-04-08 21:31 ` Laurent Pinchart
2026-04-02 16:27 ` [PATCH v4 4/4] drm/omap: dss: " Luca Ceresoli
2026-04-08 16:14 ` Louis Chauvet [this message]
2026-04-07 9:40 ` [PATCH v4 0/4] drm/bridge: convert users of of_drm_find_bridge(), part 4 Linus Walleij
2026-04-07 9:40 ` Linus Walleij
2026-04-09 12:59 ` (subset) " Luca Ceresoli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=abf6a5ef-c05d-4d9d-8b36-6a422966ec89@bootlin.com \
--to=louis.chauvet@bootlin.com \
--cc=Hui.Pu@gehealthcare.com \
--cc=airlied@gmail.com \
--cc=anitha.chrisanthus@intel.com \
--cc=biju.das.jz@bp.renesas.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=geert+renesas@glider.be \
--cc=ian.ray@gehealthcare.com \
--cc=kieran.bingham+renesas@ideasonboard.com \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linusw@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=luca.ceresoli@bootlin.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=magnus.damm@gmail.com \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--cc=thomas.petazzoni@bootlin.com \
--cc=tomi.valkeinen+renesas@ideasonboard.com \
--cc=tomi.valkeinen@ideasonboard.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.