Takashi Iwai f58072
From 6dca7efe6e522bf213c7dab691fa580d82f48f74 Mon Sep 17 00:00:00 2001
Takashi Iwai f58072
From: Guchun Chen <guchun.chen@amd.com>
Takashi Iwai f58072
Date: Tue, 22 Nov 2022 17:33:24 +0800
Takashi Iwai f58072
Subject: [PATCH] drm/amd/pm/smu11: BACO is supported when it's in BACO state
Takashi Iwai f58072
Git-commit: 6dca7efe6e522bf213c7dab691fa580d82f48f74
Takashi Iwai f58072
Patch-mainline: v6.2-rc1
Takashi Iwai f58072
References: git-fixes
Takashi Iwai f58072
Takashi Iwai f58072
Return true early if ASIC is in BACO state already, no need
Takashi Iwai f58072
to talk to SMU. It can fix the issue that driver was not
Takashi Iwai f58072
calling BACO exit at all in runtime pm resume, and a timing
Takashi Iwai f58072
issue leading to a PCI AER error happened eventually.
Takashi Iwai f58072
Takashi Iwai f58072
Fixes: 8795e182b02d ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()")
Takashi Iwai f58072
Suggested-by: Lijo Lazar <lijo.lazar@amd.com>
Takashi Iwai f58072
Signed-off-by: Guchun Chen <guchun.chen@amd.com>
Takashi Iwai f58072
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Takashi Iwai f58072
Reviewed-by: Evan Quan <evan.quan@amd.com>
Takashi Iwai f58072
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Takashi Iwai f58072
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai f58072
Takashi Iwai f58072
---
Takashi Iwai f58072
 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 4 ++++
Takashi Iwai f58072
 1 file changed, 4 insertions(+)
Takashi Iwai f58072
Takashi Iwai f58072
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
Takashi Iwai f58072
index 70b560737687..ad5f6a15a1d7 100644
Takashi Iwai f58072
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
Takashi Iwai f58072
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
Takashi Iwai f58072
@@ -1588,6 +1588,10 @@ bool smu_v11_0_baco_is_support(struct smu_context *smu)
Takashi Iwai f58072
 	if (amdgpu_sriov_vf(smu->adev) || !smu_baco->platform_support)
Takashi Iwai f58072
 		return false;
Takashi Iwai f58072
 
Takashi Iwai f58072
+	/* return true if ASIC is in BACO state already */
Takashi Iwai f58072
+	if (smu_v11_0_baco_get_state(smu) == SMU_BACO_STATE_ENTER)
Takashi Iwai f58072
+		return true;
Takashi Iwai f58072
+
Takashi Iwai f58072
 	/* Arcturus does not support this bit mask */
Takashi Iwai f58072
 	if (smu_cmn_feature_is_supported(smu, SMU_FEATURE_BACO_BIT) &&
Takashi Iwai f58072
 	   !smu_cmn_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT))
Takashi Iwai f58072
-- 
Takashi Iwai f58072
2.35.3
Takashi Iwai f58072