linux/drivers/platform/x86
Chris Chiu 487579bab8 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>
2019-05-09 00:33:03 +03:00
..
acer-wireless.c
acer-wmi.c platform/x86: acer-wmi: Silence "unsupported" message a bit 2018-08-22 13:40:24 +03:00
acerhdf.c platform/x86: acerhdf: restructure to allow large BIOS table be __initconst 2018-09-27 12:18:08 +03:00
alienware-wmi.c platform/x86: alienware-wmi: printing the wrong error code 2019-05-09 00:33:02 +03:00
amilo-rfkill.c
apple-gmux.c
asus-laptop.c
asus-nb-wmi.c platform/x86: asus-nb-wmi: Drop mapping of 0x33 and 0x34 scan codes 2018-11-07 15:56:42 +02:00
asus-wireless.c
asus-wmi.c platform/x86: asus-wmi: Add fn-lock mode switch support 2019-05-09 00:33:03 +03:00
asus-wmi.h
classmate-laptop.c
compal-laptop.c
dcdbas.c firmware: dcdbas: include linux/io.h 2018-10-03 11:27:22 +03:00
dcdbas.h firmware: dcdbas: Move dcdbas to drivers/platform/x86 2018-09-27 12:18:15 +03:00
dell-laptop.c platform/x86: dell-laptop: fix rfkill functionality 2019-04-16 13:18:23 -07:00
dell-rbtn.c platform/x86: dell-rbtn: Add missing #include 2019-04-08 20:12:13 +03:00
dell-rbtn.h
dell-smbios-base.c
dell-smbios-smm.c firmware: dcdbas: Move dcdbas to drivers/platform/x86 2018-09-27 12:18:15 +03:00
dell-smbios-wmi.c platform/x86: dell-smbios-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
dell-smbios.h
dell-smo8800.c
dell-wmi-aio.c
dell-wmi-descriptor.c platform/x86: dell-wmi-descriptor: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
dell-wmi-descriptor.h
dell-wmi-led.c
dell-wmi.c platform/x86: dell-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
dell_rbu.c platform/x86: dell_rbu: fix lock imbalance in img_update_realloc 2019-02-23 09:20:56 -08:00
eeepc-laptop.c PCI: hotplug: Embed hotplug_slot 2018-09-18 17:52:15 -05:00
eeepc-wmi.c
fujitsu-laptop.c
fujitsu-tablet.c
gpd-pocket-fan.c
hdaps.c
hp-wireless.c
hp-wmi.c
hp_accel.c
huawei-wmi.c platform/x86: huawei-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
i2c-multi-instantiate.c ACPI / scan: Create platform device for BSG2150 ACPI nodes 2019-02-05 19:38:20 +02:00
ibm_rtl.c
ideapad-laptop.c platform/x86: ideapad-laptop: Remove no_hw_rfkill_list 2019-05-09 00:33:03 +03:00
intel-hid.c platform/x86: intel-hid: Missing power button release on some Dell models 2019-01-26 11:07:34 -08:00
intel-rst.c platform/x86: intel-rst: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel-smartconnect.c platform/x86: intel-smartconnect: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel-vbtn.c
intel-wmi-thunderbolt.c platform/x86: intel-wmi-thunderbolt: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
intel_atomisp2_pm.c platform/x86: Fix config space access for intel_atomisp2_pm 2018-12-03 21:40:03 +02:00
intel_bxtwc_tmu.c platform/x86: intel_bxtwc_tmu: Convert to use SPDX identifier 2018-09-27 12:18:16 +03:00
intel_cht_int33fe.c platform/x86: intel_cht_int33fe: Remove old style mux connections 2019-02-14 10:52:25 +01:00
intel_chtdc_ti_pwrbtn.c platform/x86: intel_chtdc_ti_pwrbtn: Add SPDX identifier 2018-09-27 12:18:16 +03:00
intel_int0002_vgpio.c platform/x86: intel_int0002_vgpio: Only implement irq_set_wake on Bay Trail 2019-02-05 20:28:54 +02:00
intel_ips.c platform/x86: intel_ips: Convert to use DEFINE_SHOW_ATTRIBUTE macro 2018-12-03 21:40:03 +02:00
intel_ips.h platform/x86: intel-ips: Convert to use SPDX identifier 2018-09-27 12:18:16 +03:00
intel_menlow.c platform/x86: intel_menlow: Convert to use SPDX identifier 2018-09-27 12:18:17 +03:00
intel_mid_powerbtn.c platform-drivers-x86 for v4.20-1 2018-11-01 08:42:21 -07:00
intel_mid_thermal.c platform/x86: intel_mid_thermal: Convert to use SPDX identifier 2018-09-27 12:18:17 +03:00
intel_oaktrail.c platform/x86: intel_oaktrail: Convert to use SPDX identifier 2018-09-27 12:18:18 +03:00
intel_pmc_core.c platform/x86: intel_pmc_core: Allow to dump debug registers on S0ix failure 2019-05-06 17:54:42 +03:00
intel_pmc_core.h platform/x86: intel_pmc_core: Allow to dump debug registers on S0ix failure 2019-05-06 17:54:42 +03:00
intel_pmc_ipc.c platform/x86: intel_pmc_ipc: Don't map non-used optional resources 2019-05-06 17:54:04 +03:00
intel_punit_ipc.c platform/x86: intel_punit_ipc: Revert "Fix resource ioremap warning" 2019-05-06 17:54:13 +03:00
intel_scu_ipc.c platform/x86: intel_scu_ipc: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel_scu_ipcutil.c platform/x86: intel_scu_ipc: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel_telemetry_core.c platform/x86: intel_telemetry: Convert to use SPDX identifier 2018-09-27 12:18:20 +03:00
intel_telemetry_debugfs.c platform/x86: intel_telemetry: convert to DEFINE_SHOW_ATTRIBUTE 2018-12-10 11:31:00 +02:00
intel_telemetry_pltdrv.c platform-drivers-x86 for v4.20-1 2018-11-01 08:42:21 -07:00
intel_turbo_max_3.c platform/x86: intel_turbo_max_3: Convert to use SPDX identifier 2018-09-27 12:18:20 +03:00
Kconfig platform/x86: fix PCENGINES_APU2 Kconfig warning 2019-03-08 14:11:23 +01:00
lg-laptop.c platform/x86: Add LG Gram laptop special features driver 2018-10-19 19:21:57 +03:00
Makefile x86: pcengines apuv2 gpio/leds/keys platform driver 2019-02-22 17:28:08 +01:00
mlx-platform.c platform/x86: mlx-platform: Add mlx-wdt platform driver activation 2019-05-06 17:54:42 +03:00
msi-laptop.c
msi-wmi.c
mxm-wmi.c
panasonic-laptop.c
pcengines-apuv2.c x86: apuv2: remove unused variable 2019-03-08 14:11:30 +01:00
peaq-wmi.c
pmc_atom.c
samsung-laptop.c
samsung-q10.c
sony-laptop.c platform/x86: sony-laptop: Fix unintentional fall-through 2019-05-09 00:33:02 +03:00
surface3-wmi.c
surface3_button.c
surfacepro3_button.c
tc1100-wmi.c
thinkpad_acpi.c platform/x86: thinkpad_acpi: cleanup for Thinkpad ACPI led 2019-05-09 00:33:03 +03:00
topstar-laptop.c
toshiba-wmi.c
toshiba_acpi.c platform/x86: toshiba_acpi: Fix defined but not used build warnings 2018-07-21 09:26:45 -07:00
toshiba_bluetooth.c
toshiba_haps.c
touchscreen_dmi.c platform/x86: touchscreen_dmi: Add info for 'jumper ezpad 6 pro b' touchscreen 2019-05-09 00:33:03 +03:00
wmi-bmof.c platform/x86: wmi-bmof: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
wmi.c platform/x86: wmi: move struct wmi_device_id to mod_devicetable.h 2019-03-07 08:46:07 -08:00
xo1-rfkill.c
xo15-ebook.c