xref: /linux/Documentation/driver-api/wmi.rst (revision 185e02d61e991bf51389d2ea1497f3b98d090b95)
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