| .. SPDX-License-Identifier: GPL-2.0-or-later |
| |
| ============== |
| WMI Driver API |
| ============== |
| |
| The WMI driver core supports a more modern bus-based interface for interacting |
| with WMI devices, and an older GUID-based interface. The latter interface is |
| considered to be deprecated, so new WMI drivers should generally avoid it since |
| it has some issues with multiple WMI devices and events sharing the same GUIDs |
| and/or notification IDs. The modern bus-based interface instead maps each |
| WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports |
| WMI devices sharing GUIDs and/or notification IDs. Drivers can then register |
| a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible |
| WMI devices by the driver core. |
| |
| .. kernel-doc:: include/linux/wmi.h |
| :internal: |
| |
| .. kernel-doc:: drivers/platform/x86/wmi.c |
| :export: |