xref: /linux/Documentation/driver-api/wmi.rst (revision 2b3082c6ef3b0104d822f6f18d2afbe5fc9a5c2c)
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 and events sharing the same GUIDs
11and/or notification IDs. The modern bus-based interface instead maps each
12WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports
13WMI devices sharing GUIDs and/or notification IDs. Drivers can then register
14a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible
15WMI devices by the driver core.
16
17.. kernel-doc:: include/linux/wmi.h
18   :internal:
19
20.. kernel-doc:: drivers/platform/x86/wmi.c
21   :export:
22