[PATCH 1/2] platform/x86: asus-wmi: Fix thermal profile initialization

Armin Wolf posted 2 patches 1 month ago
[PATCH 1/2] platform/x86: asus-wmi: Fix thermal profile initialization
Posted by Armin Wolf 1 month ago
When support for vivobook fan profiles was added, the initial
call to throttle_thermal_policy_set_default() was removed, which
however is necessary for full initialization.

Fix this by calling throttle_thermal_policy_set_default() again
when setting up the platform profile.

Fixes: bcbfcebda2cb ("platform/x86: asus-wmi: add support for vivobook fan profiles")
Reported-by: Michael Larabel <Michael@phoronix.com>
Closes: https://www.phoronix.com/review/lunar-lake-xe2/5
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/asus-wmi.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 2ccc23b259d3..ab9342a01a48 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -3908,6 +3908,16 @@ static int platform_profile_setup(struct asus_wmi *asus)
 	if (!asus->throttle_thermal_policy_dev)
 		return 0;

+	/*
+	 * We need to set the default thermal profile during probe or otherwise
+	 * the system will often remain in silent mode, causing low performance.
+	 */
+	err = throttle_thermal_policy_set_default(asus);
+	if (err < 0) {
+		pr_warn("Failed to set default thermal profile\n");
+		return err;
+	}
+
 	dev_info(dev, "Using throttle_thermal_policy for platform_profile support\n");

 	asus->platform_profile_handler.profile_get = asus_wmi_platform_profile_get;
--
2.39.5
Re: [PATCH 1/2] platform/x86: asus-wmi: Fix thermal profile initialization
Posted by srinivas pandruvada 1 month ago
On Fri, 2024-10-25 at 21:15 +0200, Armin Wolf wrote:
> When support for vivobook fan profiles was added, the initial
> call to throttle_thermal_policy_set_default() was removed, which
> however is necessary for full initialization.
> 
> Fix this by calling throttle_thermal_policy_set_default() again
> when setting up the platform profile.
> 
> Fixes: bcbfcebda2cb ("platform/x86: asus-wmi: add support for
> vivobook fan profiles")
> Reported-by: Michael Larabel <Michael@phoronix.com>

For Michael to understand how this patch is related:

When Michael did test on 6.11 based kernel, there was no platform
profile support for the new Asus laptop. So the default boot Whisper
mode was active all the time.
My AIPT patch addressed that issue using FANL method.

But for 6.12 cycle, Mohamed added VIVO profile, which will also work
with the new laptop with AIPT even though the names of the profiles
don't match with the AIPT modes. But that patch removed the setting of
default policy in hardware to AIPT "standard" or 0 for VIVO default. So
mode was still whisper.

So this patch will address that.

Thanks,
Srinivas




> Closes: https://www.phoronix.com/review/lunar-lake-xe2/5
> Signed-off-by: Armin Wolf <W_Armin@gmx.de>
> ---
>  drivers/platform/x86/asus-wmi.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/platform/x86/asus-wmi.c
> b/drivers/platform/x86/asus-wmi.c
> index 2ccc23b259d3..ab9342a01a48 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -3908,6 +3908,16 @@ static int platform_profile_setup(struct
> asus_wmi *asus)
>         if (!asus->throttle_thermal_policy_dev)
>                 return 0;
> 
> +       /*
> +        * We need to set the default thermal profile during probe or
> otherwise
> +        * the system will often remain in silent mode, causing low
> performance.
> +        */
> +       err = throttle_thermal_policy_set_default(asus);
> +       if (err < 0) {
> +               pr_warn("Failed to set default thermal profile\n");
> +               return err;
> +       }
> +
>         dev_info(dev, "Using throttle_thermal_policy for
> platform_profile support\n");
> 
>         asus->platform_profile_handler.profile_get =
> asus_wmi_platform_profile_get;
> --
> 2.39.5
>