xref: /linux/Documentation/driver-api/wmi.rst (revision 50d4cc74b8a720a9682a9c94f7e62a5de6b2ed3a)
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/wmi/string.c
20   :export:
21
22.. kernel-doc:: drivers/platform/wmi/core.c
23   :export:
24