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 > >
