Hi Robert, On 26/02/15 16:45, Robert ABEL wrote: > This patch adds support for spawning buses as children of the GPMC. > > Signed-off-by: Robert ABEL <rabel@xxxxxxxxxxxxxxxxxxxxxxx> > --- > drivers/memory/omap-gpmc.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c > index 5cabac8..74a8c52 100644 > --- a/drivers/memory/omap-gpmc.c > +++ b/drivers/memory/omap-gpmc.c > @@ -27,6 +27,7 @@ > #include <linux/of_address.h> > #include <linux/of_mtd.h> > #include <linux/of_device.h> > +#include <linux/of_platform.h> > #include <linux/omap-gpmc.h> > #include <linux/mtd/nand.h> > #include <linux/pm_runtime.h> > @@ -1800,8 +1801,20 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, > gpmc_cs_enable_mem(cs); > > no_timings: > - if (of_platform_device_create(child, NULL, &pdev->dev)) > - return 0; > + > + /* create platform device, NULL on error or when disabled */ > + if (!of_platform_device_create(child, NULL, &pdev->dev)) > + goto err_child_fail; > + > + /* is child a common bus? */ > + if (of_match_node(of_default_bus_match_table, child)) > + /* create children and other common bus children */ > + if (of_platform_populate(child, of_default_bus_match_table, NULL, &pdev->dev)) > + goto err_child_fail; this would print "failed to create gpmc child" but we have already created the gpmc child in the first of_platform_device_create() call. A more appropriate message would be "failed to populate all children of child->name" Also do you want to return failure? it will result in of_node_put() of the child and another print message about "probing gpmc child %s failed" in gpmc_probe_dt(). IMO if the GPMC node's child was created fine then we shouldn't return error. > + > + return 0; > + > +err_child_fail: > > dev_err(&pdev->dev, "failed to create gpmc child %s\n", child->name); > ret = -ENODEV; > cheers, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html