aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h120
1 files changed, 52 insertions, 68 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
index 2f2bdb032d30..f79f9ea58b17 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
@@ -241,134 +241,119 @@ enum amdgpu_pcie_gen {
241 AMDGPU_PCIE_GEN_INVALID = 0xffff 241 AMDGPU_PCIE_GEN_INVALID = 0xffff
242}; 242};
243 243
244#define amdgpu_dpm_pre_set_power_state(adev) (adev)->pm.funcs->pre_set_power_state((adev)) 244#define amdgpu_dpm_pre_set_power_state(adev) \
245#define amdgpu_dpm_set_power_state(adev) (adev)->pm.funcs->set_power_state((adev)) 245 ((adev)->powerplay.pp_funcs->pre_set_power_state((adev)->powerplay.pp_handle))
246#define amdgpu_dpm_post_set_power_state(adev) (adev)->pm.funcs->post_set_power_state((adev)) 246
247#define amdgpu_dpm_display_configuration_changed(adev) (adev)->pm.funcs->display_configuration_changed((adev)) 247#define amdgpu_dpm_set_power_state(adev) \
248#define amdgpu_dpm_print_power_state(adev, ps) (adev)->pm.funcs->print_power_state((adev), (ps)) 248 ((adev)->powerplay.pp_funcs->set_power_state((adev)->powerplay.pp_handle))
249#define amdgpu_dpm_vblank_too_short(adev) (adev)->pm.funcs->vblank_too_short((adev)) 249
250#define amdgpu_dpm_enable_bapm(adev, e) (adev)->pm.funcs->enable_bapm((adev), (e)) 250#define amdgpu_dpm_post_set_power_state(adev) \
251 ((adev)->powerplay.pp_funcs->post_set_power_state((adev)->powerplay.pp_handle))
252
253#define amdgpu_dpm_display_configuration_changed(adev) \
254 ((adev)->powerplay.pp_funcs->display_configuration_changed((adev)->powerplay.pp_handle))
255
256#define amdgpu_dpm_print_power_state(adev, ps) \
257 ((adev)->powerplay.pp_funcs->print_power_state((adev)->powerplay.pp_handle, (ps)))
258
259#define amdgpu_dpm_vblank_too_short(adev) \
260 ((adev)->powerplay.pp_funcs->vblank_too_short((adev)->powerplay.pp_handle))
261
262#define amdgpu_dpm_enable_bapm(adev, e) \
263 ((adev)->powerplay.pp_funcs->enable_bapm((adev)->powerplay.pp_handle, (e)))
251 264
252#define amdgpu_dpm_read_sensor(adev, idx, value, size) \ 265#define amdgpu_dpm_read_sensor(adev, idx, value, size) \
253 ((adev)->pp_enabled ? \ 266 ((adev)->powerplay.pp_funcs->read_sensor((adev)->powerplay.pp_handle, (idx), (value), (size)))
254 (adev)->powerplay.pp_funcs->read_sensor(adev->powerplay.pp_handle, (idx), (value), (size)) : \
255 (adev)->pm.funcs->read_sensor((adev), (idx), (value), (size)))
256 267
257#define amdgpu_dpm_get_temperature(adev) \ 268#define amdgpu_dpm_get_temperature(adev) \
258 ((adev)->pp_enabled ? \ 269 ((adev)->powerplay.pp_funcs->get_temperature((adev)->powerplay.pp_handle))
259 (adev)->powerplay.pp_funcs->get_temperature((adev)->powerplay.pp_handle) : \
260 (adev)->pm.funcs->get_temperature((adev)))
261 270
262#define amdgpu_dpm_set_fan_control_mode(adev, m) \ 271#define amdgpu_dpm_set_fan_control_mode(adev, m) \
263 ((adev)->pp_enabled ? \ 272 ((adev)->powerplay.pp_funcs->set_fan_control_mode((adev)->powerplay.pp_handle, (m)))
264 (adev)->powerplay.pp_funcs->set_fan_control_mode((adev)->powerplay.pp_handle, (m)) : \
265 (adev)->pm.funcs->set_fan_control_mode((adev), (m)))
266 273
267#define amdgpu_dpm_get_fan_control_mode(adev) \ 274#define amdgpu_dpm_get_fan_control_mode(adev) \
268 ((adev)->pp_enabled ? \ 275 ((adev)->powerplay.pp_funcs->get_fan_control_mode((adev)->powerplay.pp_handle))
269 (adev)->powerplay.pp_funcs->get_fan_control_mode((adev)->powerplay.pp_handle) : \
270 (adev)->pm.funcs->get_fan_control_mode((adev)))
271 276
272#define amdgpu_dpm_set_fan_speed_percent(adev, s) \ 277#define amdgpu_dpm_set_fan_speed_percent(adev, s) \
273 ((adev)->pp_enabled ? \ 278 ((adev)->powerplay.pp_funcs->set_fan_speed_percent((adev)->powerplay.pp_handle, (s)))
274 (adev)->powerplay.pp_funcs->set_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \
275 (adev)->pm.funcs->set_fan_speed_percent((adev), (s)))
276 279
277#define amdgpu_dpm_get_fan_speed_percent(adev, s) \ 280#define amdgpu_dpm_get_fan_speed_percent(adev, s) \
278 ((adev)->pp_enabled ? \ 281 ((adev)->powerplay.pp_funcs->get_fan_speed_percent((adev)->powerplay.pp_handle, (s)))
279 (adev)->powerplay.pp_funcs->get_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \
280 (adev)->pm.funcs->get_fan_speed_percent((adev), (s)))
281 282
282#define amdgpu_dpm_get_fan_speed_rpm(adev, s) \ 283#define amdgpu_dpm_get_fan_speed_rpm(adev, s) \
283 ((adev)->pp_enabled ? \ 284 ((adev)->powerplay.pp_funcs->get_fan_speed_rpm)((adev)->powerplay.pp_handle, (s))
284 (adev)->powerplay.pp_funcs->get_fan_speed_rpm((adev)->powerplay.pp_handle, (s)) : \
285 -EINVAL)
286 285
287#define amdgpu_dpm_get_sclk(adev, l) \ 286#define amdgpu_dpm_get_sclk(adev, l) \
288 ((adev)->pp_enabled ? \ 287 ((adev)->powerplay.pp_funcs->get_sclk((adev)->powerplay.pp_handle, (l)))
289 (adev)->powerplay.pp_funcs->get_sclk((adev)->powerplay.pp_handle, (l)) : \
290 (adev)->pm.funcs->get_sclk((adev), (l)))
291 288
292#define amdgpu_dpm_get_mclk(adev, l) \ 289#define amdgpu_dpm_get_mclk(adev, l) \
293 ((adev)->pp_enabled ? \ 290 ((adev)->powerplay.pp_funcs->get_mclk((adev)->powerplay.pp_handle, (l)))
294 (adev)->powerplay.pp_funcs->get_mclk((adev)->powerplay.pp_handle, (l)) : \
295 (adev)->pm.funcs->get_mclk((adev), (l)))
296
297 291
298#define amdgpu_dpm_force_performance_level(adev, l) \ 292#define amdgpu_dpm_force_performance_level(adev, l) \
299 ((adev)->pp_enabled ? \ 293 ((adev)->powerplay.pp_funcs->force_performance_level((adev)->powerplay.pp_handle, (l)))
300 (adev)->powerplay.pp_funcs->force_performance_level((adev)->powerplay.pp_handle, (l)) : \
301 (adev)->pm.funcs->force_performance_level((adev), (l)))
302 294
303#define amdgpu_dpm_powergate_uvd(adev, g) \ 295#define amdgpu_dpm_powergate_uvd(adev, g) \
304 ((adev)->pp_enabled ? \ 296 ((adev)->powerplay.pp_funcs->powergate_uvd((adev)->powerplay.pp_handle, (g)))
305 (adev)->powerplay.pp_funcs->powergate_uvd((adev)->powerplay.pp_handle, (g)) : \
306 (adev)->pm.funcs->powergate_uvd((adev), (g)))
307 297
308#define amdgpu_dpm_powergate_vce(adev, g) \ 298#define amdgpu_dpm_powergate_vce(adev, g) \
309 ((adev)->pp_enabled ? \ 299 ((adev)->powerplay.pp_funcs->powergate_vce((adev)->powerplay.pp_handle, (g)))
310 (adev)->powerplay.pp_funcs->powergate_vce((adev)->powerplay.pp_handle, (g)) : \
311 (adev)->pm.funcs->powergate_vce((adev), (g)))
312 300
313#define amdgpu_dpm_get_current_power_state(adev) \ 301#define amdgpu_dpm_get_current_power_state(adev) \
314 (adev)->powerplay.pp_funcs->get_current_power_state((adev)->powerplay.pp_handle) 302 ((adev)->powerplay.pp_funcs->get_current_power_state((adev)->powerplay.pp_handle))
315 303
316#define amdgpu_dpm_get_pp_num_states(adev, data) \ 304#define amdgpu_dpm_get_pp_num_states(adev, data) \
317 (adev)->powerplay.pp_funcs->get_pp_num_states((adev)->powerplay.pp_handle, data) 305 ((adev)->powerplay.pp_funcs->get_pp_num_states((adev)->powerplay.pp_handle, data))
318 306
319#define amdgpu_dpm_get_pp_table(adev, table) \ 307#define amdgpu_dpm_get_pp_table(adev, table) \
320 (adev)->powerplay.pp_funcs->get_pp_table((adev)->powerplay.pp_handle, table) 308 ((adev)->powerplay.pp_funcs->get_pp_table((adev)->powerplay.pp_handle, table))
321 309
322#define amdgpu_dpm_set_pp_table(adev, buf, size) \ 310#define amdgpu_dpm_set_pp_table(adev, buf, size) \
323 (adev)->powerplay.pp_funcs->set_pp_table((adev)->powerplay.pp_handle, buf, size) 311 ((adev)->powerplay.pp_funcs->set_pp_table((adev)->powerplay.pp_handle, buf, size))
324 312
325#define amdgpu_dpm_print_clock_levels(adev, type, buf) \ 313#define amdgpu_dpm_print_clock_levels(adev, type, buf) \
326 (adev)->powerplay.pp_funcs->print_clock_levels((adev)->powerplay.pp_handle, type, buf) 314 ((adev)->powerplay.pp_funcs->print_clock_levels((adev)->powerplay.pp_handle, type, buf))
327 315
328#define amdgpu_dpm_force_clock_level(adev, type, level) \ 316#define amdgpu_dpm_force_clock_level(adev, type, level) \
329 (adev)->powerplay.pp_funcs->force_clock_level((adev)->powerplay.pp_handle, type, level) 317 ((adev)->powerplay.pp_funcs->force_clock_level((adev)->powerplay.pp_handle, type, level))
330 318
331#define amdgpu_dpm_get_sclk_od(adev) \ 319#define amdgpu_dpm_get_sclk_od(adev) \
332 (adev)->powerplay.pp_funcs->get_sclk_od((adev)->powerplay.pp_handle) 320 ((adev)->powerplay.pp_funcs->get_sclk_od((adev)->powerplay.pp_handle))
333 321
334#define amdgpu_dpm_set_sclk_od(adev, value) \ 322#define amdgpu_dpm_set_sclk_od(adev, value) \
335 (adev)->powerplay.pp_funcs->set_sclk_od((adev)->powerplay.pp_handle, value) 323 ((adev)->powerplay.pp_funcs->set_sclk_od((adev)->powerplay.pp_handle, value))
336 324
337#define amdgpu_dpm_get_mclk_od(adev) \ 325#define amdgpu_dpm_get_mclk_od(adev) \
338 ((adev)->powerplay.pp_funcs->get_mclk_od((adev)->powerplay.pp_handle)) 326 ((adev)->powerplay.pp_funcs->get_mclk_od((adev)->powerplay.pp_handle))
339 327
340#define amdgpu_dpm_set_mclk_od(adev, value) \ 328#define amdgpu_dpm_set_mclk_od(adev, value) \
341 ((adev)->powerplay.pp_funcs->set_mclk_od((adev)->powerplay.pp_handle, value)) 329 ((adev)->powerplay.pp_funcs->set_mclk_od((adev)->powerplay.pp_handle, value))
342 330
343#define amdgpu_dpm_dispatch_task(adev, task_id, input, output) \ 331#define amdgpu_dpm_dispatch_task(adev, task_id, input, output) \
344 ((adev)->powerplay.pp_funcs->dispatch_tasks)((adev)->powerplay.pp_handle, (task_id), (input), (output)) 332 ((adev)->powerplay.pp_funcs->dispatch_tasks)((adev)->powerplay.pp_handle, (task_id), (input), (output))
345 333
346#define amgdpu_dpm_check_state_equal(adev, cps, rps, equal) (adev)->pm.funcs->check_state_equal((adev), (cps),(rps),(equal)) 334#define amdgpu_dpm_check_state_equal(adev, cps, rps, equal) \
335 ((adev)->powerplay.pp_funcs->check_state_equal((adev)->powerplay.pp_handle, (cps), (rps), (equal)))
347 336
348#define amdgpu_dpm_get_vce_clock_state(adev, i) \ 337#define amdgpu_dpm_get_vce_clock_state(adev, i) \
349 ((adev)->pp_enabled ? \ 338 ((adev)->powerplay.pp_funcs->get_vce_clock_state((adev)->powerplay.pp_handle, (i)))
350 (adev)->powerplay.pp_funcs->get_vce_clock_state((adev)->powerplay.pp_handle, (i)) : \
351 (adev)->pm.funcs->get_vce_clock_state((adev), (i)))
352 339
353#define amdgpu_dpm_get_performance_level(adev) \ 340#define amdgpu_dpm_get_performance_level(adev) \
354 ((adev)->pp_enabled ? \ 341 ((adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle))
355 (adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle) : \
356 (adev)->pm.dpm.forced_level)
357 342
358#define amdgpu_dpm_reset_power_profile_state(adev, request) \ 343#define amdgpu_dpm_reset_power_profile_state(adev, request) \
359 ((adev)->powerplay.pp_funcs->reset_power_profile_state(\ 344 ((adev)->powerplay.pp_funcs->reset_power_profile_state(\
360 (adev)->powerplay.pp_handle, request)) 345 (adev)->powerplay.pp_handle, request))
361 346
362#define amdgpu_dpm_get_power_profile_state(adev, query) \ 347#define amdgpu_dpm_get_power_profile_state(adev, query) \
363 ((adev)->powerplay.pp_funcs->get_power_profile_state(\ 348 ((adev)->powerplay.pp_funcs->get_power_profile_state(\
364 (adev)->powerplay.pp_handle, query)) 349 (adev)->powerplay.pp_handle, query))
365 350
366#define amdgpu_dpm_set_power_profile_state(adev, request) \ 351#define amdgpu_dpm_set_power_profile_state(adev, request) \
367 ((adev)->powerplay.pp_funcs->set_power_profile_state(\ 352 ((adev)->powerplay.pp_funcs->set_power_profile_state(\
368 (adev)->powerplay.pp_handle, request)) 353 (adev)->powerplay.pp_handle, request))
369 354
370#define amdgpu_dpm_switch_power_profile(adev, type) \ 355#define amdgpu_dpm_switch_power_profile(adev, type) \
371 ((adev)->powerplay.pp_funcs->switch_power_profile(\ 356 ((adev)->powerplay.pp_funcs->switch_power_profile(\
372 (adev)->powerplay.pp_handle, type)) 357 (adev)->powerplay.pp_handle, type))
373 358
374struct amdgpu_dpm { 359struct amdgpu_dpm {
@@ -442,7 +427,6 @@ struct amdgpu_pm {
442 struct amdgpu_dpm dpm; 427 struct amdgpu_dpm dpm;
443 const struct firmware *fw; /* SMC firmware */ 428 const struct firmware *fw; /* SMC firmware */
444 uint32_t fw_version; 429 uint32_t fw_version;
445 const struct amd_pm_funcs *funcs;
446 uint32_t pcie_gen_mask; 430 uint32_t pcie_gen_mask;
447 uint32_t pcie_mlw_mask; 431 uint32_t pcie_mlw_mask;
448 struct amd_pp_display_configuration pm_display_cfg;/* set by DAL */ 432 struct amd_pp_display_configuration pm_display_cfg;/* set by DAL */