Tue, May 23, 2023 at 05:12:23PM +0200, Herve Codina kirjoitti: > An additional-devs subnode can be present in the simple-card top node. > This subnode is used to declared some "virtual" additional devices. > > Create related devices from this subnode and avoid this subnode presence > to interfere with the already supported subnodes analysis. ... > +static int simple_populate_aux(struct asoc_simple_priv *priv) > +{ > + struct device *dev = simple_priv_to_dev(priv); > + struct device_node *node; > + struct device **ptr; > + int ret; > + > + node = of_get_child_by_name(dev->of_node, PREFIX "additional-devs"); > + if (!node) > + return 0; > + > + ptr = devres_alloc(simple_populate_aux_release, sizeof(*ptr), GFP_KERNEL); > + if (!ptr) > + return -ENOMEM; > + > + ret = of_platform_populate(node, NULL, NULL, dev); > + if (ret) { > + devres_free(ptr); > + } else { > + *ptr = dev; > + devres_add(dev, ptr); > + } > + return ret; This can be well simplified by using devm_add_action_or_reset(). > +} -- With Best Regards, Andy Shevchenko