[PATCH 01/21] driver: Add device_detect_all() function

Sascha Hauer s.hauer at pengutronix.de
Fri Nov 24 00:12:17 PST 2017


Add a device_detect_all function to detect all devices and use it
in the detect command. This makes the functionality reusable in other
code.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 commands/detect.c     | 6 +-----
 drivers/base/driver.c | 8 ++++++++
 include/driver.h      | 1 +
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/commands/detect.c b/commands/detect.c
index 1586a6fb54..42e111419f 100644
--- a/commands/detect.c
+++ b/commands/detect.c
@@ -56,11 +56,7 @@ static int do_detect(int argc, char *argv[])
 	}
 
 	if (option_all) {
-		for_each_device(dev) {
-			ret = device_detect(dev);
-			if (ret && ret != -ENOSYS && option_error)
-				return ret;
-		}
+		device_detect_all();
 		return 0;
 	}
 
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 83260990af..c43a4bde2a 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -140,6 +140,14 @@ int device_detect_by_name(const char *__devname)
 	return ret;
 }
 
+void device_detect_all(void)
+{
+	struct device_d *dev;
+
+	for_each_device(dev)
+		device_detect(dev);
+}
+
 static int match(struct driver_d *drv, struct device_d *dev)
 {
 	int ret;
diff --git a/include/driver.h b/include/driver.h
index 8617872053..e571fbbec5 100644
--- a/include/driver.h
+++ b/include/driver.h
@@ -134,6 +134,7 @@ int device_probe(struct device_d *dev);
 /* detect devices attached to this device (cards, disks,...) */
 int device_detect(struct device_d *dev);
 int device_detect_by_name(const char *devname);
+void device_detect_all(void);
 
 /* Unregister a device. This function can fail, e.g. when the device
  * has children.
-- 
2.11.0




More information about the barebox mailing list