platform/x86: add support for Huawei WMI hotkeys
authorAyman Bagabas <ayman.bagabas@gmail.com>
Wed, 12 Dec 2018 23:07:58 +0000 (18:07 -0500)
committerTakashi Iwai <tiwai@suse.de>
Thu, 13 Dec 2018 08:23:27 +0000 (09:23 +0100)
commitbf4fb28c6e74495de9e1e4ad359cd2272ac12c53
treeb6855511ddbc1e5d6d54ad7585cb3ffcc4e2f708
parent8ac51bbc4cfec4ef08b03bef24b31e2d50ef8b37
platform/x86: add support for Huawei WMI hotkeys

This driver adds support for missing hotkeys on some Huawei laptops.
Laptops such as the Matebook X have non functioning hotkeys. Whereas
newer laptops such as the Matebook X Pro come with working hotkeys out
of the box.

Old laptops, such as the Matebook X, report hotkey events through ACPI
device "\WMI0". However, new laptops, such as the Matebook X Pro, does
not have this WMI device.

All the hotkeys on the Matebook X Pro work fine without this patch
except (micmute, wlan, and huawei key). These keys and the brightness
keys report events to "\AMW0" ACPI device. One problem is that
brightness keys on the Matebook X Pro work without this patch. This
results in reporting two brightness key press events one is captured
by ACPI and another by this driver.

A solution would be to check if such event came from the "\AMW0" WMI
driver then skip reporting event. Another solution would be to leave
this to user-space to handle. Which can be achieved by using "hwdb"
tables and remap those keys to "unknown". This solution seems more
natural to me because it leaves the decision to user-space.

Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Ayman Bagabas <ayman.bagabas@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
drivers/platform/x86/Kconfig
drivers/platform/x86/Makefile
drivers/platform/x86/huawei-wmi.c [new file with mode: 0644]