Hi Liu, Marco,

On Tue Mar 10, 2026 at 3:57 AM CET, Liu Ying wrote:
> Hi Marco, Luca,
>
> On Tue, Mar 03, 2026 at 11:34:27AM +0100, Marco Felsch wrote:
>
> [...]
>
>> +    next_bridge = devm_drm_of_get_bridge(dev, dev->of_node, 1, 0);
>> +    if (IS_ERR(next_bridge))
>> +            return dev_err_probe(dev, PTR_ERR(next_bridge),
>> +                                 "failed to get next bridge\n");
>> +    pdfc->dev = dev;
>> +    pdfc->bridge.of_node = dev->of_node;
>> +    pdfc->bridge.type = DRM_MODE_CONNECTOR_DPI;
>> +    pdfc->bridge.next_bridge = next_bridge;
>
> When I was reviewing another patch[1], I was aware of the necessity of
> calling drm_bridge_get() for next_bridge to balance the next bridge's
> refcount put from __drm_bridge_free() for this bridge.  I'd be good if
> Luca may confirm this is correct.  Sorry for bringing this up late.

Indeed you have a good point.

After re-checking devm_drm_of_get_bridge(), as I wrote on the other thread
you pointed to, you should call drm_bridge_get():

-       pdfc->bridge.next_bridge = next_bridge;
+       pdfc->bridge.next_bridge = drm_bridge_get(next_bridge);

Marco, you can keep my R-by if you resend with just this change.

Sorry about the confusion here.

As mention on the other thread, devm_drm_of_get_bridge() is unable to
support bridge hotplug. So it should be deprecated, but as of now there is
no alternative.

Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Reply via email to