linux-yocto/drivers/leds
Sven Schwermer dcd5b32139 leds: multicolor: Fix intensity setting while SW blinking
[ Upstream commit e35ca991a7 ]

When writing to the multi_intensity file, don't unconditionally call
led_set_brightness. By only doing this if blinking is inactive we
prevent blinking from stopping if the blinking is in its off phase while
the file is written.

Instead, if blinking is active, the changed intensity values are applied
upon the next blink. This is consistent with changing the brightness on
monochrome LEDs with active blinking.

Suggested-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Reviewed-by: Tobias Deiminger <tobias.deiminger@linutronix.de>
Tested-by: Sven Schuchmann <schuchmann@schleissheimer.de>
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Link: https://lore.kernel.org/r/20250404184043.227116-1-sven@svenschwermer.de
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-07-06 11:01:32 +02:00
..
blink leds: bcm63138: Add MODULE_DESCRIPTION() 2024-06-21 11:57:15 +01:00
flash leds: flash: mt6360: Fix device_for_each_child_node() refcounting in error paths 2024-12-09 10:41:08 +01:00
rgb leds: pwm-multicolor: Add check for fwnode_property_read_u32 2025-05-29 11:02:36 +02:00
simple leds: simatic-ipc-leds: Add missing MODULE_DESCRIPTION() macros 2024-06-21 11:57:14 +01:00
trigger leds: trigger: netdev: Configure LED blink interval for HW offload 2025-05-29 11:02:58 +02:00
Kconfig leds: blinkm: Fix CONFIG_LEDS_CLASS_MULTICOLOR dependency 2024-08-16 17:04:42 +01:00
led-class-flash.c
led-class-multicolor.c leds: multicolor: Fix intensity setting while SW blinking 2025-07-06 11:01:32 +02:00
led-class.c leds: class: Protect brightness_show() with led_cdev->led_access mutex 2024-12-14 20:04:01 +01:00
led-core.c leds: Fix LED_OFF brightness race 2025-04-10 14:39:21 +02:00
led-triggers.c leds: triggers: Flush pending brightness before activating trigger 2024-06-26 16:56:07 +01:00
leds-88pm860x.c leds: 88pm860x: Simplify with scoped for each OF child loop 2024-08-22 14:23:03 +01:00
leds-acer-a500.c
leds-adp5520.c
leds-an30259a.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-apu.c leds: apu: Remove duplicate DMI lookup data 2024-04-12 09:47:15 +01:00
leds-ariel.c
leds-aw200xx.c leds: aw200xx: Use devm API to cleanup module's resources 2024-04-11 17:34:57 +01:00
leds-aw2013.c leds: aw2013: Simplify with scoped for each OF child loop 2024-08-22 14:23:03 +01:00
leds-bcm6328.c leds: bcm6328: Simplify with scoped for each OF child loop 2024-08-22 14:23:04 +01:00
leds-bcm6358.c leds: bcm6358: Simplify with scoped for each OF child loop 2024-08-22 14:23:05 +01:00
leds-bd2606mvv.c leds: bd2606mvv: Fix device child node usage in bd2606mvv_probe() 2024-08-01 13:40:07 +01:00
leds-bd2802.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-blinkm.c leds: Add multicolor support to BlinkM LED driver 2024-08-01 13:40:02 +01:00
leds-cht-wcove.c leds: cht-wcove: Use devm_led_classdev_register() to avoid memory leak 2025-02-08 09:57:11 +01:00
leds-clevo-mail.c
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-cpcap.c
leds-cr0014114.c
leds-cros_ec.c leds: Add ChromeOS EC driver 2024-06-21 11:41:46 +01:00
leds-da903x.c
leds-da9052.c
leds-dac124s085.c
leds-el15203000.c
leds-expresswire.c leds: expresswire: Don't use "proxy" headers 2024-03-07 08:45:31 +00:00
leds-gpio-register.c
leds-gpio.c leds: gpio: Set num_leds after allocation 2024-08-23 08:40:43 +01:00
leds-hp6xx.c
leds-ip30.c
leds-ipaq-micro.c
leds-is31fl32xx.c leds: is31fl32xx: Simplify with scoped for each OF child loop 2024-08-22 14:23:06 +01:00
leds-is31fl319x.c leds: is31fl319x: Use device_for_each_child_node_scoped() to access child nodes 2024-08-01 13:40:08 +01:00
leds-lm355x.c
leds-lm3530.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lm3532.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lm3533.c
leds-lm3642.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lm3692x.c
leds-lm3697.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lm36274.c
leds-locomo.c
leds-lp50xx.c leds: lp50xx: Remove unused field 'num_of_banked_leds' from 'struct lp50xx' 2024-05-02 18:10:56 +01:00
leds-lp55xx-common.c leds: lp55xx: Remove redundant test for invalid channel number 2024-12-09 10:41:02 +01:00
leds-lp55xx-common.h leds: lp55xx: Use devm_clk_get_enabled() helpers 2024-08-22 14:48:24 +01:00
leds-lp3944.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lp3952.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lp5521.c leds: leds-lp55xx: Convert mutex lock/unlock to guard API 2024-07-11 12:46:25 +01:00
leds-lp5523.c leds: leds-lp55xx: Convert mutex lock/unlock to guard API 2024-07-11 12:46:25 +01:00
leds-lp5562.c leds: leds-lp55xx: Convert mutex lock/unlock to guard API 2024-07-11 12:46:25 +01:00
leds-lp5569.c leds: leds-lp5569: Enable chip after chip configuration 2024-07-12 08:32:37 +01:00
leds-lp8501.c leds: leds-lp55xx: Drop deprecated defines 2024-06-26 17:08:31 +01:00
leds-lp8788.c
leds-lp8860.c leds: lp8860: Write full EEPROM, not only half of it 2025-02-17 10:05:02 +01:00
leds-lt3593.c
leds-max5970.c leds: max5970: Fix unreleased fwnode_handle in probe function 2024-12-05 14:02:10 +01:00
leds-max8997.c
leds-max77650.c
leds-mc13783.c leds: mc13783: Use scoped device node handling to simplify error paths 2024-08-22 14:23:07 +01:00
leds-menf21bmc.c
leds-mlxcpld.c leds: leds-mlxcpld: Fix struct mlxcpld_led_priv member name 2024-03-07 08:48:16 +00:00
leds-mlxreg.c leds: mlxreg: Use devm_mutex_init() for mutex initialization 2024-04-11 17:35:18 +01:00
leds-mt6323.c leds: mt6323: Simplify with scoped for each OF child loop 2024-08-22 14:23:08 +01:00
leds-net48xx.c
leds-netxbig.c leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata() 2025-02-08 09:57:05 +01:00
leds-nic78bx.c leds: nic78bx: Use devm API to cleanup module's resources 2024-04-11 17:35:13 +01:00
leds-ns2.c
leds-ot200.c
leds-pca955x.c
leds-pca963x.c leds: pca963x: Add support for suspend and resume 2024-03-07 08:48:06 +00:00
leds-pca995x.c leds: pca995x: Fix device child node usage in pca995x_probe() 2024-08-16 17:01:19 +01:00
leds-pca9532.c leds: pca9532: Remove irrelevant blink configuration error message 2024-08-30 09:01:08 +01:00
leds-pm8058.c
leds-powernv.c leds: powernv: Replace of_node_put to __free 2024-06-26 16:56:11 +01:00
leds-pwm.c leds: pwm: Disable PWM when going to suspend 2024-05-02 18:02:01 +01:00
leds-rb532.c
leds-regulator.c
leds-sc27xx-bltc.c leds: sc27xx: Simplify with scoped for each OF child loop 2024-08-22 14:23:10 +01:00
leds-spi-byte.c leds: spi-byte: Move OF ID table closer to their user 2024-06-26 16:56:07 +01:00
leds-ss4200.c leds: ss4200: Convert PCIBIOS_* return codes to errnos 2024-06-21 11:57:16 +01:00
leds-sun50i-a100.c leds: sun50i-a100: Replace msleep() with usleep_range() 2024-08-22 11:39:47 +01:00
leds-sunfire.c
leds-syscon.c
leds-tca6507.c
leds-ti-lmu-common.c
leds-tlc591xx.c leds: tlc591xx: Replace of_node_put to __free 2024-06-26 16:56:09 +01:00
leds-tps6105x.c
leds-turris-omnia.c leds: turris-omnia: Fix module autoloading with MODULE_DEVICE_TABLE() 2024-08-30 09:05:08 +01:00
leds-wm831x-status.c
leds-wm8350.c
leds-wrap.c
leds.h leds: core: Unexport led_colors[] array 2024-06-21 11:41:39 +01:00
Makefile leds: leds-lp5569: Add support for Texas Instruments LP5569 2024-06-26 17:08:31 +01:00
TODO
uleds.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00