Re: [PATCH 06/13] drm/sun4i: tcon: Drop TCON TOP device reference

From: Chen-Yu Tsai

Date: Mon Aug 03 2026 - 13:06:15 EST


On Tue, Aug 4, 2026 at 12:11 AM Jernej Skrabec <jernej.skrabec@xxxxxxxxx> 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 <jernej.skrabec@xxxxxxxxx>

Acked-by: Chen-Yu Tsai <wens@xxxxxxxxxx>

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