mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 14IWC11
@ 2026-09-11 18:23 Iustin Ivan
  2026-09-11 18:52 ` Hans de Goede
  0 siblings, 1 reply; 5+ messages in thread
From: Iustin Ivan @ 2026-09-11 18:23 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: linux-input, linux-kernel, Hans de Goede, Iustin Ivan, stable

The internal keyboard on the Lenovo IdeaPad Slim 3 14IWC11 (83RQ) does
not work after boot. The keyboard ACKs every command during probe,
including ATKBD_CMD_ENABLE, but never sends any scancodes afterwards.
Booting with 'i8042.dumbkbd=1' makes it work at the cost of the
CapsLock LED. Adding the atkbd_deactivate_fixup quirk fixes the
keyboard and the LED natively.

DMI: LENOVO 83RQ/LNVNB161216, BIOS U2CN19WW 03/30/2026

Fixes: 9cf6e24c9fbf ("Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID")
Cc: stable@vger.kernel.org
Signed-off-by: Iustin Ivan <iustinivan2002@gmail.com>
---
 drivers/input/keyboard/atkbd.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index b9ad2381f885..923f77808381 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -1938,6 +1938,14 @@ static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = {
 		},
 		.callback = atkbd_deactivate_fixup,
 	},
+	{
+		/* Lenovo IdeaPad Slim 3 14IWC11 (83RQ) */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "83RQ"),
+		},
+		.callback = atkbd_deactivate_fixup,
+	},
 	{
 		/* Xiaomi Book Pro 14 (TM2424) */
 		.matches = {
-- 
2.55.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 14IWC11
  2026-09-11 18:23 [PATCH] Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 14IWC11 Iustin Ivan
@ 2026-09-11 18:52 ` Hans de Goede
  2026-09-19  0:09   ` Martino Papero
  0 siblings, 1 reply; 5+ messages in thread
From: Hans de Goede @ 2026-09-11 18:52 UTC (permalink / raw)
  To: Iustin Ivan, Dmitry Torokhov; +Cc: linux-input, linux-kernel, stable

Hi,

On 11-Sep-26 8:23 PM, Iustin Ivan wrote:
> The internal keyboard on the Lenovo IdeaPad Slim 3 14IWC11 (83RQ) does
> not work after boot. The keyboard ACKs every command during probe,
> including ATKBD_CMD_ENABLE, but never sends any scancodes afterwards.
> Booting with 'i8042.dumbkbd=1' makes it work at the cost of the
> CapsLock LED. Adding the atkbd_deactivate_fixup quirk fixes the
> keyboard and the LED natively.
> 
> DMI: LENOVO 83RQ/LNVNB161216, BIOS U2CN19WW 03/30/2026
> 
> Fixes: 9cf6e24c9fbf ("Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID")
> Cc: stable@vger.kernel.org
> Signed-off-by: Iustin Ivan <iustinivan2002@gmail.com>

I'm starting to wonder if we should not just make this behavior the default.

IIRC the whole deactivate thing was added as a workaround for multi-byte scancodes
getting split-up during suspend/resume. I wonder if we can come-up with some
better fix for that ?

Regards,

Hans







> ---
>  drivers/input/keyboard/atkbd.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
> index b9ad2381f885..923f77808381 100644
> --- a/drivers/input/keyboard/atkbd.c
> +++ b/drivers/input/keyboard/atkbd.c
> @@ -1938,6 +1938,14 @@ static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = {
>  		},
>  		.callback = atkbd_deactivate_fixup,
>  	},
> +	{
> +		/* Lenovo IdeaPad Slim 3 14IWC11 (83RQ) */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "83RQ"),
> +		},
> +		.callback = atkbd_deactivate_fixup,
> +	},
>  	{
>  		/* Xiaomi Book Pro 14 (TM2424) */
>  		.matches = {


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 14IWC11
  2026-09-11 18:52 ` Hans de Goede
@ 2026-09-19  0:09   ` Martino Papero
  2026-09-29 20:37     ` Martino Papero
  0 siblings, 1 reply; 5+ messages in thread
From: Martino Papero @ 2026-09-19  0:09 UTC (permalink / raw)
  To: Hans de Goede, Iustin Ivan, Dmitry Torokhov
  Cc: linux-input, linux-kernel, stable


