Re: [PATCH v2] platform/x86: acer-wmi: Add support for Acer Nitro ANV15-51

Armin Wolf <[email protected]> Thu, 30 Jul 2026 11:17:03 +0200
Newsgroups org.kernel.vger.platform-driver-x86,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Am 30.07.26 um 01:51 schrieb Justin Vargas:

> The Acer Nitro ANV15-51 uses the Predator V4 WMI interface for thermal
> profile handling and hardware monitoring, but has no quirk entry, so
> these features are only available when the predator_v4 module parameter
> is passed manually.
>
> Add a quirk entry for this model.
>
> Note that this machine does not support the turbo thermal profile: its
> supported profiles bitmap (misc setting 0x0A) reads 0x53, and writing
> PLATFORM_PROFILE_PERFORMANCE is rejected by the firmware. The four
> remaining profiles work as expected.

Hi,

can you create a custom quirk entry and check if controlling the CPU/GPU fans
works? For this you need to fill-in the number of CPU/GPU fans inside struct quirk_entry
and set "pwm" to "1".

I think fo something like "quirk_acer_predator_ph16_72", just without ".tubo = 1".

Thanks,
Armin Wolf

> Assisted-by: Claude:claude-opus-5
> Signed-off-by: Justin Vargas <[email protected]>
> Tested-by: Justin Vargas <[email protected]>
> ---
> v2: Add Assisted-by trailer per
>      Documentation/process/coding-assistants.rst. No change to the code.
>
> Tested on an Acer Nitro ANV15-51, BIOS V1.60 (04/08/2026),
> kernel 7.0.11-1-cachyos:
>
>    $ sudo dmidecode -s system-product-name
>    Nitro ANV15-51
>
>    $ sudo modprobe acer_wmi predator_v4=1
>    $ cat /sys/firmware/acpi/platform_profile_choices
>    low-power quiet balanced balanced-performance performance
>
> Writing low-power, quiet, balanced and balanced-performance all succeed
> and audibly change fan behaviour. Writing performance is rejected by the
> firmware, consistent with the supported profiles bitmap (0x0A) reading
> 0x53, i.e. bit 5 (turbo) clear.
>
> hwmon works: sensors reports acer-isa-0ace with fan1 3024 RPM,
> fan2 2685 RPM, temp1 +48.0 C.
>
> The WMI mechanism was cross-checked on Windows, where NitroSense switches
> profiles via SetGamingMiscSetting with index 0x0B and the same profile
> values used by this driver.
>
> 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 | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index e0eaaefb13d..a7290f85166 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -662,6 +662,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_predator_v4,
> +	},
>   	{
>   		.callback = dmi_matched,
>   		.ident = "Acer Predator PH315-53",