acpi: platform_profile - Add max-power profile option
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 "max-power" platform profile to properly reflect this operating mode. Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org> Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org> Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com> Reviewed-by: Armin Wolf <W_Armin@gmx.de> Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca> Link: https://patch.msgid.link/20251127151605.1018026-2-derekjohn.clark@gmail.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>pull/1354/merge
parent
0b39ce8f71
commit
5aefbf5b68
|
|
@ -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
|
||||
max-power Higher performance operation that may exceed
|
||||
internal battery draw limits when on AC power
|
||||
custom Driver defined custom profile
|
||||
==================== ========================================
|
||||
|
||||
|
|
|
|||
|
|
@ -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_MAX_POWER] = "max-power",
|
||||
[PLATFORM_PROFILE_CUSTOM] = "custom",
|
||||
};
|
||||
static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
|
||||
|
|
@ -506,7 +507,8 @@ int platform_profile_cycle(void)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
if (profile == PLATFORM_PROFILE_CUSTOM ||
|
||||
if (profile == PLATFORM_PROFILE_MAX_POWER ||
|
||||
profile == PLATFORM_PROFILE_CUSTOM ||
|
||||
profile == PLATFORM_PROFILE_LAST)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
@ -515,7 +517,8 @@ int platform_profile_cycle(void)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
/* never iterate into a custom if all drivers supported it */
|
||||
/* never iterate into a custom or max power if all drivers supported it */
|
||||
clear_bit(PLATFORM_PROFILE_MAX_POWER, data.aggregate);
|
||||
clear_bit(PLATFORM_PROFILE_CUSTOM, data.aggregate);
|
||||
|
||||
next = find_next_bit_wrap(data.aggregate,
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ enum platform_profile_option {
|
|||
PLATFORM_PROFILE_BALANCED,
|
||||
PLATFORM_PROFILE_BALANCED_PERFORMANCE,
|
||||
PLATFORM_PROFILE_PERFORMANCE,
|
||||
PLATFORM_PROFILE_MAX_POWER,
|
||||
PLATFORM_PROFILE_CUSTOM,
|
||||
PLATFORM_PROFILE_LAST, /*must always be last */
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue