drm/amd/powerplay: unshare the code for retrieving current clock frequency
authorEvan Quan <evan.quan@amd.com>
Tue, 9 Jun 2020 05:15:29 +0000 (13:15 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 10 Jul 2020 21:42:03 +0000 (17:42 -0400)
By moving them into asic specific file. Since they are really ASIC
specific.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
drivers/gpu/drm/amd/powerplay/navi10_ppt.c
drivers/gpu/drm/amd/powerplay/renoir_ppt.c
drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
drivers/gpu/drm/amd/powerplay/smu_v11_0.c
drivers/gpu/drm/amd/powerplay/smu_v12_0.c

index ae4bc56..2e04ac1 100644 (file)
@@ -1201,6 +1201,17 @@ static int arcturus_read_sensor(struct smu_context *smu,
                                                (uint32_t *)data);
                *size = 4;
                break;
+       case AMDGPU_PP_SENSOR_GFX_MCLK:
+               ret = arcturus_get_current_clk_freq_by_table(smu, SMU_UCLK, (uint32_t *)data);
+               /* the output clock frequency in 10K unit */
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
+       case AMDGPU_PP_SENSOR_GFX_SCLK:
+               ret = arcturus_get_current_clk_freq_by_table(smu, SMU_GFXCLK, (uint32_t *)data);
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
        default:
                ret = smu_v11_0_read_sensor(smu, sensor, data, size);
        }
index 87f110b..3dab6f0 100644 (file)
@@ -1697,6 +1697,16 @@ static int navi10_read_sensor(struct smu_context *smu,
                ret = navi10_thermal_get_temperature(smu, sensor, (uint32_t *)data);
                *size = 4;
                break;
+       case AMDGPU_PP_SENSOR_GFX_MCLK:
+               ret = navi10_get_current_clk_freq_by_table(smu, SMU_UCLK, (uint32_t *)data);
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
+       case AMDGPU_PP_SENSOR_GFX_SCLK:
+               ret = navi10_get_current_clk_freq_by_table(smu, SMU_GFXCLK, (uint32_t *)data);
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
        default:
                ret = smu_v11_0_read_sensor(smu, sensor, data, size);
        }
index a52d562..d77e6de 100644 (file)
@@ -896,6 +896,16 @@ static int renoir_read_sensor(struct smu_context *smu,
                ret = renoir_get_gpu_temperature(smu, (uint32_t *)data);
                *size = 4;
                break;
+       case AMDGPU_PP_SENSOR_GFX_MCLK:
+               ret = renoir_get_current_clk_freq_by_table(smu, SMU_UCLK, (uint32_t *)data);
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
+       case AMDGPU_PP_SENSOR_GFX_SCLK:
+               ret = renoir_get_current_clk_freq_by_table(smu, SMU_GFXCLK, (uint32_t *)data);
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
        default:
                ret = smu_v12_0_read_sensor(smu, sensor, data, size);
        }
index e3c6a49..2b95e8a 100644 (file)
@@ -1500,6 +1500,16 @@ static int sienna_cichlid_read_sensor(struct smu_context *smu,
                ret = sienna_cichlid_thermal_get_temperature(smu, sensor, (uint32_t *)data);
                *size = 4;
                break;
+       case AMDGPU_PP_SENSOR_GFX_MCLK:
+               ret = sienna_cichlid_get_current_clk_freq_by_table(smu, SMU_UCLK, (uint32_t *)data);
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
+       case AMDGPU_PP_SENSOR_GFX_SCLK:
+               ret = sienna_cichlid_get_current_clk_freq_by_table(smu, SMU_GFXCLK, (uint32_t *)data);
+               *(uint32_t *)data *= 100;
+               *size = 4;
+               break;
        default:
                ret = smu_v11_0_read_sensor(smu, sensor, data, size);
        }
index 70cfb4a..b13c8ea 100644 (file)
@@ -1182,14 +1182,6 @@ int smu_v11_0_read_sensor(struct smu_context *smu,
                return -EINVAL;
 
        switch (sensor) {
-       case AMDGPU_PP_SENSOR_GFX_MCLK:
-               ret = smu_v11_0_get_current_clk_freq(smu, SMU_UCLK, (uint32_t *)data);
-               *size = 4;
-               break;
-       case AMDGPU_PP_SENSOR_GFX_SCLK:
-               ret = smu_v11_0_get_current_clk_freq(smu, SMU_GFXCLK, (uint32_t *)data);
-               *size = 4;
-               break;
        case AMDGPU_PP_SENSOR_VDDGFX:
                ret = smu_v11_0_get_gfx_vdd(smu, (uint32_t *)data);
                *size = 4;
index 1d7caaf..4fb3f49 100644 (file)
@@ -213,14 +213,6 @@ int smu_v12_0_read_sensor(struct smu_context *smu,
                return -EINVAL;
 
        switch (sensor) {
-       case AMDGPU_PP_SENSOR_GFX_MCLK:
-               ret = smu_v12_0_get_current_clk_freq(smu, SMU_UCLK, (uint32_t *)data);
-               *size = 4;
-               break;
-       case AMDGPU_PP_SENSOR_GFX_SCLK:
-               ret = smu_v12_0_get_current_clk_freq(smu, SMU_GFXCLK, (uint32_t *)data);
-               *size = 4;
-               break;
        default:
                ret = -EOPNOTSUPP;
                break;