e8f8b448c1
Add documentation for the WMI subsystem. The documentation describes both the ACPI WMI interface and the driver API for interacting with the WMI driver core. The information regarding the ACPI interface was retrieved from the Ubuntu kernel references and the Windows driver samples available on GitHub. The documentation is supposed to help driver developers writing WMI drivers, as many modern machines designed to run Windows provide an ACPI WMI interface. Signed-off-by: Armin Wolf <W_Armin@gmx.de> Tested-by: Randy Dunlap <rdunlap@infradead.org> Acked-by: Randy Dunlap <rdunlap@infradead.org> Link: https://lore.kernel.org/r/20230424222939.208137-4-W_Armin@gmx.de Signed-off-by: Hans de Goede <hdegoede@redhat.com>
22 lines
848 B
ReStructuredText
22 lines
848 B
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
==============
|
|
WMI Driver API
|
|
==============
|
|
|
|
The WMI driver core supports a more modern bus-based interface for interacting
|
|
with WMI devices, and an older GUID-based interface. The latter interface is
|
|
considered to be deprecated, so new WMI drivers should generally avoid it since
|
|
it has some issues with multiple WMI devices and events sharing the same GUIDs
|
|
and/or notification IDs. The modern bus-based interface instead maps each
|
|
WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports
|
|
WMI devices sharing GUIDs and/or notification IDs. Drivers can then register
|
|
a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible
|
|
WMI devices by the driver core.
|
|
|
|
.. kernel-doc:: include/linux/wmi.h
|
|
:internal:
|
|
|
|
.. kernel-doc:: drivers/platform/x86/wmi.c
|
|
:export:
|