From: "Luca Ceresoli" <luca.ceresoli@bootlin.com>
To: "Luca Ceresoli" <luca.ceresoli@bootlin.com>,
"Arnd Bergmann" <arnd@kernel.org>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>
Cc: "Arnd Bergmann" <arnd@arndb.de>,
"Sasha Finkelstein" <k@chaosmail.tech>,
"Janne Grunau" <j@jannau.net>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Manikandan Muralidharan" <manikandan.m@microchip.com>,
"Dharma Balasubiramani" <dharma.b@microchip.com>,
"Nicolas Ferre" <nicolas.ferre@microchip.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
"Jagan Teki" <jagan@amarulasolutions.com>,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Robert Foss" <rfoss@kernel.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Liu Ying" <victor.liu@nxp.com>, "Frank Li" <Frank.Li@nxp.com>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
"Douglas Anderson" <dianders@chromium.org>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Chun-Kuang Hu" <chunkuang.hu@kernel.org>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Rob Clark" <robin.clark@oss.qualcomm.com>,
"Dmitry Baryshkov" <lumag@kernel.org>,
"Abhinav Kumar" <abhinav.kumar@linux.dev>,
"Jessica Zhang" <jesszhan0024@gmail.com>,
"Sean Paul" <sean@poorly.run>,
"Marijn Suijten" <marijn.suijten@somainline.org>,
"Marek Vasut" <marex@denx.de>, "Stefan Agner" <stefan@agner.ch>,
"Orson Zhai" <orsonzhai@gmail.com>,
"Baolin Wang" <baolin.wang@linux.alibaba.com>,
"Chunyan Zhang" <zhang.lyra@gmail.com>,
"Jyri Sarha" <jyri.sarha@iki.fi>,
"Tomi Valkeinen" <tomi.valkeinen@ideasonboard.com>,
"Icenowy Zheng" <zhengxingda@iscas.ac.cn>,
<dri-devel@lists.freedesktop.org>, <asahi@lists.linux.dev>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>, <imx@lists.linux.dev>,
<linux-mediatek@lists.infradead.org>,
<linux-arm-msm@vger.kernel.org>,
<freedreno@lists.freedesktop.org>
Subject: Re: [PATCH] drm/bridge: add missing drm/drm_panel.h inclusions
Date: Tue, 29 Sep 2026 12:39:09 +0200 [thread overview]
Message-ID: <DLRQHX9JC9YJ.1HR59B2KFZ90L@bootlin.com> (raw)
In-Reply-To: <DLRMF4TI56I2.3PTB24KN9ORJ3@bootlin.com>
Hello,
On Tue Sep 29, 2026 at 9:27 AM CEST, Luca Ceresoli wrote:
> Hello Arnd,
>
> On Mon Sep 28, 2026 at 6:04 PM CEST, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> The devm_drm_of_get_bridge() declaration moved to drm_panel.h, but
>> not all callers include this, which leads to build failures in
>> some configurations:
>>
>> drivers/gpu/drm/imx/lcdc/imx-lcdc.c: In function 'imx_lcdc_probe':
>> drivers/gpu/drm/imx/lcdc/imx-lcdc.c:404:18: error: implicit declaration of function 'devm_drm_of_get_bridge' [-Wimplicit-function-declaration]
>> 404 | bridge = devm_drm_of_get_bridge(dev, dev->of_node, 0, 0);
>> | ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/verisilicon/vs_bridge.c: In function 'vs_bridge_init':
>> drivers/gpu/drm/verisilicon/vs_bridge.c:306:16: error: implicit declaration of function 'devm_drm_of_get_bridge' [-Wimplicit-function-declaration]
>> 306 | next = devm_drm_of_get_bridge(drm_dev->dev, drm_dev->dev->of_node,
>> | ^~~~~~~~~~~~~~~~~~~~~~
>>
>> Include the new header in all files that need it.
>>
>> Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to drm_panel.c")
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> Thanks for the very quick reaction to this regression! However I think we
> should fix it differently.
>
> I had definitely build-tested most if not all these drivers, and also
> runtime tested a few. Now I realized the build failure actually happens
> only in !OF defconfigs which I haven't build-tested (sorry about
> that!). Here's why:
>
> * the affected drivers (all or most of them) include drm_of.h
> * drm_of.h does:
> #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_PANEL_BRIDGE)
> #include <linux/of.h>
> #include <drm/drm_bridge.h>
> #include <drm/drm_panel.h>
> #endif
> * DRM_PANEL_BRIDGE is always set when DRM is set, so not a problem
> * drivers which don't depend on OF and don't include drm_panel.h now fail
>
> Most of the drivers changed by this patch do 'depend on OF', so they are
> not affected. So the patch could be trimmed significantly. But still I'm
> not in favor of including drm_panel.h in the remaining drivers, because:
>
> * in the first place most/all of these drivers are now supposed to not use
> the drm_panel API anymore; thsy should just use the drm_bridge API
>
> * devm_drm_of_get_bridge() is now a deprecated [0], complicated way of
> calling of_drm_get_bridge_by_endpoint(), which is rightfully in
> drm_bridge.h
> * for this reason Documentation/drm/todo.rst says it must be removed [1]
> * removal is easy, so I plan to do it in a few weeks globally
> * after the removal all these #include <drm_panel.h> would have to
> be removed, but some might easily be forgotten
>
> So I see two option for a better fix:
>
> * Option 1 -- fix the really affected drivers by switching from the
> deprecated API to the one they recommended one. Based on quick analysis
> there are about 6.
>
> * Option 2 -- a quick surgical fix:
>
> In drm_of.h:
>
> #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_PANEL_BRIDGE)
> #include <linux/of.h>
> #include <drm/drm_bridge.h>
> -#include <drm/drm_panel.h>
> #endif
> +#include <drm/drm_panel.h> /* Temporary for *_of_get_bridge() */
>
> This can easily be tracked and reverted once all
> devm_drm_of_get_bridge() users are converted to
> of_drm_get_bridge_by_endpoint().
>
> I'm working right now on option 1, hoping to get a series in a few hours
> from now. I can switch to option 2 in case of unexpected issues with option
> 1, or if a fix "really right now" is wanted.
Done [0]. I found only 3 drivers affected, but I fixed all the others that
build without OF.
[0] https://lore.kernel.org/r/20260929-drm-fix-of_get_bridge-build-regression-v1-0-ccb7e602daad@bootlin.com
Luca
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2026-09-29 10:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 16:04 Arnd Bergmann
2026-09-28 22:20 ` Doug Anderson
2026-09-29 7:27 ` Luca Ceresoli
2026-09-29 10:39 ` Luca Ceresoli [this message]
2026-09-29 11:26 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DLRQHX9JC9YJ.1HR59B2KFZ90L@bootlin.com \
--to=luca.ceresoli@bootlin.com \
--cc=Frank.Li@nxp.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=abhinav.kumar@linux.dev \
--cc=airlied@gmail.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andrzej.hajda@intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=asahi@lists.linux.dev \
--cc=baolin.wang@linux.alibaba.com \
--cc=chunkuang.hu@kernel.org \
--cc=claudiu.beznea@tuxon.dev \
--cc=dharma.b@microchip.com \
--cc=dianders@chromium.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=festevam@gmail.com \
--cc=freedreno@lists.freedesktop.org \
--cc=imx@lists.linux.dev \
--cc=j@jannau.net \
--cc=jagan@amarulasolutions.com \
--cc=jernej.skrabec@gmail.com \
--cc=jesszhan0024@gmail.com \
--cc=jonas@kwiboo.se \
--cc=jyri.sarha@iki.fi \
--cc=k@chaosmail.tech \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=lumag@kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=manikandan.m@microchip.com \
--cc=marex@denx.de \
--cc=marijn.suijten@somainline.org \
--cc=matthias.bgg@gmail.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=nicolas.ferre@microchip.com \
--cc=orsonzhai@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=rfoss@kernel.org \
--cc=robin.clark@oss.qualcomm.com \
--cc=s.hauer@pengutronix.de \
--cc=sean@poorly.run \
--cc=simona@ffwll.ch \
--cc=stefan@agner.ch \
--cc=tomi.valkeinen@ideasonboard.com \
--cc=tzimmermann@suse.de \
--cc=victor.liu@nxp.com \
--cc=zhang.lyra@gmail.com \
--cc=zhengxingda@iscas.ac.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®