Hello, Some drivers may need to dynamically modify their selected `choices`. Such is the case of the acer-wmi driver, which implemented their own profile cycling method, because users expect different profiles to be available whether the laptop is on AC or not [1]. These series would allow acer-wmi to simplify this custom cycling method to use platform_profile_cycle(), as it's already being proposed in these series [2]; without changing expected behaviors, by refreshing their selected choices on AC connect/disconnect events, which would also solve this discussion [3]. Additionally, I think the platform_profile_ops approach would enable us to hide the platform_profile_handler in the future, and instead just pass the class device to get/set methods like the HWMON subsystem does. I think having this kind of flexibility is valuable. Let me know what you think! These series are based on top of pdx86/for-next branch. ~ Kurt [1] https://lore.kernel.org/platform-driver-x86/6a9385e6-8c5a-4d08-8ff9-728ac40792d2@xxxxxxxxx/ [2] https://lore.kernel.org/platform-driver-x86/20250104-platform_profile-v2-0-b58164718903@xxxxxxxxx/ [3] https://lore.kernel.org/platform-driver-x86/20241210001657.3362-6-W_Armin@xxxxxx/ Kurt Borja (3): ACPI: platform_profile: Add ops member to handlers ACPI: platform_profile: Add `choices` to platform_profile_ops ACPI: platform_profile: Add platform_profile_refresh_choices() drivers/acpi/platform_profile.c | 39 ++++++++++++-- .../surface/surface_platform_profile.c | 24 ++++++--- drivers/platform/x86/acer-wmi.c | 35 ++++++------ drivers/platform/x86/amd/pmf/sps.c | 23 +++++--- drivers/platform/x86/asus-wmi.c | 24 ++++++--- drivers/platform/x86/dell/alienware-wmi.c | 19 ++++--- drivers/platform/x86/dell/dell-pc.c | 34 +++++++----- drivers/platform/x86/hp/hp-wmi.c | 53 +++++++++++++------ drivers/platform/x86/ideapad-laptop.c | 23 +++++--- .../platform/x86/inspur_platform_profile.c | 22 +++++--- drivers/platform/x86/thinkpad_acpi.c | 23 +++++--- include/linux/platform_profile.h | 16 ++++-- 12 files changed, 237 insertions(+), 98 deletions(-) base-commit: 6b228cfc52a6e9b7149cf51e247076963d6561cd -- 2.47.1