summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
diff options
context:
space:
mode:
authorJohn Clements <john.clements@amd.com>2020-03-19 00:22:32 +0800
committerAlex Deucher <alexander.deucher@amd.com>2020-03-19 00:03:05 -0400
commit8e025615cf9f3465a690b46ae8586db7ccd436c6 (patch)
treef769859d714caa2b77341713c0c43c45cc8333d3 /drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
parent31d0271d450f307f862d47d459f3ddf5b9c9e876 (diff)
amd/powerplay: arcturus baco reset disable all features
issue smu cmd to disable all features upon baco entry for arcturus to mitigate potential dirty I2C controller on boot Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: John Clements <john.clements@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/powerplay/amdgpu_smu.c')
-rw-r--r--drivers/gpu/drm/amd/powerplay/amdgpu_smu.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
index 0273c63baf8e..f6d4b0ef46ad 100644
--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
@@ -1470,21 +1470,26 @@ static int smu_disable_dpm(struct smu_context *smu)
}
/*
- * For baco on Arcturus, this operation
- * (disable all smu feature) will be handled by SMU FW.
+ * Disable all enabled SMU features.
+ * This should be handled in SMU FW, as a backup
+ * driver can issue call to SMU FW until sequence
+ * in SMU FW is operational.
*/
- if (adev->asic_type == CHIP_ARCTURUS) {
- if (use_baco && (smu_version > 0x360e00))
- return 0;
- }
-
- /* Disable all enabled SMU features */
ret = smu_system_features_control(smu, false);
if (ret) {
pr_err("Failed to disable smu features.\n");
return ret;
}
+ /*
+ * Arcturus does not have BACO bit in disable feature mask.
+ * Enablement of BACO bit on Arcturus should be skipped.
+ */
+ if (adev->asic_type == CHIP_ARCTURUS) {
+ if (use_baco && (smu_version > 0x360e00))
+ return 0;
+ }
+
/* For baco, need to leave BACO feature enabled */
if (use_baco) {
/*