linux/drivers/platform/x86
Darren Hart (VMware) 6ee50aaa9a platform/x86: wmi: Instantiate all devices before adding them
At some point, we will want sub-drivers to get references to other
devices on the same WMI bus. This change is needed to avoid races.

This ends up simplifying the setup code and fixing some leaks, too.

This is based on the original work of Andy Lutomirski <luto@kernel.org>,
but includes several modifications, many in response to review from
Michał Kępień <kernel@kempniu.pl>:

  https://www.spinics.net/lists/platform-driver-x86/msg08201.html

Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Mario Limonciello <mario_limonciello@dell.com>
Cc: Pali Rohár <pali.rohar@gmail.com>
Cc: linux-kernel@vger.kernel.org
Cc: platform-driver-x86@vger.kernel.org
Cc: linux-acpi@vger.kernel.org
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-06-06 10:15:19 -07:00
..
acer-wmi.c platform/x86: acer-wmi: setup accelerometer when ACPI device was found 2017-04-28 21:51:29 +03:00
acerhdf.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
alienware-wmi.c platform/x86: alienware-wmi: Remove header duplicate 2017-02-24 23:48:46 -08:00
amilo-rfkill.c
apple-gmux.c apple-gmux: Don't switch external DP port on 2011+ MacBook Pros 2017-03-30 22:42:30 +02:00
asus-laptop.c platform/x86: asus-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:02 -07:00
asus-nb-wmi.c platform/x86: asus-wmi: try to set als by default 2017-04-28 21:52:24 +03:00
asus-wireless.c platform/x86: asus-wireless: Fix indentation 2017-02-24 23:48:48 -08:00
asus-wmi.c platform/x86: asus-wmi: try to set als by default 2017-04-28 21:52:24 +03:00
asus-wmi.h platform/x86: asus-wmi: try to set als by default 2017-04-28 21:52:24 +03:00
classmate-laptop.c
compal-laptop.c compal-laptop: Add charge control limit 2015-10-03 08:44:57 -07:00
dell-laptop.c platform/x86: dell-laptop: Add keyboard backlight timeout AC settings 2017-04-28 21:51:26 +03:00
dell-rbtn.c platform/x86: dell-rbtn: Improve explanation about DELLABC6 2017-06-03 12:23:43 -07:00
dell-rbtn.h
dell-smbios.c platform/x86: dell-*: Add a generic dell-laptop notifier chain 2017-04-13 10:12:19 -07:00
dell-smbios.h platform/x86: dell-*: Add a generic dell-laptop notifier chain 2017-04-13 10:12:19 -07:00
dell-smo8800.c x86: separate extable.h, switch sections.h to it 2016-09-27 21:15:23 -04:00
dell-wmi-aio.c platform/x86: dell-wmi-aio: remove sparse_keymap_free() calls 2017-03-14 22:58:04 -07:00
dell-wmi-led.c platform/x86: dell-wmi-led: fix coding style issues 2017-03-06 22:07:12 +01:00
dell-wmi.c platform/x86: dell-wmi: Add a better description for "stealth mode" 2017-06-03 12:13:52 -07:00
eeepc-laptop.c platform/x86: eeepc-laptop: Skip unknown key messages 0x50 0x51 2017-03-23 09:01:35 -07:00
eeepc-wmi.c eeepc-wmi: Use acpi_dev_found() 2016-04-09 03:12:58 +02:00
fujitsu-laptop.c platform/x86: fujitsu-laptop: use device-specific data in remaining module code 2017-06-03 12:04:47 -07:00
fujitsu-tablet.c
hdaps.c
hp_accel.c platform/x86: hp_accel: Add support for HP ZBook 17 2017-02-03 14:04:53 +02:00
hp-wireless.c platform/x86: hp-wireless: reuse module_acpi_driver 2017-04-28 21:51:25 +03:00
hp-wmi.c platform/x86: hp-wmi: Cleanup exit paths 2017-04-20 13:26:18 -07:00
ibm_rtl.c move io-64-nonatomic*.h out of asm-generic 2015-10-15 00:21:07 +02:00
ideapad-laptop.c platform/x86: ideapad-laptop: Squelch ACPI event 1 2017-05-23 19:36:25 +03:00
intel_bxtwc_tmu.c platform/x86: Add Whiskey Cove PMIC TMU support 2016-12-18 14:56:37 -08:00
intel_cht_int33fe.c platform/x86: intel_cht_int33fe: Set supplied-from property on max17047 dev 2017-05-31 13:21:00 +03:00
intel_ips.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/loadavg.h> 2017-03-02 08:42:27 +01:00
intel_ips.h
intel_menlow.c intel_menlow: reduce code duplication 2016-05-27 11:47:55 -07:00
intel_mid_powerbtn.c platform/x86: intel_mid_powerbtn: Use SCU IPC directly 2017-02-24 23:48:45 -08:00
intel_mid_thermal.c platform/x86: intel_mid_thermal: Fix module autoload 2017-02-03 14:04:53 +02:00
intel_oaktrail.c
intel_pmc_core.c platform/x86: intel_pmc_core: fix out-of-bounds accesses on stack 2017-02-14 00:39:48 +02:00
intel_pmc_core.h platform/x86: intel_pmc_core: Add LTR IGNORE debug feature 2016-12-13 09:28:58 -08:00
intel_pmc_ipc.c platform/x86: intel_pmc_ipc: Mark ipc_data_readb() as __maybe_unused 2017-05-26 12:52:21 +03: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 platform/x86: intel_scu_ipc: Introduce intel_scu_ipc_raw_command() 2017-04-13 10:16:04 -07:00
intel_scu_ipcutil.c intel_scu_ipcutil: underflow in scu_reg_access() 2016-01-30 09:40:35 -08:00
intel_telemetry_core.c intel_telemetry: Constify telemetry_core_ops structures 2016-05-05 13:58:55 -07:00
intel_telemetry_debugfs.c platform-drivers-x86 for 4.8-1 2016-07-26 17:23:08 -07:00
intel_telemetry_pltdrv.c platform-drivers-x86 for 4.8-1 2016-07-26 17:23:08 -07:00
intel_turbo_max_3.c platform/x86: intel_turbo_max_3: make it explicitly non-modular 2017-02-24 23:48:54 -08:00
intel-hid.c platform/x86: intel-hid: Add missing ->thaw callback 2017-04-18 09:04:03 -07:00
intel-rst.c
intel-smartconnect.c platform/x86: Use ACPI_FAILURE at appropriate places 2016-12-13 09:29:01 -08:00
intel-vbtn.c platform/x86: intel-vbtn: add volume up and down 2017-04-25 15:09:22 +03:00
Kconfig platform/x86: peaq-wmi: Add new peaq-wmi driver 2017-05-15 12:12:14 +03:00
Makefile platform/x86: peaq-wmi: Add new peaq-wmi driver 2017-05-15 12:12:14 +03:00
mlx-platform.c platform/x86: mlx-platform: mlxcpld-hotplug driver style fixes 2017-02-03 14:04:53 +02:00
mlxcpld-hotplug.c platform/x86: Introduce support for Mellanox hotplug driver 2016-10-23 07:52:57 -07:00
msi-laptop.c platform/x86: msi-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:07 -07:00
msi-wmi.c platform/x86: msi-wmi: remove sparse_keymap_free() calls 2017-03-14 22:58:08 -07:00
mxm-wmi.c
panasonic-laptop.c platform/x86: panasonic-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:09 -07:00
peaq-wmi.c platform/x86: peaq-wmi: Add new peaq-wmi driver 2017-05-15 12:12:14 +03:00
pmc_atom.c platform/x86: Enable Atom PMC platform clocks 2017-01-26 16:21:59 -08:00
pvpanic.c
samsung-laptop.c
samsung-q10.c
silead_dmi.c platform/x86: silead_dmi: Add touchscreen info for GP-electronic T701 2017-05-15 12:06:10 +03:00
sony-laptop.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
surface3_button.c platform/x86: surface3_button: Propagate error from gpiod_count() 2017-03-16 21:52:12 +01:00
surface3-wmi.c platform/x86: surface3-wmi: fix uninitialized symbol 2017-01-21 01:43:42 +02: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 tc1100-wmi: fix build warning when CONFIG_PM not enabled 2016-01-19 17:35:47 -08:00
thinkpad_acpi.c platform/x86: thinkpad_acpi: Add a comment about 0 in module_param_call() 2017-05-15 12:07:40 +03:00
topstar-laptop.c platform/x86: topstar-laptop: Add new device id 2017-05-15 16:15:50 -07:00
toshiba_acpi.c platform/x86: toshiba_acpi: use memdup_user_nul 2017-05-15 12:06:10 +03:00
toshiba_bluetooth.c platform/x86: toshiba_bluetooth: Decouple an error checking status code 2016-09-23 16:21:06 -07:00
toshiba_haps.c platform/x86: toshiba_haps: Change logging level from info to debug 2016-09-23 16:21:05 -07:00
toshiba-wmi.c platform/x86: toshiba-wmi: remove sparse_keymap_free() calls 2017-03-14 22:58:11 -07:00
wmi.c platform/x86: wmi: Instantiate all devices before adding them 2017-06-06 10:15:19 -07:00
xo1-rfkill.c
xo15-ebook.c