]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/amd/pm/smu11: BACO is supported when it's in BACO state
authorGuchun Chen <guchun.chen@amd.com>
Tue, 22 Nov 2022 09:33:24 +0000 (17:33 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 29 Nov 2022 16:03:35 +0000 (11:03 -0500)
Return true early if ASIC is in BACO state already, no need
to talk to SMU. It can fix the issue that driver was not
calling BACO exit at all in runtime pm resume, and a timing
issue leading to a PCI AER error happened eventually.

Fixes: 8795e182b02d ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()")
Suggested-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Guchun Chen <guchun.chen@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c

index 70b560737687e95db48dac437eae24705c4504e3..ad5f6a15a1d7d51d52423f2556db83b130a5de17 100644 (file)
@@ -1588,6 +1588,10 @@ bool smu_v11_0_baco_is_support(struct smu_context *smu)
        if (amdgpu_sriov_vf(smu->adev) || !smu_baco->platform_support)
                return false;
 
+       /* return true if ASIC is in BACO state already */
+       if (smu_v11_0_baco_get_state(smu) == SMU_BACO_STATE_ENTER)
+               return true;
+
        /* Arcturus does not support this bit mask */
        if (smu_cmn_feature_is_supported(smu, SMU_FEATURE_BACO_BIT) &&
           !smu_cmn_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT))