diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/kv_dpm.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 25 |
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 | ||
3246 | static 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 | |||
3246 | const struct amd_ip_funcs kv_dpm_ip_funcs = { | 3258 | const 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 | ||
3278 | static void kv_dpm_set_dpm_funcs(struct amdgpu_device *adev) | 3292 | static 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 | |||
3309 | const 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 | }; | ||