[PATCH 1/3] acpi: platform_profile - Add Extreme profile option

Derek J. Clark posted 3 patches 3 months, 2 weeks ago
There is a newer version of this series
[PATCH 1/3] acpi: platform_profile - Add Extreme profile option
Posted by Derek J. Clark 3 months, 2 weeks ago
Some devices, namely Lenovo Legion devices, have an "extreme" mode where
power draw is at the maximum limit of the cooling hardware. Add a new
"extreme" platform profile to properly reflect this operating mode.

Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
---
 Documentation/ABI/testing/sysfs-class-platform-profile | 2 ++
 drivers/acpi/platform_profile.c                        | 1 +
 include/linux/platform_profile.h                       | 1 +
 3 files changed, 4 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-class-platform-profile b/Documentation/ABI/testing/sysfs-class-platform-profile
index dc72adfb830a..9bee8deb4dc9 100644
--- a/Documentation/ABI/testing/sysfs-class-platform-profile
+++ b/Documentation/ABI/testing/sysfs-class-platform-profile
@@ -23,6 +23,8 @@ Description:	This file contains a space-separated list of profiles supported
 					power consumption with a slight bias
 					towards performance
 		performance		High performance operation
+		extreme			Higher performance operation that may exceed
+					internal battery draw limits when on AC power
 		custom			Driver defined custom profile
 		====================	========================================
 
diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
index b43f4459a4f6..78da17e16d9b 100644
--- a/drivers/acpi/platform_profile.c
+++ b/drivers/acpi/platform_profile.c
@@ -37,6 +37,7 @@ static const char * const profile_names[] = {
 	[PLATFORM_PROFILE_BALANCED] = "balanced",
 	[PLATFORM_PROFILE_BALANCED_PERFORMANCE] = "balanced-performance",
 	[PLATFORM_PROFILE_PERFORMANCE] = "performance",
+	[PLATFORM_PROFILE_EXTREME] = "extreme",
 	[PLATFORM_PROFILE_CUSTOM] = "custom",
 };
 static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
diff --git a/include/linux/platform_profile.h b/include/linux/platform_profile.h
index a299225ab92e..2bf178bde2b5 100644
--- a/include/linux/platform_profile.h
+++ b/include/linux/platform_profile.h
@@ -24,6 +24,7 @@ enum platform_profile_option {
 	PLATFORM_PROFILE_BALANCED,
 	PLATFORM_PROFILE_BALANCED_PERFORMANCE,
 	PLATFORM_PROFILE_PERFORMANCE,
+	PLATFORM_PROFILE_EXTREME,
 	PLATFORM_PROFILE_CUSTOM,
 	PLATFORM_PROFILE_LAST, /*must always be last */
 };
-- 
2.51.1
Re: [PATCH 1/3] acpi: platform_profile - Add Extreme profile option
Posted by Rafael J. Wysocki 3 months ago
On Sun, Oct 26, 2025 at 9:12 AM Derek J. Clark
<derekjohn.clark@gmail.com> wrote:
>
> Some devices, namely Lenovo Legion devices, have an "extreme" mode where
> power draw is at the maximum limit of the cooling hardware. Add a new
> "extreme" platform profile to properly reflect this operating mode.
>
> Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>

This is fine with me from the ACPI angle, so

Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org>

