From: Justin Vargas <justinyvar@gmail.com>
To: jlee@suse.com, hansg@kernel.org, ilpo.jarvinen@linux.intel.com
Cc: W_Armin@gmx.de, platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org,
Justin Vargas <justinyvar@gmail.com>
Subject: [PATCH v4] platform/x86: acer-wmi: Add support for Acer Nitro ANV15-51
Date: Sun, 20 Sep 2026 01:39:18 -0400 [thread overview]
Message-ID: <20260920053918.1888-1-justinyvar@gmail.com> (raw)
In-Reply-To: <20260729222920.6490-1-justinyvar@gmail.com>
The Acer Nitro ANV15-51 uses the Predator V4 WMI interface for thermal
profile handling, hardware monitoring and fan control, but has no quirk
entry, so none of these features are available.
Add a quirk entry for this model.
Note that this machine does not support the turbo thermal profile:
writing PLATFORM_PROFILE_PERFORMANCE is rejected by the firmware with
-EIO. The four remaining profiles work as expected.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Justin Vargas <justinyvar@gmail.com>
Tested-by: Justin Vargas <justinyvar@gmail.com>
---
v4: Rebased onto review-ilpo-next as requested. The quirk now sets
.hwmon and .platform_profile separately following 4bee415640e
("platform/x86: acer-wmi: split hwmon from platform profile quirk"),
and uses bool values following 93f8ae8a26b ("platform/x86: acer-wmi:
use bool for boolean quirk fields"). Dropped the reference to the
supported profiles bitmap from the commit message, since b0908e03fdd4
("platform/x86: acer-wmi: Stop using ACPI bitmap for platform profile
choices") stopped trusting it; the turbo claim now rests only on the
firmware rejecting the write. Retested on the new base.
v3: Use a model-specific quirk_entry with cpu_fans, gpu_fans and pwm
set, as suggested by Armin Wolf, instead of reusing
quirk_acer_predator_v4. Fan control tested.
v2: Add Assisted-by trailer per
Documentation/process/coding-assistants.rst.
Tested on an Acer Nitro ANV15-51, BIOS V1.60 (04/08/2026), by building
this patch as an out-of-tree acer-wmi module against kernel
7.2.6-1-cachyos and loading it on the machine. No module parameter was
needed - the DMI quirk matches on its own.
Thermal profiles:
$ cat /sys/firmware/acpi/platform_profile_choices
low-power quiet balanced balanced-performance performance
low-power, quiet, balanced and balanced-performance all apply
successfully. Writing performance fails with -EIO.
hwmon and fan control, via the acer hwmon device:
pwm1_enable pwm1 fan1 (CPU) fan2 (GPU)
2 (auto) 229 2501 RPM 2286 RPM
1 (manual) 255 8136 RPM 2303 RPM
1 (manual) 128 4464 RPM 2293 RPM
Driving pwm2 to 255 raised fan2 to 7309 RPM while fan1 was unaffected,
so the two fans are independently controllable. Restoring
pwm1_enable/pwm2_enable to 2 returned both fans to automatic control.
temp1_input, temp2_input and temp3_input are also exposed.
Note: .cpu_fans and .gpu_fans are set here following
quirk_acer_predator_ph16_72, and this is the configuration that was
tested. If you would prefer them dropped, as in
quirk_acer_nitro_an515_58, I am happy to send a v5.
The analysis and patch were produced with AI assistance (see the
Assisted-by trailer); all testing was performed by me on the physical
machine, and I take responsibility for the patch as signed off above.
drivers/platform/x86/acer-wmi.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index d3d741aad55..51b2ae9e57a 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -474,6 +474,14 @@ static struct quirk_entry quirk_acer_predator_ph315_53 = {
.gpu_fans = 1,
};
+static struct quirk_entry quirk_acer_nitro_anv15_51 = {
+ .cpu_fans = 1,
+ .gpu_fans = 1,
+ .hwmon = true,
+ .platform_profile = true,
+ .pwm = true,
+};
+
static struct quirk_entry quirk_acer_predator_ph16_72 = {
.turbo = true,
.cpu_fans = 1,
@@ -682,6 +690,15 @@ static const struct dmi_system_id acer_quirks[] __initconst = {
},
.driver_data = &quirk_acer_nitro_an515_58,
},
+ {
+ .callback = dmi_matched,
+ .ident = "Acer Nitro ANV15-51",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Nitro ANV15-51"),
+ },
+ .driver_data = &quirk_acer_nitro_anv15_51,
+ },
{
.callback = dmi_matched,
.ident = "Acer Predator PH315-53",
base-commit: f475845eaf3d749114a63270bf2efea459e14dd2
--
2.47.3
next prev parent reply other threads:[~2026-09-20 5:41 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-29 22:29 [PATCH] platform/x86: acer-wmi: Add support for Acer Nitro ANV15-51 Justin Vargas
2026-07-29 23:51 ` [PATCH v2] " Justin Vargas
2026-07-30 9:17 ` Armin Wolf
2026-07-30 14:05 ` Justin Vargas
2026-07-31 7:15 ` Justin Vargas
2026-08-18 0:51 ` Justin Vargas
2026-08-19 4:17 ` [PATCH v3] " Justin Vargas
2026-09-18 11:19 ` Ilpo Järvinen
2026-09-20 5:39 ` Justin Vargas [this message]
2026-10-05 18:24 ` [PATCH v4] " Ilpo Järvinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260920053918.1888-1-justinyvar@gmail.com \
--to=justinyvar@gmail.com \
--cc=W_Armin@gmx.de \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jlee@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.