diff options
author | John Clements <john.clements@amd.com> | 2020-03-18 17:22:32 +0100 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2020-03-19 05:03:05 +0100 |
commit | 8e025615cf9f3465a690b46ae8586db7ccd436c6 (patch) | |
tree | f769859d714caa2b77341713c0c43c45cc8333d3 /drivers/gpu/drm/amd | |
parent | drm/amdgpu: miss PRT case when bo update (diff) | |
download | linux-8e025615cf9f3465a690b46ae8586db7ccd436c6.tar.xz linux-8e025615cf9f3465a690b46ae8586db7ccd436c6.zip |
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')
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 21 |
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) { /* |