[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <C92AC0B4-8458-4D2B-AE5D-9D452294EDFE@gmail.com>
Date: Sun, 26 Oct 2025 12:10:03 -0700
From: "Derek J. Clark" <derekjohn.clark@...il.com>
To: Mario Limonciello <superm1@...nel.org>, Hans de Goede <hdegoede@...hat.com>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
Armin Wolf <W_Armin@....de>, Len Brown <lenb@...nel.org>,
"Rafael J . Wysocki" <rafael@...nel.org>, Jonathan Corbet <corbet@....net>
CC: Zhixin Zhang <zhangzx36@...ovo.com>, Mia Shao <shaohz1@...ovo.com>,
Mark Pearson <mpearson-lenovo@...ebb.ca>,
"Pierre-Loup A . Griffais" <pgriffais@...vesoftware.com>,
Kurt Borja <kuurtb@...il.com>, platform-driver-x86@...r.kernel.org,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-acpi@...r.kernel.org
Subject: Re: [PATCH 2/3] platform/x86: lenovo-wmi-gamezone Use Extreme vice balanced-performance
On October 26, 2025 10:52:29 AM PDT, Mario Limonciello <superm1@...nel.org> wrote:
>Is 'vice' the right word for the subject?
>
Used as in rather than or as an alternative to, it has more brevity.
>On 10/26/25 3:12 AM, Derek J. Clark wrote:
>> When upstreaming the gamezone WMI drivers the "extreme" mode was matched
>> to performance and performance was matched to balanced-performance, but
>> only when extreme mode was fully enabled. Otherwise performance was
>> matched to performance. This has led to quite a bit of confusion with
>> users not understanding why the LED color indicating the platform
>> profile doesn't match their expectations. To solve this, replace the
>> confusing convention with the new "extreme" profile.
>
>Are the colors common to all devices? Maybe it would be worth adding to the documentation the expected colors for each mode.
>
I think so, based on every case I've run into. I'll need to expound a little and reword more in this section but that should be doable.
Thanks,
Derek
>>
>> Signed-off-by: Derek J. Clark <derekjohn.clark@...il.com>
>> ---
>> .../wmi/devices/lenovo-wmi-gamezone.rst | 10 +++-------
>> drivers/platform/x86/lenovo/wmi-gamezone.c | 18 +++++-------------
>> 2 files changed, 8 insertions(+), 20 deletions(-)
>>
>> diff --git a/Documentation/wmi/devices/lenovo-wmi-gamezone.rst b/Documentation/wmi/devices/lenovo-wmi-gamezone.rst
>> index 997263e51a7d..6c908f44a08e 100644
>> --- a/Documentation/wmi/devices/lenovo-wmi-gamezone.rst
>> +++ b/Documentation/wmi/devices/lenovo-wmi-gamezone.rst
>> @@ -24,18 +24,14 @@ current platform profile when it changes.
>> The following platform profiles are supported:
>> - low-power
>> - balanced
>> - - balanced-performance
>> - performance
>> + - extreme
>> - custom
>> -Balanced-Performance
>> +Extreme
>> ~~~~~~~~~~~~~~~~~~~~
>> Some newer Lenovo "Gaming Series" laptops have an "Extreme Mode" profile
>> -enabled in their BIOS. For these devices, the performance platform profile
>> -corresponds to the BIOS Extreme Mode, while the balanced-performance
>> -platform profile corresponds to the BIOS Performance mode. For legacy
>> -devices, the performance platform profile will correspond with the BIOS
>> -Performance mode.
>> +enabled in their BIOS.
>> For some newer devices the "Extreme Mode" profile is incomplete in the BIOS
>> and setting it will cause undefined behavior. A BIOS bug quirk table is
>> diff --git a/drivers/platform/x86/lenovo/wmi-gamezone.c b/drivers/platform/x86/lenovo/wmi-gamezone.c
>> index 0eb7fe8222f4..faabbd4657bd 100644
>> --- a/drivers/platform/x86/lenovo/wmi-gamezone.c
>> +++ b/drivers/platform/x86/lenovo/wmi-gamezone.c
>> @@ -171,14 +171,10 @@ static int lwmi_gz_profile_get(struct device *dev,
>> *profile = PLATFORM_PROFILE_BALANCED;
>> break;
>> case LWMI_GZ_THERMAL_MODE_PERFORMANCE:
>> - if (priv->extreme_supported) {
>> - *profile = PLATFORM_PROFILE_BALANCED_PERFORMANCE;
>> - break;
>> - }
>> *profile = PLATFORM_PROFILE_PERFORMANCE;
>> break;
>> case LWMI_GZ_THERMAL_MODE_EXTREME:
>> - *profile = PLATFORM_PROFILE_PERFORMANCE;
>> + *profile = PLATFORM_PROFILE_EXTREME;
>> break;
>> case LWMI_GZ_THERMAL_MODE_CUSTOM:
>> *profile = PLATFORM_PROFILE_CUSTOM;
>> @@ -218,16 +214,12 @@ static int lwmi_gz_profile_set(struct device *dev,
>> case PLATFORM_PROFILE_BALANCED:
>> mode = LWMI_GZ_THERMAL_MODE_BALANCED;
>> break;
>> - case PLATFORM_PROFILE_BALANCED_PERFORMANCE:
>> - mode = LWMI_GZ_THERMAL_MODE_PERFORMANCE;
>> - break;
>> case PLATFORM_PROFILE_PERFORMANCE:
>> - if (priv->extreme_supported) {
>> - mode = LWMI_GZ_THERMAL_MODE_EXTREME;
>> - break;
>> - }
>> mode = LWMI_GZ_THERMAL_MODE_PERFORMANCE;
>> break;
>> + case PLATFORM_PROFILE_EXTREME:
>> + mode = LWMI_GZ_THERMAL_MODE_EXTREME;
>> + break;
>> case PLATFORM_PROFILE_CUSTOM:
>> mode = LWMI_GZ_THERMAL_MODE_CUSTOM;
>> break;
>> @@ -338,7 +330,7 @@ static int lwmi_gz_platform_profile_probe(void *drvdata, unsigned long *choices)
>> priv->extreme_supported = lwmi_gz_extreme_supported(profile_support_ver);
>> if (priv->extreme_supported)
>> - set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, choices);
>> + set_bit(PLATFORM_PROFILE_EXTREME, choices);
>> return 0;
>> }
>
Powered by blists - more mailing lists