From fb8a5ffc77597a99678dbd5077f29ec9df54bdbe Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Mon, 6 Jul 2015 12:54:33 -0600 Subject: [PATCH] led: Return -ENODEV if the LED device cannot be found 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 --- 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 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);