]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
leds: core: Implement fallback to software node name for LED names
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 12 Mar 2026 01:43:27 +0000 (18:43 -0700)
committerLee Jones <lee@kernel.org>
Thu, 26 Mar 2026 09:31:44 +0000 (09:31 +0000)
If a software node defining an LED is missing explicit 'label', 'color',
or 'function' properties, led_compose_name() currently fails with
-EINVAL, because fallback to using node name in place of LED name/label
is only implemented for OF nodes.

Implement similar fallback for software nodes. Unlike OF nodes, which
use the short 'name' attribute of the device tree node to avoid
including the address block, use fwnode_get_name() directly since
swnodes do not include an address block and always have a valid name.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Link: https://patch.msgid.link/20260311-led-swnode-name-v1-1-798a49e041c6@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/led-core.c

index 59473f286b31f1ccbf6131e1b1da42f5b9144f68..8ce41b36c64556b3ff7549c1f5d02d3d84b9342c 100644 (file)
@@ -581,6 +581,9 @@ int led_compose_name(struct device *dev, struct led_init_data *init_data,
        } else if (is_of_node(fwnode)) {
                n = snprintf(led_classdev_name, LED_MAX_NAME_SIZE, "%s",
                             to_of_node(fwnode)->name);
+       } else if (is_software_node(fwnode)) {
+               n = snprintf(led_classdev_name, LED_MAX_NAME_SIZE, "%s",
+                            fwnode_get_name(fwnode));
        } else
                return -EINVAL;