[PATCH 3/3] drm/amd: Don't always set s3 for dGPUs in all sleep modes

Lazar, Lijo lijo.lazar at amd.com
Tue Feb 21 13:34:35 UTC 2023



On 2/21/2023 6:57 PM, Mario Limonciello wrote:
> On 2/21/23 07:25, Lazar, Lijo wrote:
>>
>>
>> On 2/21/2023 1:46 AM, Mario Limonciello wrote:
>>> dGPUs that will be using BACO or BOCO shouldn't be put into S3
>>> when the system is being put into s2idle.
>>>
>>> Cc: Peter Kopec <pekopec at redhat.com>
>>> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 9 +++++++--
>>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c 
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
>>> index 25e902077caf..5c69116bc883 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
>>> @@ -1038,8 +1038,13 @@ void amdgpu_acpi_detect(void)
>>>    */
>>>   bool amdgpu_acpi_is_s3_active(struct amdgpu_device *adev)
>>>   {
>>> -    return !(adev->flags & AMD_IS_APU) ||
>>> -        (pm_suspend_target_state == PM_SUSPEND_MEM);
>>> +    if (pm_suspend_target_state == PM_SUSPEND_MEM)
>>> +        return true;
>>> +    if (adev->flags & AMD_IS_APU)
>>> +        return false;
>>
>> What is the expected path of APUs which don't support S2idle?
> 
> They should staying powered on and not running any suspend code.
> Since they don't support BACO or BOCO I expect the call to enter 
> autosuspend to be a no-op for them.
> 
> This was shown to improve power consumption for such cases (a reporter 
> actually measured it).
To clarify on this - someone tried s2idle on an APU which doesn't 
support it (no FW S0ix support/PMC driver support) and the power 
consumption is better for the APU. Is it because the peripherals went 
idle now, but in earlier path APU prevented S2idle entry altogether?

Thanks,
Lijo

>>
>> Thanks,
>> Lijo
>>
>>> +    return !amdgpu_device_supports_baco(&adev->ddev) &&
>>> +        !amdgpu_device_supports_boco(&adev->ddev);
>>> +
>>>   }
>>>   /**
> 


More information about the amd-gfx mailing list