On Sat, Jul 19, 2025 at 02:09:39PM +0200, Otto Pflüger wrote: > The drm_of_component_probe function is intended to bind all devices in > an OF graph given a set of ports linked using the "ports" property on a > main device node. This means that it should also bind the components > providing these ports, not just the components of other ports connected > to them. In order to do this, it calls drm_of_component_match_add with > a pointer to each port node after checking that its parent node is a > device. > > However, when given a pointer to the port node, the compare_of callback > does not match it with a device node and thus fails to detect that the > node belongs to a component. Fix this by passing a pointer to the parent > node here too. > > Currently only the Unisoc platform driver relies on this feature, which > was previously broken and is fixed by this change. On other platforms, > the "ports" property points to ports that are not part of a component, > i.e. the components only have indirect connections to the main node. > > Signed-off-by: Otto Pflüger <otto.pflue...@abscue.de>
Missing Fixes tag. > --- > drivers/gpu/drm/drm_of.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c > index > d0183dea770308e77f05da364ffe087d53f3be36..b972facc2ec3fe40a4e10b5d7178b5ac8c0158d5 > 100644 > --- a/drivers/gpu/drm/drm_of.c > +++ b/drivers/gpu/drm/drm_of.c > @@ -132,7 +132,7 @@ int drm_of_component_probe(struct device *dev, > > if (of_device_is_available(port->parent)) > drm_of_component_match_add(dev, &match, compare_of, > - port); > + port->parent); > > of_node_put(port); > } > > -- > 2.50.0 -- With best wishes Dmitry