aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/kv_dpm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/kv_dpm.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
index f8618a3881a8..b6f2e50636a9 100644
--- a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
@@ -2796,7 +2796,7 @@ static int kv_parse_power_table(struct amdgpu_device *adev)
2796 adev->pm.dpm.num_ps = state_array->ucNumEntries; 2796 adev->pm.dpm.num_ps = state_array->ucNumEntries;
2797 2797
2798 /* fill in the vce power states */ 2798 /* fill in the vce power states */
2799 for (i = 0; i < AMDGPU_MAX_VCE_LEVELS; i++) { 2799 for (i = 0; i < adev->pm.dpm.num_of_vce_states; i++) {
2800 u32 sclk; 2800 u32 sclk;
2801 clock_array_index = adev->pm.dpm.vce_states[i].clk_idx; 2801 clock_array_index = adev->pm.dpm.vce_states[i].clk_idx;
2802 clock_info = (union pplib_clock_info *) 2802 clock_info = (union pplib_clock_info *)
@@ -3243,6 +3243,18 @@ static int kv_dpm_set_powergating_state(void *handle,
3243 return 0; 3243 return 0;
3244} 3244}
3245 3245
3246static int kv_check_state_equal(struct amdgpu_device *adev,
3247 struct amdgpu_ps *cps,
3248 struct amdgpu_ps *rps,
3249 bool *equal)
3250{
3251 if (equal == NULL)
3252 return -EINVAL;
3253
3254 *equal = false;
3255 return 0;
3256}
3257
3246const struct amd_ip_funcs kv_dpm_ip_funcs = { 3258const struct amd_ip_funcs kv_dpm_ip_funcs = {
3247 .name = "kv_dpm", 3259 .name = "kv_dpm",
3248 .early_init = kv_dpm_early_init, 3260 .early_init = kv_dpm_early_init,
@@ -3273,6 +3285,8 @@ static const struct amdgpu_dpm_funcs kv_dpm_funcs = {
3273 .force_performance_level = &kv_dpm_force_performance_level, 3285 .force_performance_level = &kv_dpm_force_performance_level,
3274 .powergate_uvd = &kv_dpm_powergate_uvd, 3286 .powergate_uvd = &kv_dpm_powergate_uvd,
3275 .enable_bapm = &kv_dpm_enable_bapm, 3287 .enable_bapm = &kv_dpm_enable_bapm,
3288 .get_vce_clock_state = amdgpu_get_vce_clock_state,
3289 .check_state_equal = kv_check_state_equal,
3276}; 3290};
3277 3291
3278static void kv_dpm_set_dpm_funcs(struct amdgpu_device *adev) 3292static void kv_dpm_set_dpm_funcs(struct amdgpu_device *adev)
@@ -3291,3 +3305,12 @@ static void kv_dpm_set_irq_funcs(struct amdgpu_device *adev)
3291 adev->pm.dpm.thermal.irq.num_types = AMDGPU_THERMAL_IRQ_LAST; 3305 adev->pm.dpm.thermal.irq.num_types = AMDGPU_THERMAL_IRQ_LAST;
3292 adev->pm.dpm.thermal.irq.funcs = &kv_dpm_irq_funcs; 3306 adev->pm.dpm.thermal.irq.funcs = &kv_dpm_irq_funcs;
3293} 3307}
3308
3309const struct amdgpu_ip_block_version kv_dpm_ip_block =
3310{
3311 .type = AMD_IP_BLOCK_TYPE_SMC,
3312 .major = 7,
3313 .minor = 0,
3314 .rev = 0,
3315 .funcs = &kv_dpm_ip_funcs,
3316};