summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/led/led-uclass.c5
-rw-r--r--include/led.h2
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c
index a80ae93d45..784ac870e2 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 8925d75bcf..b929d0ca3c 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);