Re: [PATCH 03/11] drm: of: drm_of_find_panel_or_bridge: prioritize the bridge, not the panel

"Luca Ceresoli" <[email protected]>
Newsgroups org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi Maxime,

On Mon Aug 24, 2026 at 10:16 AM CEST, Maxime Ripard wrote:
> On Mon, Aug 17, 2026 at 02:23:05PM +0200, Luca Ceresoli wrote:
>> > That being said, if we do create a panel_bridge for every panel, why do
>> > we still need drm_of_find_panel_or_bridge()? We'll only really need
>> > of_drm_find_bridge(), no?
>>
>> Yes, in the long term we can get rid of drm_of_find_panel_or_bridge(), but
>> not in the short term due to the above mentioned drivers, and others which
>> use it in "creative" ways.
>>
>> The point is about the transition. This patch was an attempt to convert at
>> once all the many drivers which use the most common pattern:
>>
>>       | drm_of_find_panel_or_bridge(..., &panel, &bridge);
>>       | if (panel)
>>       |     bridge = drm_panel_bridge_add();
>>
>> to then fix manually the remaining drivers (patches 6-11).
>>
>> But this approach doesn't fly due to the legacy users of
>> drm_of_find_panel_or_bridge() as mentioned above.
>>
>> So what about this other approach instead:
>>
>>  1. leave drm_of_find_panel_or_bridge() as is (it's already deprecated anyway)
>>  2. keep patch 5 (which "breaks" mayt drivers which would create an additional
>>     panel_bridge)
>>  3. perhaps add a warning when an additional bridge is created for the
>>     some panel
>>  4. *in the same series*, manually convert *all* drivers to use
>>     of_drm_find_bridge() or of_drm_get_bridge_by_endpoint() -- like patches
>>     6-11, but done on all drivers
>>  5. apply the series atomically, because it wouldn't be bisectable between
>>     items 2 and 4
>>
>> Your opinion?
>
> If we look at the drivers causing us troubles, fsl-ldb, samsung-dsim,
> tc358767 and waveshare-dsi can be converted directly to
> devm_drm_of_get_bridge().
>
> mcde-dsi is a mess and would be hard to fix indeed, but since it's the
> only really troublesome one, maybe we can just duplicate the code in the
> driver and drop / rewrite the common code however we see fit.

Note there are many more drivers than those converted by patches 6-11 of
this series (see cover letter). So it would be a lot more work.

But based on your reply I assume you approve the 5-point plan above. Please
let me know if my understanding is incorrect.

Also note my plan is to try converting all drivers, definitely removing all
calls to drm_panel_bridge_add() and variants but not necessarily
drm_of_find_panel_or_bridge(), which then might exist for a longer
time. I'll see how things go as I look at drivers one my one.

Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.