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 <peko...@redhat.com>
Signed-off-by: Mario Limonciello <mario.limoncie...@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).


Thanks,
Lijo

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

Reply via email to