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@xxxxxxxxxx>
Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
---
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);
+
}
/**