Am 31.10.24 um 21:43 schrieb Mario Limonciello:
> On 10/31/2024 15:39, Armin Wolf wrote:
>> Am 31.10.24 um 05:09 schrieb Mario Limonciello:
>>
>>> As support for multiple simultaneous platform handers is introduced
>>> it's
>>> important they have at least the balanced profile in common.
>>>
>>> This will be used as a fallback in case setting the profile across
>>> one of the
>>> handlers happens to fail.
>>
>> Do we actually need this patch anymore now that we have the "custom"
>> platform profile?
>> If setting the platform profile fails for some handlers, then we
>> simply display the current
>> platform profile as "custom".
>
> Yes; it's still needed because 'balanced' is used as the fallback of
> something failed. If you fail to write to a handler it gets you back
> to a known place for all GPUs.
>
> Now I suppose it's up for discussion if that's really the right thing
> to do.
>
> Maybe because of custom we don't even need that.
>
> If I have 3 profile handlers in
> low-power
> balanced
> balanced
>
> IE I'm already in 'custom'.
>
> If I try to write performance and the first two succeed but the third
> fails what's better:
>
> performance
> performance
> balanced
>
> Or
>
> balanced
> balanced
> balanced
>
I think the first is better, as we cannot really guarantee that setting "balanced" for all handlers
will always work.
Thanks,
Armin Wolf
>>
>> Thanks,
>> Armin Wolf
>>
>>> Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev>
>>> Suggested-by: Hans de Goede <hdegoede@redhat.com>
>>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>>> ---
>>> drivers/acpi/platform_profile.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/
>>> platform_profile.c
>>> index b70ceb11947d0..57c66d7dbf827 100644
>>> --- a/drivers/acpi/platform_profile.c
>>> +++ b/drivers/acpi/platform_profile.c
>>> @@ -164,6 +164,10 @@ int platform_profile_register(struct
>>> platform_profile_handler *pprof)
>>> pr_err("platform_profile: handler is invalid\n");
>>> return -EINVAL;
>>> }
>>> + if (!test_bit(PLATFORM_PROFILE_BALANCED, pprof->choices)) {
>>> + pr_err("platform_profile: handler does not support balanced
>>> profile\n");
>>> + return -EINVAL;
>>> + }
>>> if (!pprof->dev) {
>>> pr_err("platform_profile: handler device is not set\n");
>>> return -EINVAL;
>