aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRex Zhu <Rex.Zhu@amd.com>2018-03-26 04:18:34 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-04-11 14:07:49 -0400
commitb13aa1091fb2002a6854e0401df5fc6231fbca58 (patch)
treef9ef27d92698d885b4699cb8c580d47e393fc7f7
parent64f6db77fcb81493988061587fa478e6612dc45b (diff)
drm/amdgpu: Use dpm_enabled as dpm state flag
driver will set dpm_enabled to true only when module parameter amdgpu_dpm not equal to 0 and smu hw initialize successfully. Reviewed-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Huang Rui <ray.huang@amd.com> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/ci_dpm.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/kv_dpm.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/si_dpm.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c4
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c3
7 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
index 448d69fe3756..c98e59721444 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
@@ -428,7 +428,7 @@ static ssize_t amdgpu_debugfs_sensor_read(struct file *f, char __user *buf,
428 if (size & 3 || *pos & 0x3) 428 if (size & 3 || *pos & 0x3)
429 return -EINVAL; 429 return -EINVAL;
430 430
431 if (amdgpu_dpm == 0) 431 if (!adev->pm.dpm_enabled)
432 return -EINVAL; 432 return -EINVAL;
433 433
434 /* convert offset to sensor number */ 434 /* convert offset to sensor number */
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 4b7824d30e73..bd9e723dbb2b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -704,7 +704,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
704 struct pp_gpu_power query = {0}; 704 struct pp_gpu_power query = {0};
705 int query_size = sizeof(query); 705 int query_size = sizeof(query);
706 706
707 if (amdgpu_dpm == 0) 707 if (!adev->pm.dpm_enabled)
708 return -ENOENT; 708 return -ENOENT;
709 709
710 switch (info->sensor_info.type) { 710 switch (info->sensor_info.type) {
diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
index 47ef3e6e7178..be6b19951e6a 100644
--- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
@@ -6255,7 +6255,7 @@ static int ci_dpm_late_init(void *handle)
6255 int ret; 6255 int ret;
6256 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 6256 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
6257 6257
6258 if (!amdgpu_dpm) 6258 if (!adev->pm.dpm_enabled)
6259 return 0; 6259 return 0;
6260 6260
6261 /* init the sysfs and debugfs files late */ 6261 /* init the sysfs and debugfs files late */
diff --git a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
index 26ba984ab2b7..bc1720ea4959 100644
--- a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
@@ -2974,7 +2974,7 @@ static int kv_dpm_late_init(void *handle)
2974 /* powerdown unused blocks for now */ 2974 /* powerdown unused blocks for now */
2975 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 2975 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
2976 2976
2977 if (!amdgpu_dpm) 2977 if (!adev->pm.dpm_enabled)
2978 return 0; 2978 return 0;
2979 2979
2980 kv_dpm_powergate_acp(adev, true); 2980 kv_dpm_powergate_acp(adev, true);
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
index 797d505bf9ee..b12d7c9d42a0 100644
--- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
@@ -7580,7 +7580,7 @@ static int si_dpm_late_init(void *handle)
7580 int ret; 7580 int ret;
7581 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 7581 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
7582 7582
7583 if (!amdgpu_dpm) 7583 if (!adev->pm.dpm_enabled)
7584 return 0; 7584 return 0;
7585 7585
7586 ret = si_set_temperature_range(adev); 7586 ret = si_set_temperature_range(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
index 948bb9437757..87cbb142dd0b 100644
--- a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
+++ b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
@@ -688,7 +688,7 @@ static int uvd_v4_2_set_powergating_state(void *handle,
688 688
689 if (state == AMD_PG_STATE_GATE) { 689 if (state == AMD_PG_STATE_GATE) {
690 uvd_v4_2_stop(adev); 690 uvd_v4_2_stop(adev);
691 if (adev->pg_flags & AMD_PG_SUPPORT_UVD && amdgpu_dpm == 0) { 691 if (adev->pg_flags & AMD_PG_SUPPORT_UVD && !adev->pm.dpm_enabled) {
692 if (!(RREG32_SMC(ixCURRENT_PG_STATUS) & 692 if (!(RREG32_SMC(ixCURRENT_PG_STATUS) &
693 CURRENT_PG_STATUS__UVD_PG_STATUS_MASK)) { 693 CURRENT_PG_STATUS__UVD_PG_STATUS_MASK)) {
694 WREG32(mmUVD_PGFSM_CONFIG, (UVD_PGFSM_CONFIG__UVD_PGFSM_FSM_ADDR_MASK | 694 WREG32(mmUVD_PGFSM_CONFIG, (UVD_PGFSM_CONFIG__UVD_PGFSM_FSM_ADDR_MASK |
@@ -699,7 +699,7 @@ static int uvd_v4_2_set_powergating_state(void *handle,
699 } 699 }
700 return 0; 700 return 0;
701 } else { 701 } else {
702 if (adev->pg_flags & AMD_PG_SUPPORT_UVD && amdgpu_dpm == 0) { 702 if (adev->pg_flags & AMD_PG_SUPPORT_UVD && !adev->pm.dpm_enabled) {
703 if (RREG32_SMC(ixCURRENT_PG_STATUS) & 703 if (RREG32_SMC(ixCURRENT_PG_STATUS) &
704 CURRENT_PG_STATUS__UVD_PG_STATUS_MASK) { 704 CURRENT_PG_STATUS__UVD_PG_STATUS_MASK) {
705 WREG32(mmUVD_PGFSM_CONFIG, (UVD_PGFSM_CONFIG__UVD_PGFSM_FSM_ADDR_MASK | 705 WREG32(mmUVD_PGFSM_CONFIG, (UVD_PGFSM_CONFIG__UVD_PGFSM_FSM_ADDR_MASK |
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
index 30ff8a9c301b..bca67df29c8c 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
@@ -211,7 +211,6 @@ int hwmgr_hw_init(struct pp_hwmgr *hwmgr)
211 !hwmgr->pptable_func->pptable_init || 211 !hwmgr->pptable_func->pptable_init ||
212 !hwmgr->hwmgr_func->backend_init) { 212 !hwmgr->hwmgr_func->backend_init) {
213 hwmgr->pm_en = false; 213 hwmgr->pm_en = false;
214 ((struct amdgpu_device *)hwmgr->adev)->pm.dpm_enabled = false;
215 pr_info("dpm not supported \n"); 214 pr_info("dpm not supported \n");
216 return 0; 215 return 0;
217 } 216 }
@@ -240,6 +239,8 @@ int hwmgr_hw_init(struct pp_hwmgr *hwmgr)
240 if (ret) 239 if (ret)
241 goto err2; 240 goto err2;
242 241
242 ((struct amdgpu_device *)hwmgr->adev)->pm.dpm_enabled = true;
243
243 return 0; 244 return 0;
244err2: 245err2:
245 if (hwmgr->hwmgr_func->backend_fini) 246 if (hwmgr->hwmgr_func->backend_fini)