platform/x86: wmi: Fix WMI event enablement
authorArmin Wolf <W_Armin@gmx.de>
Thu, 19 Jun 2025 22:14:39 +0000 (00:14 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 26 Jun 2025 15:19:24 +0000 (18:19 +0300)
commitcf0b812500e64a7d5e2957abed38c3a97917b34f
tree4e5b5591a12111b5237e6a4b57bcb6d1ed1dacda
parentd07143b507c51c04c091081627c5a130e9d3c517
platform/x86: wmi: Fix WMI event enablement

It turns out that the Windows WMI-ACPI driver always enables/disables
WMI events regardless of whether they are marked as expensive or not.
This finding is further reinforced when reading the documentation of
the WMI_FUNCTION_CONTROL_CALLBACK callback used by Windows drivers
for enabling/disabling WMI devices:

The DpWmiFunctionControl routine enables or disables
notification of events, and enables or disables data
collection for data blocks that the driver registered
as expensive to collect.

Follow this behavior to fix the WMI event used for reporting hotkey
events on the Dell Latitude 5400 and likely many more devices.

Reported-by: Dmytro Bagrii <dimich.dmb@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220246
Tested-by: Dmytro Bagrii <dimich.dmb@gmail.com>
Fixes: 656f0961d126 ("platform/x86: wmi: Rework WCxx/WExx ACPI method handling")
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20250619221440.6737-1-W_Armin@gmx.de
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/wmi.c