From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BA174CA5FCE for ; Thu, 1 Oct 2026 08:08:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-Type:References:In-Reply-To:Date:Cc:To:From :Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ZoRgh+HiizwlbhXbl/RDuER/H7t/s9B1fudhHC4/lYI=; b=gN0xSDd1NpaD3sqBqPpsZJVHyy MG7ChDpm2+VyKhuqV/GkUDbLvxLq9W6KZKoQ/u10TcKAaD+i+fJvwKd5rGX/sxwhHwmHcIk73cyDR baN8xYPPMJTUKtu7BDvua0as+xDaVE91FI/rJmGssrO9MfgiIAA+KwvMozgj/R3PaOnqIl8hG/6vn VxCogknO/Rfm5xefZuF8c58/XT4a+2hpV0K6Nx4qmdAKtBy4VvwnErL/OpTw1ew/APyygCdqGnPcz P3Brg5I+YnW/FqzmoNJffSN0fqwyMTrNDfO58r/4/ioQefDDoTXuSIUVVBOtUS3qJzbIsgnGt7M1Q usjynQqQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xCBpe-000000085hb-01zs; Thu, 01 Oct 2026 08:07:58 +0000 Received: from smtpout-03.galae.net ([185.246.85.4]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xCBpa-000000085ei-3NOq for linux-arm-kernel@lists.infradead.org; Thu, 01 Oct 2026 08:07:56 +0000 Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id CB6F94E410F0; Thu, 1 Oct 2026 08:07:52 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 9797C60341; Thu, 1 Oct 2026 08:07:52 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 7A9251032989B; Thu, 1 Oct 2026 10:07:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1790842070; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=ZoRgh+HiizwlbhXbl/RDuER/H7t/s9B1fudhHC4/lYI=; b=SSbnjn0ireQYdKAqjQueJ7O3umzoXTqLeeFns6EwrKQDd9HV7xFnAIsbKlBLFvSYy118z6 1rpotxW192u3VvVX1raOPLY2fw0QaozG/wdE16w1Tmrf+U9D81qdJ1StP4NscGjzzJFmJl 8yLCjh2D0rokD+y3FfSwUxFNrLLfqqhfULbEe5QTSmOxX/qAoKmTfCO+M/o80vOlC6ySGy OuiGXZQAqtzbDxKDwz23imBEIOem/W6XEO58d80DoQabeFZdnL+Oo1N4M978x3T1EwiyrP nRgTUtXvLtyy9KEv9U15qfKnOZtRXCNdG0cw2mS1+CSIprUVXaVSce/u+g4JQA== Message-ID: <7fe4eb5cc217b00cf791d9006e3312a9eaa104e0.camel@bootlin.com> Subject: Re: [PATCH v2 3/7] drm/bridge: dw-mipi-dsi: stop using deprecated devm_drm_of_get_bridge() From: Paul Cercueil To: Luca Ceresoli , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Icenowy Zheng , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Dave Stevenson , =?ISO-8859-1?Q?Ma=EDra?= Canal , Raspberry Pi Kernel Maintenance , Geert Uytterhoeven Cc: Arnd Bergmann , Doug Anderson , Hui Pu , Ian Ray , Thomas Petazzoni , dri-devel@lists.freedesktop.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, kernel test robot Date: Thu, 01 Oct 2026 10:07:39 +0200 In-Reply-To: <20260929-drm-fix-of_get_bridge-build-regression-v2-3-6da431d8f180@bootlin.com> References: <20260929-drm-fix-of_get_bridge-build-regression-v2-0-6da431d8f180@bootlin.com> <20260929-drm-fix-of_get_bridge-build-regression-v2-3-6da431d8f180@bootlin.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.56.2-0+deb13u1 MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261001_010755_131714_A1B93F09 X-CRM114-Status: GOOD ( 17.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Lucas, Le mardi 29 septembre 2026 =C3=A0 15:39 +0200, Luca Ceresoli a =C3=A9crit= =C2=A0: > devm_drm_of_get_bridge() is deprecated, switch to > of_drm_get_bridge_by_endpoint(). As of_drm_get_bridge_by_endpoint() retur= ns > a refcounted bridge, ensure it is put by using bridge.next_bridge. >=20 > Fixes build failure when CONFIG_OF is disabled. >=20 > Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to drm_panel.c") > Reported-by: Arnd Bergmann > Closes: https://lore.kernel.org/r/20260928161605.2271412-1-arnd@kernel.or= g > Reported-by: kernel test robot > Closes: > https://lore.kernel.org/oe-kbuild-all/202609291109.9RGna4XZ-lkp@intel.com= / > Signed-off-by: Luca Ceresoli Reviewed-by: Paul Cercueil With one nitpick below. >=20 > --- >=20 > Changes in v2: > - fix bridge reference leak on attach error and detach paths > - mention lkp report > --- > =C2=A0drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 11 +++++------ > =C2=A01 file changed, 5 insertions(+), 6 deletions(-) >=20 > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c > b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c > index 5dd475fcaacf..22d1b8cbe1d5 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c > @@ -244,7 +244,6 @@ struct debugfs_entries { > =C2=A0struct dw_mipi_dsi { > =C2=A0 struct drm_bridge bridge; > =C2=A0 struct mipi_dsi_host dsi_host; > - struct drm_bridge *panel_bridge; > =C2=A0 struct device *dev; > =C2=A0 void __iomem *base; > =C2=A0 > @@ -333,12 +332,12 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_= host > *host, > =C2=A0 dsi->format =3D device->format; > =C2=A0 dsi->mode_flags =3D device->mode_flags; > =C2=A0 > - bridge =3D devm_drm_of_get_bridge(dsi->dev, dsi->dev->of_node, 1, 0); > + bridge =3D of_drm_get_bridge_by_endpoint(dsi->dev->of_node, 1, 0); > =C2=A0 if (IS_ERR(bridge)) > =C2=A0 return PTR_ERR(bridge); > =C2=A0 > =C2=A0 bridge->pre_enable_prev_first =3D true; > - dsi->panel_bridge =3D bridge; > + dsi->bridge.next_bridge =3D bridge; > =C2=A0 > =C2=A0 drm_bridge_add(&dsi->bridge); > =C2=A0 > @@ -352,6 +351,7 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_ho= st > *host, > =C2=A0 > =C2=A0err_remove_bridge: > =C2=A0 drm_bridge_remove(&dsi->bridge); > + drm_bridge_clear_and_put(&dsi->bridge.next_bridge); > =C2=A0 return ret; > =C2=A0} > =C2=A0 > @@ -368,9 +368,8 @@ static int dw_mipi_dsi_host_detach(struct mipi_dsi_ho= st > *host, > =C2=A0 return ret; > =C2=A0 } > =C2=A0 > - drm_of_panel_bridge_remove(host->dev->of_node, 1, 0); > - > =C2=A0 drm_bridge_remove(&dsi->bridge); > + drm_bridge_clear_and_put(&dsi->bridge.next_bridge); > =C2=A0 > =C2=A0 return 0; > =C2=A0} > @@ -1086,7 +1085,7 @@ static int dw_mipi_dsi_bridge_attach(struct drm_bri= dge > *bridge, > =C2=A0 encoder->encoder_type =3D DRM_MODE_ENCODER_DSI; > =C2=A0 > =C2=A0 /* Attach the panel-bridge to the dsi bridge */ > - return drm_bridge_attach(encoder, dsi->panel_bridge, bridge, > + return drm_bridge_attach(encoder, dsi->bridge.next_bridge, bridge, > =C2=A0 flags); It would look a little bit better to have 'bridge' moved to the line below = I think. No big deal. Cheers, -Paul