platform/x86: wmi: Track wmi devices per ACPI device
authorAndy Lutomirski <luto@kernel.org>
Wed, 25 Nov 2015 03:50:01 +0000 (19:50 -0800)
committerDarren Hart (VMware) <dvhart@infradead.org>
Tue, 6 Jun 2017 17:15:17 +0000 (10:15 -0700)
commitb0e86302973d9e710c722a8436cc7e099d2a5b0d
tree20714faac6d7df1bcada04778e62ffa4ad0f3394
parent46492ee4a6ca82e878218059c0f8539c8f9ac14e
platform/x86: wmi: Track wmi devices per ACPI device

Currently we free all devices when we detach from any ACPI node.
Instead, keep track of which node WMI devices are attached to and
free them only as needed. While we are at it, match up notifications
with the device they came from correctly.

This will make our behavior more straightforward on systems with
more than one WMI node in the ACPI tables (e.g. the Dell XPS 13
9350).

This also adds a warning when GUIDs are not unique.

NB: The guid_string parameter in guid_already_parsed was a
little-endian binary GUID, not a string.

Signed-off-by: Andy Lutomirski <luto@kernel.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>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
drivers/platform/x86/wmi.c