> ---
>  Documentation/ABI/testing/sysfs-class-platform-profile | 2 ++
>  drivers/acpi/platform_profile.c                        | 1 +
>  include/linux/platform_profile.h                       | 1 +
>  3 files changed, 4 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-class-platform-profile b/Documentation/ABI/testing/sysfs-class-platform-profile
> index dc72adfb830a..9bee8deb4dc9 100644
> --- a/Documentation/ABI/testing/sysfs-class-platform-profile
> +++ b/Documentation/ABI/testing/sysfs-class-platform-profile
> @@ -23,6 +23,8 @@ Description:  This file contains a space-separated list of profiles supported
>                                         power consumption with a slight bias
>                                         towards performance
>                 performance             High performance operation
> +               extreme                 Higher performance operation that may exceed
> +                                       internal battery draw limits when on AC power
>                 custom                  Driver defined custom profile
>                 ====================    ========================================
>
> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
> index b43f4459a4f6..78da17e16d9b 100644
> --- a/drivers/acpi/platform_profile.c
> +++ b/drivers/acpi/platform_profile.c
> @@ -37,6 +37,7 @@ static const char * const profile_names[] = {
>         [PLATFORM_PROFILE_BALANCED] = "balanced",
>         [PLATFORM_PROFILE_BALANCED_PERFORMANCE] = "balanced-performance",
>         [PLATFORM_PROFILE_PERFORMANCE] = "performance",
> +       [PLATFORM_PROFILE_EXTREME] = "extreme",
>         [PLATFORM_PROFILE_CUSTOM] = "custom",
>  };
>  static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
> diff --git a/include/linux/platform_profile.h b/include/linux/platform_profile.h
> index a299225ab92e..2bf178bde2b5 100644
> --- a/include/linux/platform_profile.h
> +++ b/include/linux/platform_profile.h
> @@ -24,6 +24,7 @@ enum platform_profile_option {
>         PLATFORM_PROFILE_BALANCED,
>         PLATFORM_PROFILE_BALANCED_PERFORMANCE,
>         PLATFORM_PROFILE_PERFORMANCE,
> +       PLATFORM_PROFILE_EXTREME,
>         PLATFORM_PROFILE_CUSTOM,
>         PLATFORM_PROFILE_LAST, /*must always be last */
>  };
> --
> 2.51.1
>
Re: [PATCH 1/3] acpi: platform_profile - Add Extreme profile option
Posted by Mario Limonciello 3 months, 2 weeks ago

On 10/26/25 3:12 AM, Derek J. Clark wrote:
> Some devices, namely Lenovo Legion devices, have an "extreme" mode where
> power draw is at the maximum limit of the cooling hardware. Add a new
> "extreme" platform profile to properly reflect this operating mode.
> 
> Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>

Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>

> ---
>   Documentation/ABI/testing/sysfs-class-platform-profile | 2 ++
>   drivers/acpi/platform_profile.c                        | 1 +
>   include/linux/platform_profile.h                       | 1 +
>   3 files changed, 4 insertions(+)
> 
> diff --git a/Documentation/ABI/testing/sysfs-class-platform-profile b/Documentation/ABI/testing/sysfs-class-platform-profile
> index dc72adfb830a..9bee8deb4dc9 100644
> --- a/Documentation/ABI/testing/sysfs-class-platform-profile
> +++ b/Documentation/ABI/testing/sysfs-class-platform-profile
> @@ -23,6 +23,8 @@ Description:	This file contains a space-separated list of profiles supported
>   					power consumption with a slight bias
>   					towards performance
>   		performance		High performance operation
> +		extreme			Higher performance operation that may exceed
> +					internal battery draw limits when on AC power
>   		custom			Driver defined custom profile
>   		====================	========================================
>   
> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
> index b43f4459a4f6..78da17e16d9b 100644
> --- a/drivers/acpi/platform_profile.c
> +++ b/drivers/acpi/platform_profile.c
> @@ -37,6 +37,7 @@ static const char * const profile_names[] = {
>   	[PLATFORM_PROFILE_BALANCED] = "balanced",
>   	[PLATFORM_PROFILE_BALANCED_PERFORMANCE] = "balanced-performance",
>   	[PLATFORM_PROFILE_PERFORMANCE] = "performance",
> +	[PLATFORM_PROFILE_EXTREME] = "extreme",
>   	[PLATFORM_PROFILE_CUSTOM] = "custom",
>   };
>   static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
> diff --git a/include/linux/platform_profile.h b/include/linux/platform_profile.h
> index a299225ab92e..2bf178bde2b5 100644
> --- a/include/linux/platform_profile.h
> +++ b/include/linux/platform_profile.h
> @@ -24,6 +24,7 @@ enum platform_profile_option {
>   	PLATFORM_PROFILE_BALANCED,
>   	PLATFORM_PROFILE_BALANCED_PERFORMANCE,
>   	PLATFORM_PROFILE_PERFORMANCE,
> +	PLATFORM_PROFILE_EXTREME,
>   	PLATFORM_PROFILE_CUSTOM,
>   	PLATFORM_PROFILE_LAST, /*must always be last */
>   };