summaryrefslogtreecommitdiff
path: root/drivers/of
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2023-01-20 11:04:28 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2023-01-20 11:04:28 +0100
commit434891b29e0a9e5c40fba1b38f8223154c0f3f88 (patch)
tree78b8a772d62f116200532b440b4db1314ec0cffc /drivers/of
parentc95d0b36b69ea90cadf74c741d5a6f51a815bcfa (diff)
parentc5b9aedd73199d4967c80b0aa3f2f7817260043f (diff)
downloadbarebox-434891b29e0a9e5c40fba1b38f8223154c0f3f88.tar.gz
Merge branch 'for-next/misc-struct-rename'
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/platform.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index ff7096b6ee..edb082b106 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -414,11 +414,18 @@ static struct device *of_device_create_on_demand(struct device_node *np)
{
struct device_node *parent;
struct device *parent_dev, *dev;
+ int ret;
parent = of_get_parent(np);
if (!parent)
return NULL;
+ if (!np->dev && parent->dev) {
+ ret = device_detect(parent->dev);
+ if (ret && ret != -ENOSYS)
+ return ERR_PTR(ret);
+ }
+
if (!np->dev)
pr_debug("Creating device for %s\n", np->full_name);