mcde_dsi_bind() has a loop over all subnodes looking for a panel, but does
not exit when a match is found and only stores the last match. However this
will be problematic when introducing refcounting on the struct drm_device
pointer in a following commit, because of_drm_find_and_get_bridge() would
get a reference to multiple bridges.
There seem to be no real reason for looking for multiple panels, so just
break as soon as a match is found.
Reviewed-by: Linus Walleij <linusw@kernel.org>
Link: https://patch.msgid.link/20260131-drm-bridge-alloc-getput-drm_of_find_bridge-4-v2-3-e081bcdc1467@bootlin.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
return -EINVAL;
}
}
+
+ if (panel || bridge) {
+ of_node_put(child);
+ break;
+ }
}
if (panel) {
bridge = drm_panel_bridge_add_typed(panel,