summaryrefslogtreecommitdiff
path: root/include/linux/wmi.h
diff options
context:
space:
mode:
authorArmin Wolf <W_Armin@gmx.de>2024-10-05 23:38:25 +0200
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>2024-10-09 12:04:48 +0300
commitd12586e1072d92070783c854819a0ca8c82c5439 (patch)
tree5e269c19be1b5049fdb965d482e773c63abffcbf /include/linux/wmi.h
parent066c779b094b63754e0742ad8675d72d6c0a46f6 (diff)
platform/x86: wmi: Implement proper shutdown handling
When performing a system shutdown under Windows, all WMI clients are terminated. This means that the ACPI BIOS might expect all WMI devices to be disabled when shutting down. Emulate this behaviour by disabling all active WMI devices during shutdown. Also introduce a new WMI driver callback to allow WMI drivers to perform any device-specific actions before disabling the WMI device. Tested on a Dell Inspiron 3505. Signed-off-by: Armin Wolf <W_Armin@gmx.de> Link: https://lore.kernel.org/r/20241005213825.701887-2-W_Armin@gmx.de Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Diffstat (limited to 'include/linux/wmi.h')
-rw-r--r--include/linux/wmi.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/wmi.h b/include/linux/wmi.h
index 3275470b5531..120019677fc6 100644
--- a/include/linux/wmi.h
+++ b/include/linux/wmi.h
@@ -56,6 +56,7 @@ u8 wmidev_instance_count(struct wmi_device *wdev);
* @no_singleton: Driver can be instantiated multiple times
* @probe: Callback for device binding
* @remove: Callback for device unbinding
+ * @shutdown: Callback for device shutdown
* @notify: Callback for receiving WMI events
*
* This represents WMI drivers which handle WMI devices.
@@ -68,6 +69,7 @@ struct wmi_driver {
int (*probe)(struct wmi_device *wdev, const void *context);
void (*remove)(struct wmi_device *wdev);
+ void (*shutdown)(struct wmi_device *wdev);
void (*notify)(struct wmi_device *device, union acpi_object *data);
};