Re: [PATCH] platform/x86: ideapad-laptop: Do not warn if KBLC reports no backlight
From: Rong Zhang
Date: Sat Nov 07 2026 - 10:01:52 EST
Hi Punnay,
On Sat, 2026-11-07 at 19:35 +0530, Punnay Sharma wrote:
> On probe, the driver asks KBLC for the keyboard backlight type and
> warns about any result other than 0x5 or 0x7.
>
> The LOQ 15IRX10 with an RGB keyboard returns 0x1. Its KBLC sets bit 0
> in every result, and sets bit 2 for the type query only if the EC field
> GZ35 is 0. On this model GZ35 is not 0, and a separate USB controller
> (048d:c693) drives the keyboard lights. So 0x1 means that KBLC controls
> no keyboard backlight, but the driver logs on every boot:
>
> ideapad_acpi VPC2004:00: Unknown keyboard type: 1
>
> Add KBD_BL_NONE_TYPE for 0x1 and do not warn about it.
>
> Tested on a Lenovo LOQ 15IRX10 (BIOS R3CN44WW).
+CC Artem.
It seems that some devices provides functional KBLC despite
KBD_BL_QUERY_TYPE returns 0x1. See
https://bugzilla.kernel.org/show_bug.cgi?id=221198
Mark, Derek, could you check the documentation about keyboard backlight
type?
Thanks,
Rong
>
> Signed-off-by: Punnay Sharma <punnaysharma805@xxxxxxxxx>
> ---
> KBD_BL_NONE_TYPE is placed last to avoid a conflict with Rong Zhang's
> pending keyboard backlight series.
>
> The same warning appears on other models, e.g. LOQ 15AHP10 [1] and
> Legion 5 Pro 16ACH6H [2].
>
> [1] https://lore.kernel.org/all/3f03931e7eafcb1781ca3cf922e588ab57caadcf@xxxxxxx/
> [2] https://github.com/johnfanv2/LenovoLegionLinux/issues/336
>
> drivers/platform/x86/lenovo/ideapad-laptop.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/lenovo/ideapad-laptop.c b/drivers/platform/x86/lenovo/ideapad-laptop.c
> index fcb5ed7035f5..eb4158bed264 100644
> --- a/drivers/platform/x86/lenovo/ideapad-laptop.c
> +++ b/drivers/platform/x86/lenovo/ideapad-laptop.c
> @@ -148,6 +148,7 @@ enum {
> #define KBD_BL_QUERY_TYPE 0x1
> #define KBD_BL_TRISTATE_TYPE 0x5
> #define KBD_BL_TRISTATE_AUTO_TYPE 0x7
> +#define KBD_BL_NONE_TYPE 0x1 /* No backlight through KBLC */
>
> #define KBD_BL_COMMAND_GET 0x2
> #define KBD_BL_COMMAND_SET 0x3
> @@ -2246,7 +2247,7 @@ static int ideapad_check_features(struct ideapad_private *priv)
> } else if (val == KBD_BL_TRISTATE_AUTO_TYPE) {
> priv->features.kbd_bl = true;
> priv->kbd_bl.type = KBD_BL_TRISTATE_AUTO;
> - } else {
> + } else if (val != KBD_BL_NONE_TYPE) {
> dev_warn(&priv->platform_device->dev,
> "Unknown keyboard type: %lu",
> val);
>
> base-commit: c339f4010dea8b0d754f84ace70cd1b089878ef8