Re: [PATCH] platform/x86: asus-wmi: suppress -ENODEV warning in fan_curve_get_factory_default()

From: Ilpo Järvinen

Date: Wed May 06 2026 - 07:14:08 EST


On Sun, 3 May 2026, Armandas Kvietkus wrote:

> When the firmware does not support the fan curve WMI method,
> asus_wmi_evaluate_method_buf() returns -ENODEV. The caller
> fan_curve_check_present() already handles this gracefully by
> treating it as a non-error, but fan_curve_get_factory_default()
> still emits a pr_warn() before returning, producing spurious
> boot noise on unsupported hardware.
>
> Suppress the warning for -ENODEV only, consistent with how
> this error is handled elsewhere in asus-wmi.c.
>
> Reported-by: fxzxaxon@xxxxxxxxxxx
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221441
> Signed-off-by: Armandas Kvietkus <armandas.kvietkus@xxxxxxxxx>
> ---
> drivers/platform/x86/asus-wmi.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 80144c412..9b12a9e1e 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -3538,7 +3538,8 @@ static int fan_curve_get_factory_default(struct asus_wmi *asus, u32 fan_dev)
> err = asus_wmi_evaluate_method_buf(asus->dsts_id, fan_dev, mode, buf,
> FAN_CURVE_BUF_LEN);
> if (err) {
> - pr_warn("%s (0x%08x) failed: %d\n", __func__, fan_dev, err);
> + if (err != -ENODEV)
> + pr_warn("%s (0x%08x) failed: %d\n", __func__, fan_dev, err);

Hi,

If this print is useful at all, it looks more like it wants to be on debug
level which would also prevent the warning appearing in the logs unless
asked to.

Whenever something prints just __func__ and error codes, the line is
hardly meant for normal user consumption.

If you want to preserve this on warn level, the message has to be changed
as well to say the warning in plain English (preferrable in another
another patch).

(I prefer making it debug level.)

--
i.