RE: [PATCH] platform/x86: dell-wmi: Ignore keyboard attached / detached events

From: Mario.Limonciello
Date: Wed May 13 2020 - 13:29:16 EST


> -----Original Message-----
> From: Hans de Goede <hdegoede@xxxxxxxxxx>
> Sent: Wednesday, May 13, 2020 8:06 AM
> To: Darren Hart; Andy Shevchenko; Pali Rohár; Matthew Garrett
> Cc: Hans de Goede; Limonciello, Mario; platform-driver-x86@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH] platform/x86: dell-wmi: Ignore keyboard attached / detached
> events
>
>
> [EXTERNAL EMAIL]
>
> Ignore events with a type of 0x0011 and a code of 0xfff2 / 0xfff3,
> this silences the following messages being logged when the keyboard is
> detached / attached on a Dell Venue 11 Pro 7130:
>
> [ 63.621953] dell_wmi: Unknown key with type 0x0011 and code 0xfff2 pressed
> [ 70.240558] dell_wmi: Unknown key with type 0x0011 and code 0xfff3 pressed
>
> Note SW_TABLET_MODE is already reported through the intel_vbtn driver on
> this and other Dell devices, so dell_wmi should not report this too,
> to avoid duplicate events.

If they didn't also come through on intel-vbtn I would have proposed that we
should have a separate tablet mode switch coming from dell-wmi too.

As a general note the reason for these is that the WMI architecture on Windows
differs in that applications typically directly receive the events and do things
with them.

>
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
> drivers/platform/x86/dell-wmi.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> index 86e8dd6a8b33..c25a4286d766 100644
> --- a/drivers/platform/x86/dell-wmi.c
> +++ b/drivers/platform/x86/dell-wmi.c
> @@ -310,6 +310,16 @@ static const struct key_entry dell_wmi_keymap_type_0011[]
> = {
> /* Battery inserted */
> { KE_IGNORE, 0xfff1, { KEY_RESERVED } },
>
> + /*
> + * Detachable keyboard detached / undocked
> + * Note SW_TABLET_MODE is already reported through the intel_vbtn
> + * driver for this, so we ignore it.
> + */
> + { KE_IGNORE, 0xfff2, { KEY_RESERVED } },
> +
> + /* Detachable keyboard attached / docked */
> + { KE_IGNORE, 0xfff3, { KEY_RESERVED } },
> +
> /* Keyboard backlight level changed */
> { KE_IGNORE, KBD_LED_OFF_TOKEN, { KEY_RESERVED } },
> { KE_IGNORE, KBD_LED_ON_TOKEN, { KEY_RESERVED } },
> --
> 2.26.0

Reviewed-by: Mario Limonciello <Mario.limonciello@xxxxxxxx>