Re: [PATCH 06/13] drm/sun4i: tcon: Drop TCON TOP device reference
Chen-Yu Tsai <[email protected]> Tue, 4 Aug 2026 00:49:52 +0800
| Newsgroups | org.infradead.lists.linux-arm-kernel,dev.linux.lists.linux-sunxi,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAGb2v65cakBH2F9UzFez7oaSR+FdaEE9jd8=EVwqYppEv+vT_A@mail.gmail.com> |
On Tue, Aug 4, 2026 at 12:11 AM Jernej Skrabec <[email protected]> wrote: > > of_find_device_by_node() takes a device reference. Drop it after mux > configuration succeeds. > > Fixes: 0305189afb32 ("drm/sun4i: tcon: Add support for R40 TCON") > Signed-off-by: Jernej Skrabec <[email protected]> Acked-by: Chen-Yu Tsai <[email protected]> Though I'd probably rewrite it with struct platform_device *pdev __free(platform_device_put) = of_find_device_by_node(); and then all paths can just return instead of needing the goto. > --- > drivers/gpu/drm/sun4i/sun4i_tcon.c | 19 +++++++++---------- > 1 file changed, 9 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c > index ea7c90fef316..de2d66623f7a 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c > +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c > @@ -1409,7 +1409,7 @@ static int sun8i_r40_tcon_tv_set_mux(struct sun4i_tcon *tcon, > { > struct device_node *port, *remote; > struct platform_device *pdev; > - int id, ret; > + int id, ret = 0; > > /* find TCON TOP platform device and TCON id */ > > @@ -1432,21 +1432,20 @@ static int sun8i_r40_tcon_tv_set_mux(struct sun4i_tcon *tcon, > if (IS_ENABLED(CONFIG_DRM_SUN8I_TCON_TOP) && > encoder->encoder_type == DRM_MODE_ENCODER_TMDS) { > ret = sun8i_tcon_top_set_hdmi_src(&pdev->dev, id); > - if (ret) { > - put_device(&pdev->dev); > - return ret; > - } > + if (ret) > + goto out_put_device; > } > > if (IS_ENABLED(CONFIG_DRM_SUN8I_TCON_TOP)) { > ret = sun8i_tcon_top_de_config(&pdev->dev, tcon->id, id); > - if (ret) { > - put_device(&pdev->dev); > - return ret; > - } > + if (ret) > + goto out_put_device; > } > > - return 0; > +out_put_device: > + put_device(&pdev->dev); > + > + return ret; > } > > static const struct sun4i_tcon_quirks sun4i_a10_quirks = { > -- > 2.43.0 > >