diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h | 120 |
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 | ||
374 | struct amdgpu_dpm { | 359 | struct 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 */ |