platform/x86: asus-wmi: Add fn-lock mode switch support
authorChris Chiu <chiu@endlessm.com>
Thu, 18 Apr 2019 06:46:48 +0000 (14:46 +0800)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 8 May 2019 21:33:03 +0000 (00:33 +0300)
commit487579bab867e739be3d2c0064ad3af1221482c8
tree013a6aac244bf5ef0b6ebdb853c929a60594c727
parent5105e78e5b2414ec39efaadca1802e37e7105bb1
platform/x86: asus-wmi: Add fn-lock mode switch support

Some of latest ASUS laptops support new fn-lock mode switching.
This commit detect whether if the fn-lock option is enabled in
BIOS setting, and toggle the fn-lock mode via a new WMI DEVID
0x00100023 when the corresponding notify code captured.

The ASUS fn-lock mode switch is activated by pressing Fn+Esc.
When on, keys F1 to F12 behave as applicable, with meanings
defined by the application being used at the time. When off,
F1 to F12 directly triggers hardware features, well known audio
volume up/down, brightness up/down...etc, which were triggered
by holding down Fn key and F-keys.

Because there's no way to retrieve the fn-lock mode via existing
WMI methods per ASUS spec, driver need to initialize and keep the
fn-lock mode by itself.

Signed-off-by: Chris Chiu <chiu@endlessm.com>
Reviewed-by: Daniel Drake <drake@endlessm.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/asus-wmi.c
include/linux/platform_data/x86/asus-wmi.h