linux-stable/drivers/leds
Johan Adolfsson 8341c0a072 leds: leds-lp50xx: Handle reg to get correct multi_index
[ Upstream commit 2e84a5e537 ]

mc_subled used for multi_index needs well defined array indexes,
to guarantee the desired result, use reg for that.

If devicetree child nodes is processed in random or reverse order
you may end up with multi_index "blue green red" instead of the expected
"red green blue".
If user space apps uses multi_index to deduce how to control the leds
they would most likely be broken without this patch if devicetree
processing is reversed (which it appears to be).

arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-fuji.dts has reg set
but I don't see how it can have worked without this change.

If reg is not set, an error is returned,
If reg is out of range, an error is returned.
reg within led child nodes starts with 0, to map to the iout in each bank.

Signed-off-by: Johan Adolfsson <johan.adolfsson@axis.com>
Reviewed-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Link: https://lore.kernel.org/r/20250617-led-fix-v7-1-cdbe8efc88fa@axis.com
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-08-20 18:41:25 +02:00
..
blink leds: lgm-sso: Use new GPIO line value setter callbacks 2025-05-14 09:24:58 +01:00
flash leds: flash: leds-qcom-flash: Fix registry access after re-bind 2025-08-20 18:40:45 +02:00
rgb leds: rgb: leds-mt6370-rgb: Improve definition of some struct linear_range 2025-05-14 09:25:08 +01:00
simatic leds: Rename simple directory to simatic 2025-03-21 09:21:56 +00:00
trigger Revert "leds: trigger: netdev: Configure LED blink interval for HW offload" 2025-08-20 18:40:45 +02:00
.kunitconfig leds: Provide skeleton KUnit testing for the LEDs framework 2025-05-14 09:25:02 +01:00
Kconfig leds: Provide skeleton KUnit testing for the LEDs framework 2025-05-14 09:25:02 +01:00
led-class-flash.c leds: flash: Add support for flash/strobe duration 2025-05-14 09:25:09 +01:00
led-class-multicolor.c leds: multicolor: Fix intensity setting while SW blinking 2025-05-14 09:24:45 +01:00
led-class.c
led-core.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
led-test.c leds: led-test: Provide tests for the lookup and get infrastructure 2025-05-14 09:25:07 +01:00
led-triggers.c leds: led-triggers: Improvements for default trigger 2025-04-15 17:57:54 +01:00
leds-88pm860x.c
leds-acer-a500.c
leds-adp5520.c
leds-an30259a.c
leds-apu.c
leds-ariel.c
leds-aw200xx.c leds: aw200xx: don't use return with gpiod_set_value() variants 2025-02-26 11:17:39 +01:00
leds-aw2013.c
leds-bcm6328.c
leds-bcm6358.c
leds-bd2606mvv.c
leds-bd2802.c
leds-blinkm.c
leds-cht-wcove.c
leds-clevo-mail.c
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-cpcap.c
leds-cr0014114.c
leds-cros_ec.c leds: leds-cros_ec: Avoid -Wflex-array-member-not-at-end warning 2025-04-15 17:57:57 +01:00
leds-da903x.c
leds-da9052.c
leds-dac124s085.c
leds-el15203000.c
leds-expresswire.c
leds-gpio-register.c
leds-gpio.c
leds-hp6xx.c
leds-ip30.c
leds-ipaq-micro.c
leds-is31fl32xx.c
leds-is31fl319x.c
leds-lm355x.c
leds-lm3530.c
leds-lm3532.c
leds-lm3533.c
leds-lm3642.c
leds-lm3692x.c
leds-lm3697.c
leds-lm36274.c
leds-locomo.c
leds-lp50xx.c leds: leds-lp50xx: Handle reg to get correct multi_index 2025-08-20 18:41:25 +02:00
leds-lp55xx-common.c
leds-lp55xx-common.h
leds-lp3944.c
leds-lp3952.c
leds-lp5521.c
leds-lp5523.c
leds-lp5562.c
leds-lp5569.c
leds-lp8501.c
leds-lp8788.c
leds-lp8860.c leds: lp8860: Check return value of devm_mutex_init() 2025-08-15 16:38:46 +02:00
leds-lp8864.c
leds-lt3593.c
leds-max5970.c
leds-max8997.c
leds-max77650.c
leds-max77705.c leds: max77705: Add LEDs support 2025-02-20 16:38:37 +00:00
leds-mc13783.c
leds-menf21bmc.c
leds-mlxcpld.c leds: mlxcpld: Remove unused ACPI header inclusion 2025-03-21 09:48:11 +00:00
leds-mlxreg.c
leds-mt6323.c
leds-net48xx.c
leds-netxbig.c
leds-nic78bx.c leds: nic78bx: Tidy up ACPI ID table 2025-03-21 09:49:37 +00:00
leds-ns2.c
leds-ot200.c
leds-pca955x.c leds: pca955x: Avoid potential overflow when filling default_label (take 2) 2025-08-15 16:39:03 +02:00
leds-pca963x.c
leds-pca995x.c leds: pca995x: Fix typo in pca995x_of_match's of_device_id entry 2025-05-14 09:25:04 +01:00
leds-pca9532.c leds: pca9532: Use new GPIO line value setter callbacks 2025-05-14 09:25:00 +01:00
leds-pm8058.c
leds-powernv.c
leds-pwm.c
leds-qnap-mcu.c
leds-rb532.c
leds-regulator.c
leds-sc27xx-bltc.c
leds-spi-byte.c
leds-ss4200.c
leds-st1202.c * pca955x: Add HW blink support, utilizing PWM0. It supports one frequency 2025-03-29 14:42:59 -07:00
leds-sun50i-a100.c
leds-sunfire.c
leds-syscon.c
leds-tca6507.c leds: tca6507: Use new GPIO line value setter callbacks 2025-05-14 09:25:01 +01:00
leds-ti-lmu-common.c
leds-tlc591xx.c
leds-tps6105x.c
leds-turris-omnia.c leds: turris-omnia: Drop commas in the terminator entries 2025-05-14 09:24:57 +01:00
leds-upboard.c
leds-wm831x-status.c
leds-wm8350.c
leds-wrap.c
leds.h
Makefile leds: Provide skeleton KUnit testing for the LEDs framework 2025-05-14 09:25:02 +01:00
TODO
uleds.c