Il 11/09/26 20:52, Hans de Goede ha scritto:
> Hi,
> I'm starting to wonder if we should not just make this behavior the default.
>
> IIRC the whole deactivate thing was added as a workaround for multi-byte scancodes
> getting split-up during suspend/resume. I wonder if we can come-up with some
> better fix for that ?
>
> Regards,
>
> Hans


Hi,

I tested the same atkbd_deactivate_fixup on a Lenovo IdeaPad Slim 3 
15IWC11 (83RR), which was affected by the keyboard issue previously 
discussed here:

https://lore.kernel.org/all/20260628-ideapad-kbd-leds-v1-0-50b421d94927@gmail.com/ 
<https://lore.kernel.org/all/20260628-ideapad-kbd-leds-v1-0-50b421d94927@gmail.com/>

Without any kernel quirk, the internal keyboard does not work. I had 
been using:

|i8042.nopnp=1 i8042.dumbkbd=1|

which makes the keyboard work, but prevents the Caps Lock LED from working.

I built Fedora kernel 7.2.5 with the following additional DMI entry:

|{ /* Lenovo IdeaPad Slim 3 15IWC11 (83RR) */ .matches = { 
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), DMI_MATCH(DMI_PRODUCT_NAME, 
"83RR"), }, .callback = atkbd_deactivate_fixup, },|

I booted this kernel without any i8042 command-line parameters.

The internal keyboard and Caps Lock LED both work correctly. I also 
tested suspend/resume and a cold boot, with no issues so far.

DMI:
LENOVO 83RR
LENOVO_MT_83RR_BU_idea_FM_IdeaPad Slim 3 15IWC11

So it looks like the 83RR can use the same atkbd_deactivate_fixup as the 
83RQ.

I can test a revised patch if needed.

Regards,
Martino



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 14IWC11
  2026-09-19  0:09   ` Martino Papero
@ 2026-09-29 20:37     ` Martino Papero
  2026-09-30  7:56       ` Hans de Goede
  0 siblings, 1 reply; 5+ messages in thread
From: Martino Papero @ 2026-09-29 20:37 UTC (permalink / raw)
  To: Hans de Goede, Iustin Ivan, Dmitry Torokhov
  Cc: linux-input, linux-kernel, stable


Il 19/09/26 02:09, Martino Papero ha scritto:
>
> Il 11/09/26 20:52, Hans de Goede ha scritto:
>> Hi,
>> I'm starting to wonder if we should not just make this behavior the 
>> default.
>>
>> IIRC the whole deactivate thing was added as a workaround for 
>> multi-byte scancodes
>> getting split-up during suspend/resume. I wonder if we can come-up 
>> with some
>> better fix for that ?
>>
>> Regards,
>>
>> Hans
>
>
> Hi,
>
> I tested the same atkbd_deactivate_fixup on a Lenovo IdeaPad Slim 3 
> 15IWC11 (83RR), which was affected by the keyboard issue previously 
> discussed here:
>
> https://lore.kernel.org/all/20260628-ideapad-kbd-leds-v1-0-50b421d94927@gmail.com/ 
> <https://lore.kernel.org/all/20260628-ideapad-kbd-leds-v1-0-50b421d94927@gmail.com/> 
>
>
> Without any kernel quirk, the internal keyboard does not work. I had 
> been using:
>
> |i8042.nopnp=1 i8042.dumbkbd=1|
>
> which makes the keyboard work, but prevents the Caps Lock LED from 
> working.
>
> I built Fedora kernel 7.2.5 with the following additional DMI entry:
>
> {
>     /* Lenovo IdeaPad Slim 3 15IWC11 (83RR) */
>     .matches = {
>     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
>     DMI_MATCH(DMI_PRODUCT_NAME, "83RR"),
>     },
>     .callback = atkbd_deactivate_fixup,
> },|
>
> I booted this kernel without any i8042 command-line parameters.
>
> The internal keyboard and Caps Lock LED both work correctly. I also 
> tested suspend/resume and a cold boot, with no issues so far.
>
> DMI:
> LENOVO 83RR
> LENOVO_MT_83RR_BU_idea_FM_IdeaPad Slim 3 15IWC11
>
> So it looks like the 83RR can use the same atkbd_deactivate_fixup as 
> the 83RQ.
>
> I can test a revised patch if needed.
>
> Regards,
> Martino


Hi,

Just following up on this.

The 83RR is still working reliably with atkbd_deactivate_fixup after 
further use, without i8042.nopnp or i8042.dumbkbd.

Would it be useful for me to submit a separate patch adding the Lenovo 
IdeaPad Slim 3 15IWC11 (83RR) to the atkbd_deactivate_fixup DMI table?

I can prepare and test the patch on the affected hardware. 
Alternatively, if the generic solution discussed above is preferred, I 
am happy to test that as well.

Regards,
Martino



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 14IWC11
  2026-09-29 20:37     ` Martino Papero
