xref: /linux/Documentation/driver-api/wmi.rst (revision 2e03358be78b65d28b66e17aca9e0c8700b0df78)
1.. SPDX-License-Identifier: GPL-2.0-or-later
2
3==============
4WMI Driver API
5==============
6
7The WMI driver core supports a more modern bus-based interface for interacting
8with WMI devices, and an older GUID-based interface. The latter interface is
9considered to be deprecated, so new WMI drivers should generally avoid it since
10it has some issues with multiple WMI devices sharing the same GUID.
11The modern bus-based interface instead maps each WMI device to a
12:c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
13same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
14which will be bound to compatible WMI devices by the driver core.
15
16.. kernel-doc:: include/linux/wmi.h
17   :internal:
18
19.. kernel-doc:: drivers/platform/x86/wmi.c
20   :export:
21