diff options
author | Rex Zhu <Rex.Zhu@amd.com> | 2018-03-26 04:18:34 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-04-11 14:07:49 -0400 |
commit | b13aa1091fb2002a6854e0401df5fc6231fbca58 (patch) | |
tree | f9ef27d92698d885b4699cb8c580d47e393fc7f7 | |
parent | 64f6db77fcb81493988061587fa478e6612dc45b (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.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/si_dpm.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 3 |
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; |
244 | err2: | 245 | err2: |
245 | if (hwmgr->hwmgr_func->backend_fini) | 246 | if (hwmgr->hwmgr_func->backend_fini) |