Currently only one driver can register as a handler for a platform profile. This limitation means that if multiple drivers want to react to platform profile changes that they will need to directly interact with individual drivers. Instead introduce a notification flow that drivers can register for event changes. The idea is that any driver that wants to can: 1. read the current profile 2. set up initial values 3. register for changes 4. react to changes Note: currently this is accomplished by changing platform_profile_get to a symbol that all drivers can get during initialization. Another idea for this may be to change: `int platform_profile_register_notifier(struct notifier_block *nb)` into: `int platform_profile_register_notifier(struct notifier_block *nb, enum *profile)` IOW return the current profile value as an out argument as part of registration. I don't have a strong opinion. Changes from v2->v3: * Add patches to avoid collisions in hp-wmi and asus-wmi symbols Mario Limonciello (3): platform/x86: hp-wmi: rename platform_profile_* function symbols platform/x86: asus-wmi: rename platform_profile_* function symbols ACPI: platform_profile: Add support for notification chains drivers/acpi/platform_profile.c | 48 ++++++++++++++++++++++++++++---- drivers/platform/x86/asus-wmi.c | 12 ++++---- drivers/platform/x86/hp-wmi.c | 12 ++++---- include/linux/platform_profile.h | 10 +++++++ 4 files changed, 64 insertions(+), 18 deletions(-) -- 2.25.1