linux/drivers/platform/x86
Pali Rohár e075b3c898 dell-wmi: Generate one sparse keymap for all machines
This patch reworks code for generating sparse keymap and processing WMI
events. It unifies procedure for generating sparse keymap and also unifies
big switch code for processing WMI events of different types. After this
patch dell-wmi driver does not differ between "old" and "new" hotkey type.

It constructs sparse keymap table with all WMI codes. It is because on some
laptops (e.g. Dell Latitude E6440) ACPI/firmware send both event types (old
and new).

Each WMI code in sparse keymap table is prefixed by 16bit event type, so it
does not change functionality on laptops with "old" hotkey support (those
without scancodes in DMI).

This allow us to distinguish between same WMI codes with different types in
sparse keymap. Thanks to this WMI events of type 0x0011 were moved from big
switch into sparse keymap table too.

This patch also fixes possible bug in parsing WMI event buffer introduced
in commit 5ea2559726 ("dell-wmi: Add support for new Dell systems"). That
commit changed buffer type from int* to u16* without fixing code. More at:
http://lkml.iu.edu/hypermail/linux/kernel/1507.0/01950.html

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Michał Kępień <kernel@kempniu.pl>
Reviewed-by: Michał Kępień <kernel@kempniu.pl>
Tested-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2016-06-17 11:13:35 -07:00
..
acer-wmi.c acer-wmi: Use acpi_dev_found() 2016-04-09 03:12:59 +02:00
acerhdf.c
alienware-wmi.c
amilo-rfkill.c
apple-gmux.c
asus-laptop.c asus-laptop: correct error handling in sysfs_acpi_set 2016-04-25 10:42:54 -07:00
asus-nb-wmi.c
asus-wireless.c
asus-wmi.c asus-wmi: provide access to ALS control 2016-05-27 11:47:54 -07:00
asus-wmi.h
classmate-laptop.c
compal-laptop.c
dell-laptop.c
dell-rbtn.c dell-rbtn: Ignore ACPI notifications if device is suspended 2016-05-27 11:47:56 -07:00
dell-rbtn.h
dell-smbios.c
dell-smbios.h
dell-smo8800.c
dell-wmi-aio.c
dell-wmi.c dell-wmi: Generate one sparse keymap for all machines 2016-06-17 11:13:35 -07:00
eeepc-laptop.c
eeepc-wmi.c eeepc-wmi: Use acpi_dev_found() 2016-04-09 03:12:58 +02:00
fujitsu-laptop.c fujitsu-laptop: Use IS_ENABLED() instead of checking for built-in or module 2016-05-05 13:52:18 -07:00
fujitsu-tablet.c
hdaps.c
hp_accel.c hp_accel: Silence an uninitialized variable warning 2016-04-15 08:26:25 -07:00
hp-wireless.c
hp-wmi.c
ibm_rtl.c
ideapad-laptop.c ideapad-laptop: add a new WMI string for ESC key 2016-05-27 11:47:54 -07:00
intel_ips.c
intel_ips.h
intel_menlow.c intel_menlow: reduce code duplication 2016-05-27 11:47:55 -07:00
intel_mid_powerbtn.c
intel_mid_thermal.c
intel_oaktrail.c
intel_pmc_core.c platform/x86: Add PMC Driver for Intel Core SoC 2016-05-27 11:47:56 -07:00
intel_pmc_core.h platform/x86: Add PMC Driver for Intel Core SoC 2016-05-27 11:47:56 -07:00
intel_pmc_ipc.c platform:x86 decouple telemetry driver from the optional IPC resources 2016-04-19 13:51:41 -07:00
intel_pmic_gpio.c platform: x86: intel-pmic: use gpiochip data pointer 2016-04-26 15:34:41 +02:00
intel_punit_ipc.c platform:x86 decouple telemetry driver from the optional IPC resources 2016-04-19 13:51:41 -07:00
intel_scu_ipc.c
intel_scu_ipcutil.c
intel_telemetry_core.c intel_telemetry: Constify telemetry_core_ops structures 2016-05-05 13:58:55 -07:00
intel_telemetry_debugfs.c
intel_telemetry_pltdrv.c platform-drivers-x86 for 4.7-1 2016-05-27 13:56:02 -07:00
intel-hid.c intel-hid: add a workaround to ignore an event after waking up from S4. 2016-03-28 10:00:47 -07:00
intel-rst.c
intel-smartconnect.c
Kconfig platform/x86: Add PMC Driver for Intel Core SoC 2016-05-27 11:47:56 -07:00
Makefile platform/x86: Add PMC Driver for Intel Core SoC 2016-05-27 11:47:56 -07:00
msi-laptop.c
msi-wmi.c
mxm-wmi.c
panasonic-laptop.c
pvpanic.c
samsung-laptop.c
samsung-q10.c
sony-laptop.c sony-laptop: Avoid oops on module unload for older laptops 2016-05-05 16:32:32 -07:00
surfacepro3_button.c surfacepro3_button: Add a warning when switching to tablet mode 2016-05-27 11:47:53 -07:00
tc1100-wmi.c
thinkpad_acpi.c platform-drivers-x86 for 4.7-1 2016-05-27 13:56:02 -07:00
topstar-laptop.c
toshiba_acpi.c toshiba_acpi: Fix regression caused by hotkey enabling value 2016-04-25 10:31:59 -07:00
toshiba_bluetooth.c
toshiba_haps.c
toshiba-wmi.c
wmi.c drivers/platform/x86/wmi.c: use generic UUID library 2016-05-20 17:58:30 -07:00
xo1-rfkill.c
xo15-ebook.c