summaryrefslogtreecommitdiff
path: root/drivers/core
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2015-09-03 14:57:09 -0400
committerTom Rini <trini@konsulko.com>2015-09-03 14:57:09 -0400
commitc9feb427aba860ebc79f9851a1bb49cc456a2d48 (patch)
tree6a80def1806386e2854d57f740264c6744d96e1d /drivers/core
parentda9d8580ff9ce17452ef931072e5799a9df8807f (diff)
parentf2acc55e3d28e96a6fcc060a7081eb4e2ad96350 (diff)
Merge git://git.denx.de/u-boot-rockchip
Diffstat (limited to 'drivers/core')
-rw-r--r--drivers/core/device.c4
-rw-r--r--drivers/core/root.c5
-rw-r--r--drivers/core/uclass.c7
3 files changed, 13 insertions, 3 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c
index a6cd93698f..0ccd443f25 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -39,8 +39,10 @@ int device_bind(struct udevice *parent, const struct driver *drv,
return -EINVAL;
ret = uclass_get(drv->id, &uc);
- if (ret)
+ if (ret) {
+ debug("Missing uclass for driver %s\n", drv->name);
return ret;
+ }
dev = calloc(1, sizeof(struct udevice));
if (!dev)
diff --git a/drivers/core/root.c b/drivers/core/root.c
index 78ab00c7bf..bdb394a9ae 100644
--- a/drivers/core/root.c
+++ b/drivers/core/root.c
@@ -162,8 +162,11 @@ int dm_scan_fdt_node(struct udevice *parent, const void *blob, int offset,
continue;
}
err = lists_bind_fdt(parent, blob, offset, NULL);
- if (err && !ret)
+ if (err && !ret) {
ret = err;
+ debug("%s: ret=%d\n", fdt_get_name(blob, offset, NULL),
+ ret);
+ }
}
if (ret)
diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
index f63ff599a6..e800c28653 100644
--- a/drivers/core/uclass.c
+++ b/drivers/core/uclass.c
@@ -58,7 +58,12 @@ static int uclass_add(enum uclass_id id, struct uclass **ucp)
if (!uc_drv) {
debug("Cannot find uclass for id %d: please add the UCLASS_DRIVER() declaration for this UCLASS_... id\n",
id);
- return -ENOENT;
+ /*
+ * Use a strange error to make this case easier to find. When
+ * a uclass is not available it can prevent driver model from
+ * starting up and this failure is otherwise hard to debug.
+ */
+ return -EPFNOSUPPORT;
}
uc = calloc(1, sizeof(*uc));
if (!uc)