xref: /linux/Documentation/driver-api/wmi.rst (revision e4a1e415eb184e0b93fe43c5604bb7287e94ac0d)
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/core.c
20   :export:
21