summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Quan <evan.quan@amd.com>2021-12-30 17:53:54 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-01-11 15:35:19 +0100
commitb8a1293e38508a0f6664018a852f4585c22832a8 (patch)
treed18a594dd95c5a422a089ebb3fd6cde47306eb8e
parent19070d812e130c035eca07b9af9ed7867cd9df96 (diff)
downloadlinux-stable-b8a1293e38508a0f6664018a852f4585c22832a8.tar.gz
linux-stable-b8a1293e38508a0f6664018a852f4585c22832a8.tar.bz2
linux-stable-b8a1293e38508a0f6664018a852f4585c22832a8.zip
drm/amd/pm: keep the BACO feature enabled for suspend
commit eaa090538e8d21801c6d5f94590c3799e6a528b5 upstream. To pair with the workaround which always reset the ASIC in suspend. Otherwise, the reset which relies on BACO will fail. Fixes: daf8de0874ab5b ("drm/amdgpu: always reset the asic in suspend (v2)") Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Guchun Chen <guchun.chen@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 30ee8819587e..6dc83cfad9d8 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -1386,8 +1386,14 @@ static int smu_disable_dpms(struct smu_context *smu)
{
struct amdgpu_device *adev = smu->adev;
int ret = 0;
+ /*
+ * TODO: (adev->in_suspend && !adev->in_s0ix) is added to pair
+ * the workaround which always reset the asic in suspend.
+ * It's likely that workaround will be dropped in the future.
+ * Then the change here should be dropped together.
+ */
bool use_baco = !smu->is_apu &&
- ((amdgpu_in_reset(adev) &&
+ (((amdgpu_in_reset(adev) || (adev->in_suspend && !adev->in_s0ix)) &&
(amdgpu_asic_reset_method(adev) == AMD_RESET_METHOD_BACO)) ||
((adev->in_runpm || adev->in_s4) && amdgpu_asic_supports_baco(adev)));