Hi, Sometimes the Yoga mode control switch did not work properly on my laptop, and sometimes even caused a platform profile switch. It turned out that it was caused by a race situation, the lenovo-ymc wmi notify handler was running at the same time as the ideapad-laptop acpi notify handler, and the partial results of the VPC calls in the two were mixed up. This series introduces a notification chain to receive YMC or other events, moves the EC triggering into ideapad-laptop, and then introduces a mutex to eliminate the problem. Best regards, Gergo Koteles --- Changes in v4: - Handle the return value of devm_mutex_init - Link to v3: https://lore.kernel.org/all/cover.1721294787.git.soyer@xxxxxx/ Changes in v3: - Use devm_mutex_init for vpc_mutex - Link to v2: https://lore.kernel.org/all/cover.1721258854.git.soyer@xxxxxx/ Changes in v2: - Skip the already merged "platform/x86: ideapad-laptop: use cleanup.h" commit - Based on the WMI driver development guide and the dell drivers, introduce a generic notification chain - Use the notification chain to send the YMC event from lenovo-ymc to the ideapad-laptop module - Move the ec_trigger module parameter to the ideapad-laptop as well - Mutex changes go into one patch - Link to v1: https://lore.kernel.org/all/cover.1720515666.git.soyer@xxxxxx/ --- Gergo Koteles (4): platform/x86: ideapad-laptop: introduce a generic notification chain platform/x86: ideapad-laptop: move ymc_trigger_ec from lenovo-ymc platform/x86: ideapad-laptop: move ACPI helpers from header to source file platform/x86: ideapad-laptop: add a mutex to synchronize VPC commands drivers/platform/x86/Kconfig | 1 + drivers/platform/x86/ideapad-laptop.c | 284 ++++++++++++++++++++++++-- drivers/platform/x86/ideapad-laptop.h | 142 +------------ drivers/platform/x86/lenovo-ymc.c | 60 +----- 4 files changed, 277 insertions(+), 210 deletions(-) -- 2.45.2