[U-Boot] [PATCH 12/18] led: Return -ENODEV if the LED device cannot be found

Simon Glass sjg at chromium.org
Mon Jul 6 20:54:33 CEST 2015


We normally use -ENODEV for a missing device, rather than -ENOENT. The
latter is reserved for when we have a device but cannot find something
within it.

Also avoid looking at the root LED device since it is only a container.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 drivers/led/led-uclass.c | 5 +++--
 include/led.h            | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c
index a80ae93..784ac87 100644
--- a/drivers/led/led-uclass.c
+++ b/drivers/led/led-uclass.c
@@ -24,11 +24,12 @@ int led_get_by_label(const char *label, struct udevice **devp)
 	uclass_foreach_dev(dev, uc) {
 		struct led_uclass_plat *uc_plat = dev_get_uclass_platdata(dev);
 
-		if (!strcmp(label, uc_plat->label))
+		/* Ignore the top-level LED node */
+		if (uc_plat->label && !strcmp(label, uc_plat->label))
 			return uclass_get_device_tail(dev, 0, devp);
 	}
 
-	return -ENOENT;
+	return -ENODEV;
 }
 
 int led_set_on(struct udevice *dev, int on)
diff --git a/include/led.h b/include/led.h
index 8925d75..b929d0c 100644
--- a/include/led.h
+++ b/include/led.h
@@ -35,7 +35,7 @@ struct led_ops {
  *
  * @label:	LED label to look up
  * @devp:	Returns the associated device, if found
- * @return 0 if found, -ve on error
+ * @return 0 if found, -ENODEV if not found, other -ve on error
  */
 int led_get_by_label(const char *label, struct udevice **devp);
 
-- 
2.4.3.573.g4eafbef



More information about the U-Boot mailing list