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 ae4bc56ec3209ab8cc8ef672c2ca8fc6ce10d4f3..2e04ac1d8ff976aece0c615e5b799b191839b3f7 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 87f110b16e5579b98ab694684bfa62f57be3e579..3dab6f0e9578cc7359d32f959fdb0d62f29f6fda 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 a52d562addc211c18f6c042c7efd2e42134aea90..d77e6de95b18c4c9bffa1f56d4e47305ae0fe27e 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 e3c6a49f495d3eb45d3fb68e65f8cfe774d0a54c..2b95e8a543fb41a0d0b3cde0619318b48da070b6 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 70cfb4a07db43493815e4c90dc6e7e29082dcf16..b13c8ea3eb6136c0614dd19574ba9097d63034f6 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 1d7caaf57b70bc20d05fc4609da760d88a0f3003..4fb3f498420693fe059037aefd51db9173fe986c 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;