Hi Maxime,

On Thu, 10 Jul 2025 09:13:46 +0200
Maxime Ripard <[email protected]> wrote:

> On Wed, Jul 09, 2025 at 06:48:03PM +0200, Luca Ceresoli wrote:
> > Use drm_bridge_chain_get_last_bridge() instead of open coding a loop with
> > two invocations of drm_bridge_get_next_bridge() per iteration.
> > 
> > Besides being cleaner and more efficient, this change is necessary in
> > preparation for drm_bridge_get_next_bridge() to get a reference to the
> > returned bridge.
> > 
> > Signed-off-by: Luca Ceresoli <[email protected]>
> > ---
> >  drivers/gpu/drm/omapdrm/omap_drv.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c 
> > b/drivers/gpu/drm/omapdrm/omap_drv.c
> > index 
> > 054b71dba6a75b8c42198c4b102a093f43a675a2..3bbcec01428a6f290afdfa40ef6f79629539a584
> >  100644
> > --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> > +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> > @@ -378,12 +378,12 @@ static int omap_display_id(struct omap_dss_device 
> > *output)
> >     struct device_node *node = NULL;
> >  
> >     if (output->bridge) {
> > -           struct drm_bridge *bridge = output->bridge;
> > -
> > -           while (drm_bridge_get_next_bridge(bridge))
> > -                   bridge = drm_bridge_get_next_bridge(bridge);
> > +           struct drm_bridge *bridge =
> > +                   
> > drm_bridge_chain_get_last_bridge(output->bridge->encoder);
> >  
> >             node = bridge->of_node;
> > +
> > +           drm_bridge_put(bridge);  
> 
> Any reason you're not using __free(drm_bridge_put) here?

Just because the code is simple enough that an explicit
drm_bridge_put() is clearly sufficient.

Do you think __free() should be used even in such trivial cases?

Luca

-- 
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Reply via email to