@ 2026-09-30  7:56       ` Hans de Goede
  0 siblings, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2026-09-30  7:56 UTC (permalink / raw)
  To: Martino Papero, Iustin Ivan, Dmitry Torokhov
  Cc: linux-input, linux-kernel, stable

Hi,

On 29-Sep-26 22:37, Martino Papero wrote:
> 
> Il 19/09/26 02:09, Martino Papero ha scritto:
>>
>> Il 11/09/26 20:52, Hans de Goede ha scritto:
>>> Hi,
>>> I'm starting to wonder if we should not just make this behavior the default.
>>>
>>> IIRC the whole deactivate thing was added as a workaround for multi-byte scancodes
>>> getting split-up during suspend/resume. I wonder if we can come-up with some
>>> better fix for that ?
>>>
>>> Regards,
>>>
>>> Hans
>>
>>
>> Hi,
>>
>> I tested the same atkbd_deactivate_fixup on a Lenovo IdeaPad Slim 3 15IWC11 (83RR), which was affected by the keyboard issue previously discussed here:
>>
>> https://lore.kernel.org/all/20260628-ideapad-kbd-leds-v1-0-50b421d94927@gmail.com/ <https://lore.kernel.org/all/20260628-ideapad-kbd-leds-v1-0-50b421d94927@gmail.com/>
>>
>> Without any kernel quirk, the internal keyboard does not work. I had been using:
>>
>> |i8042.nopnp=1 i8042.dumbkbd=1|
>>
>> which makes the keyboard work, but prevents the Caps Lock LED from working.
>>
>> I built Fedora kernel 7.2.5 with the following additional DMI entry:
>>
>> {
>>     /* Lenovo IdeaPad Slim 3 15IWC11 (83RR) */
>>     .matches = {
>>     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
>>     DMI_MATCH(DMI_PRODUCT_NAME, "83RR"),
>>     },
>>     .callback = atkbd_deactivate_fixup,
>> },|
>>
>> I booted this kernel without any i8042 command-line parameters.
>>
>> The internal keyboard and Caps Lock LED both work correctly. I also tested suspend/resume and a cold boot, with no issues so far.
>>
>> DMI:
>> LENOVO 83RR
>> LENOVO_MT_83RR_BU_idea_FM_IdeaPad Slim 3 15IWC11
>>
>> So it looks like the 83RR can use the same atkbd_deactivate_fixup as the 83RQ.
>>
>> I can test a revised patch if needed.
>>
>> Regards,
>> Martino
> 
> 
> Hi,
> 
> Just following up on this.
> 
> The 83RR is still working reliably with atkbd_deactivate_fixup after further use, without i8042.nopnp or i8042.dumbkbd.
> 
> Would it be useful for me to submit a separate patch adding the Lenovo IdeaPad Slim 3 15IWC11 (83RR) to the atkbd_deactivate_fixup DMI table?
> 
> I can prepare and test the patch on the affected hardware. Alternatively, if the generic solution discussed above is preferred, I am happy to test that as well.

Submitting a patch adding a quirk for this would be useful, I don't think
anyone is actually working on a generic solution so for now we will need
quirks to get these laptops to work.

Thanks & Regards,

Hans


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-09-30  7:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-11 18:23 [PATCH] Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 14IWC11 Iustin Ivan
2026-09-11 18:52 ` Hans de Goede
2026-09-19  0:09   ` Martino Papero
2026-09-29 20:37     ` Martino Papero
2026-09-30  7:56       ` Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®