platform/x86: wmi: Always evaluate _WED when receiving an event
authorArmin Wolf <W_Armin@gmx.de>
Mon, 19 Feb 2024 11:59:17 +0000 (12:59 +0100)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 27 Feb 2024 12:44:25 +0000 (14:44 +0200)
commit56230bd733f8cb122632c80bc49ae12b1a9365a6
tree6ae156d778c101e7583b19a56d8cea59aca64bbe
parent125619112deaf5f7d79b05e268254df3af916d10
platform/x86: wmi: Always evaluate _WED when receiving an event

The ACPI WMI specification states:

"The _WED control method is evaluated by the mapper in
 response to receiving a notification from a control
 method."

This means that _WED should be evaluated unconditionally even
if no WMI event consumers are present.
Some firmware implementations actually depend on this behavior
by storing the event data inside a queue which will fill up if
the WMI core stops retrieving event data items due to no
consumers being present

Fix this by always evaluating _WED even if no WMI event consumers
are present.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20240219115919.16526-4-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