[PATCH v2 2/3] platform/x86: acer-wmi: split hwmon from platform profile quirk

From: Mohsen Tahmasebi

Date: Wed Aug 19 2026 - 11:03:48 EST


Some Acer laptops expose the same WMI sensor interface without necessarily
supporting platform profile functionality.

Currently, ACER_CAP_HWMON is enabled only through predator_v4 quirk,
but this quirk enables both ACER_CAP_PLATFORM_PROFILE and ACER_CAP_HWMON.

This commit splits hwmon support into its own quirk field, renames
predator_v4 to platform_profile, and updates existing predator_v4 quirks
to enable both capabilities.

Signed-off-by: Mohsen Tahmasebi <moh53n@xxxxxxxxxx>
---
drivers/platform/x86/acer-wmi.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index 00c3113c4cf8..1d1c0d3bcec3 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -403,7 +403,8 @@ struct quirk_entry {
bool turbo;
u8 cpu_fans;
u8 gpu_fans;
- bool predator_v4;
+ bool hwmon;
+ bool platform_profile;
bool pwm;
};

@@ -421,9 +422,11 @@ static void __init set_quirks(void)
interface->capability |= ACER_CAP_TURBO_OC | ACER_CAP_TURBO_LED
| ACER_CAP_TURBO_FAN;

- if (quirks->predator_v4)
- interface->capability |= ACER_CAP_PLATFORM_PROFILE |
- ACER_CAP_HWMON;
+ if (quirks->hwmon)
+ interface->capability |= ACER_CAP_HWMON;
+
+ if (quirks->platform_profile)
+ interface->capability |= ACER_CAP_PLATFORM_PROFILE;

if (quirks->pwm)
interface->capability |= ACER_CAP_PWM;
@@ -456,7 +459,8 @@ static struct quirk_entry quirk_acer_travelmate_2490 = {
};

static struct quirk_entry quirk_acer_nitro_an515_58 = {
- .predator_v4 = true,
+ .hwmon = true,
+ .platform_profile = true,
.pwm = true,
};

@@ -470,7 +474,8 @@ static struct quirk_entry quirk_acer_predator_ph16_72 = {
.turbo = true,
.cpu_fans = 1,
.gpu_fans = 1,
- .predator_v4 = true,
+ .hwmon = true,
+ .platform_profile = true,
.pwm = true,
};

@@ -478,12 +483,14 @@ static struct quirk_entry quirk_acer_predator_pt14_51 = {
.turbo = true,
.cpu_fans = 1,
.gpu_fans = 1,
- .predator_v4 = true,
+ .hwmon = true,
+ .platform_profile = true,
.pwm = true,
};

static struct quirk_entry quirk_acer_predator_v4 = {
- .predator_v4 = true,
+ .hwmon = true,
+ .platform_profile = true,
};

/* This AMW0 laptop has no bluetooth */
@@ -2192,7 +2199,7 @@ static const struct platform_profile_ops acer_predator_v4_platform_profile_ops =

static int acer_platform_profile_setup(struct platform_device *device)
{
- if (quirks->predator_v4) {
+ if (quirks->platform_profile) {
platform_profile_device = devm_platform_profile_register(
&device->dev, "acer-wmi", NULL, &acer_predator_v4_platform_profile_ops);
if (IS_ERR(platform_profile_device))
@@ -2209,7 +2216,7 @@ static int acer_thermal_profile_change(void)
* This mode key will either cycle through each mode or toggle the
* most performant profile.
*/
- if (quirks->predator_v4) {
+ if (quirks->platform_profile) {
u8 current_tp;
int err, tp;

--
2.54.0