diff options
author | Likun Gao | 2019-02-15 08:47:26 +0100 |
---|---|---|
committer | Alex Deucher | 2019-03-19 21:04:01 +0100 |
commit | f067499b4862c053a8971461d0d937e173690ddf (patch) | |
tree | 299d92674acfe5cc92062fe2e3145b358e3e1ed3 /drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | |
parent | drm/amd/powerplay: add suspend and resume function for smu (diff) | |
download | kernel-qcow2-linux-f067499b4862c053a8971461d0d937e173690ddf.tar.gz kernel-qcow2-linux-f067499b4862c053a8971461d0d937e173690ddf.tar.xz kernel-qcow2-linux-f067499b4862c053a8971461d0d937e173690ddf.zip |
drm/amd/powerplay: add condition for smc table hw init
Smc table hw init should be skipped for suspend/resume when dpm running.
Unified feature enable and disable function into smu_system_features_control.
Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@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.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c index 0a9b87369f5c..231cce90763d 100644 --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c @@ -532,8 +532,14 @@ static int smu_fini_fb_allocations(struct smu_context *smu) static int smu_smc_table_hw_init(struct smu_context *smu, bool initialize) { + struct amdgpu_device *adev = smu->adev; int ret; + if (smu_is_dpm_running(smu) && adev->in_suspend) { + pr_info("dpm has been enabled\n"); + return 0; + } + ret = smu_init_display(smu); if (ret) return ret; @@ -606,7 +612,7 @@ static int smu_smc_table_hw_init(struct smu_context *smu, if (ret) return ret; - ret = smu_feature_enable_all(smu); + ret = smu_system_features_control(smu, true); if (ret) return ret; @@ -849,7 +855,7 @@ static int smu_suspend(void *handle) if (!is_support_sw_smu(adev)) return -EINVAL; - ret = smu_feature_disable_all(smu); + ret = smu_system_features_control(smu, false); if (ret) return ret; |