]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86: ideapad-laptop: Fix kbd backlight not remembered among boots
authorRong Zhang <i@rong.moe>
Mon, 7 Jul 2025 16:38:07 +0000 (00:38 +0800)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 8 Jul 2025 10:23:29 +0000 (13:23 +0300)
On some models supported by ideapad-laptop, the HW/FW can remember the
state of keyboard backlight among boots. However, it is always turned
off while shutting down, as a side effect of the LED class device
unregistering sequence.

This is inconvenient for users who always prefer turning on the
keyboard backlight. Thus, set LED_RETAIN_AT_SHUTDOWN on the LED class
device so that the state of keyboard backlight gets remembered, which
also aligns with the behavior of manufacturer utilities on Windows.

Fixes: 503325f84bc0 ("platform/x86: ideapad-laptop: add keyboard backlight control support")
Cc: stable@vger.kernel.org
Signed-off-by: Rong Zhang <i@rong.moe>
Reviewed-by: Hans de Goede <hansg@kernel.org>
Link: https://lore.kernel.org/r/20250707163808.155876-3-i@rong.moe
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/ideapad-laptop.c

index 62a72b09fc3a5fc6ba26938a2652d4a27393a871..edb9d2fb02ec2b11bd7b2dc07233a0b88a530cf4 100644 (file)
@@ -1669,7 +1669,7 @@ static int ideapad_kbd_bl_init(struct ideapad_private *priv)
        priv->kbd_bl.led.name                    = "platform::" LED_FUNCTION_KBD_BACKLIGHT;
        priv->kbd_bl.led.brightness_get          = ideapad_kbd_bl_led_cdev_brightness_get;
        priv->kbd_bl.led.brightness_set_blocking = ideapad_kbd_bl_led_cdev_brightness_set;
-       priv->kbd_bl.led.flags                   = LED_BRIGHT_HW_CHANGED;
+       priv->kbd_bl.led.flags                   = LED_BRIGHT_HW_CHANGED | LED_RETAIN_AT_SHUTDOWN;
 
        err = led_classdev_register(&priv->platform_device->dev, &priv->kbd_bl.led);
        if (err)