[PATCH 5/5] platform/x86: wmi: Call both legacy and WMI driver notify handlers

Armin Wolf
2024-08-22T17:39:03Z

Since the legacy WMI notify handlers are now using the WMI event data
provided by the WMI driver core, they can coexist with modern WMI
driver notify handlers.

Remove the precedence of WMI driver notify handlers and call both
when receiving an event.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
drivers/platform/x86/wmi.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 6b27833ba5d9..3cbe180c3fc0 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -1175,15 +1175,13 @@ static int wmi_notify_device(struct device *dev, void *data)
}

down_read(&wblock->notify_lock);
- /* The WMI driver notify handler conflicts with the legacy WMI handler.
- * Because of this the WMI driver notify handler takes precedence.
- */
- if (wblock->dev.dev.driver && wblock->driver_ready) {
+
+ if (wblock->dev.dev.driver && wblock->driver_ready)
wmi_notify_driver(wblock, obj);
- } else {
- if (wblock->handler)
- wblock->handler(obj, wblock->handler_data);
- }
+
+ if (wblock->handler)
+ wblock->handler(obj, wblock->handler_data);
+
up_read(&wblock->notify_lock);

kfree(obj);
--
2.39.2