mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
led: Update led_get_by_label()
During led_init() execution, led_get_label() returns either the label property (which is an obsolete property [1]) or the LED's node name. It can't be the function name as dev parameter is NULL. Later, during led_post_bind() execution, for the same LED, the attributed label by led_get_label() can be the function name, as led_get_label() dev's parameter is set. During call sequence led_boot_on() => led_boot_get() => led_get_by_label() with label given in parameter (priv->boot_led_label which is either the label or node's name set previously in led_init()) can be different to to uc_plat->label and returns -ENODEV. Update led_get_by_label() to allow to retrieve LED also by its node name. [1] https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.yaml Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Cc: Yegor Yefremov <yegorslists@googlemail.com>
This commit is contained in:
committed by
Tom Rini
parent
0eaa4b3373
commit
d9915318b5
@@ -65,6 +65,9 @@ int led_get_by_label(const char *label, struct udevice **devp)
|
||||
/* Ignore the top-level LED node */
|
||||
if (uc_plat->label && !strcmp(label, uc_plat->label))
|
||||
return uclass_get_device_tail(dev, 0, devp);
|
||||
|
||||
if (!strcmp(label, ofnode_get_name(dev_ofnode(dev))))
|
||||
return uclass_get_device_tail(dev, 0, devp);
|
||||
}
|
||||
|
||||
return -ENODEV;
|
||||
|
||||
Reference in New Issue
Block a user