]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amdgpu: Use dpm_enabled as dpm state flag
authorRex Zhu <Rex.Zhu@amd.com>
Mon, 26 Mar 2018 08:18:34 +0000 (16:18 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 Apr 2018 18:07:49 +0000 (13:07 -0500)
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>
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/amd/amdgpu/ci_dpm.c
drivers/gpu/drm/amd/amdgpu/kv_dpm.c
drivers/gpu/drm/amd/amdgpu/si_dpm.c
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c

index 448d69fe375612547c249a923344472b1e0cd114..c98e59721444c73d4c637c791a87a73870ea1807 100644 (file)
@@ -428,7 +428,7 @@ static ssize_t amdgpu_debugfs_sensor_read(struct file *f, char __user *buf,
        if (size & 3 || *pos & 0x3)
                return -EINVAL;
 
-       if (amdgpu_dpm == 0)
+       if (!adev->pm.dpm_enabled)
                return -EINVAL;
 
        /* convert offset to sensor number */
index 4b7824d30e730c798a664074a2394710d6bdc945..bd9e723dbb2b62f8c8bad4ec1add7f82a1425880 100644 (file)
@@ -704,7 +704,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
                struct pp_gpu_power query = {0};
                int query_size = sizeof(query);
 
-               if (amdgpu_dpm == 0)
+               if (!adev->pm.dpm_enabled)
                        return -ENOENT;
 
                switch (info->sensor_info.type) {
index 47ef3e6e71786e8fed371518c70444f76084bd5b..be6b19951e6a7d34bf664f9560c125b29465186f 100644 (file)
@@ -6255,7 +6255,7 @@ static int ci_dpm_late_init(void *handle)
        int ret;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-       if (!amdgpu_dpm)
+       if (!adev->pm.dpm_enabled)
                return 0;
 
        /* init the sysfs and debugfs files late */
index 26ba984ab2b7cf1073bda2849af7ecbee8806803..bc1720ea49591ff07c66cca69bfae9769da4de5b 100644 (file)
@@ -2974,7 +2974,7 @@ static int kv_dpm_late_init(void *handle)
        /* powerdown unused blocks for now */
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-       if (!amdgpu_dpm)
+       if (!adev->pm.dpm_enabled)
                return 0;
 
        kv_dpm_powergate_acp(adev, true);
index 797d505bf9ee1d2393822daf3974f6bd1369b1f2..b12d7c9d42a058fae99fce9cd3679caf15e71961 100644 (file)
@@ -7580,7 +7580,7 @@ static int si_dpm_late_init(void *handle)
        int ret;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-       if (!amdgpu_dpm)
+       if (!adev->pm.dpm_enabled)
                return 0;
 
        ret = si_set_temperature_range(adev);
index 948bb9437757f363c2e14adada97e3267e01463d..87cbb142dd0b5ad4cb444b65f2f65d7314e1600e 100644 (file)
@@ -688,7 +688,7 @@ static int uvd_v4_2_set_powergating_state(void *handle,
 
        if (state == AMD_PG_STATE_GATE) {
                uvd_v4_2_stop(adev);
-               if (adev->pg_flags & AMD_PG_SUPPORT_UVD && amdgpu_dpm == 0) {
+               if (adev->pg_flags & AMD_PG_SUPPORT_UVD && !adev->pm.dpm_enabled) {
                        if (!(RREG32_SMC(ixCURRENT_PG_STATUS) &
                                CURRENT_PG_STATUS__UVD_PG_STATUS_MASK)) {
                                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,
                }
                return 0;
        } else {
-               if (adev->pg_flags & AMD_PG_SUPPORT_UVD && amdgpu_dpm == 0) {
+               if (adev->pg_flags & AMD_PG_SUPPORT_UVD && !adev->pm.dpm_enabled) {
                        if (RREG32_SMC(ixCURRENT_PG_STATUS) &
                                CURRENT_PG_STATUS__UVD_PG_STATUS_MASK) {
                                WREG32(mmUVD_PGFSM_CONFIG, (UVD_PGFSM_CONFIG__UVD_PGFSM_FSM_ADDR_MASK   |
index 30ff8a9c301b78e549212a6bb88e04f3990df140..bca67df29c8c11f46c9bce44fa9507eed17cefd6 100644 (file)
@@ -211,7 +211,6 @@ int hwmgr_hw_init(struct pp_hwmgr *hwmgr)
            !hwmgr->pptable_func->pptable_init ||
            !hwmgr->hwmgr_func->backend_init) {
                hwmgr->pm_en = false;
-               ((struct amdgpu_device *)hwmgr->adev)->pm.dpm_enabled = false;
                pr_info("dpm not supported \n");
                return 0;
        }
@@ -240,6 +239,8 @@ int hwmgr_hw_init(struct pp_hwmgr *hwmgr)
        if (ret)
                goto err2;
 
+       ((struct amdgpu_device *)hwmgr->adev)->pm.dpm_enabled = true;
+
        return 0;
 err2:
        if (hwmgr->hwmgr_func->backend_fini)