platform/x86: hp-wmi: Add HP Envy special key support
authorJonathan Singer <jes965@nyu.edu>
Wed, 26 Apr 2023 18:48:54 +0000 (14:48 -0400)
committerHans de Goede <hdegoede@redhat.com>
Tue, 9 May 2023 09:54:42 +0000 (11:54 +0200)
commitf4a31a428d0d2fcd52e874b3e63c52de5839bfa0
tree0424f9e997c756d2c63fd7e3846a7c23ea54c6ba
parent604915f1c7b22a9c6ecbd6e16b092cdd5981f21e
platform/x86: hp-wmi: Add HP Envy special key support

Previously, some support for certain keys on the HP keyboard has been
added already in commit 3ee5447b2048 ("platform/x86: hp-wmi: Handle Omen
Key event"), however this as tested did not allow even the fn+esc key on
my HP Envy which uses the same keycode on my HP Envy x360 laptop to work
--the keycode rather than being passed in as a separate int from WMI, was
being passed in as the event_data for the HPWMI_OMEN_KEY event.

This patch, as tested was able to properly get the keycode for fn+esc,
and for fn+f12 which is supposed to be a programmable key according to
HP's keyboard diagram and is thus mapped to KEY_PROG2. The fn+f8 key
combination (mute microphone) was a standard HPWMI_BEZEL_BUTTON key,
however it did not previously have an entry in the sparse keymap. This
patch preserves the original HPWMI_OMEN_KEY behavior for laptops that
use it by only taking the keycode from the event_data only when the
event_data is nonzero.

Signed-off-by: Jonathan Singer <jes965@nyu.edu>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20230426184852.2100-2-jes965@nyu.edu
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/hp/hp-wmi.c