diff options
author | Jammy Zhou <Jammy.Zhou@amd.com> | 2015-11-10 18:31:08 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-12-21 16:42:27 -0500 |
commit | e61710c59dd205b48413762b2aedd46e86df3c45 (patch) | |
tree | 99246b35234fc3d4a54fd269f10a28b11b0221a2 /drivers/gpu/drm/amd/amdgpu/amdgpu.h | |
parent | 8804b8d5b05bbf5aea205e49fa4ed8240eb1728d (diff) |
drm/amdgpu: support per device powerplay enablement (v2)
The amdgu_powerplay variable is global for multiple GPU instances.
v2: fold in Flora's module option change, protect adev reference in
macros
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 71 |
1 files changed, 36 insertions, 35 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 8b1ff13d50cc..637eff393bc7 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -2040,6 +2040,7 @@ struct amdgpu_device { | |||
2040 | 2040 | ||
2041 | /* powerplay */ | 2041 | /* powerplay */ |
2042 | struct amd_powerplay powerplay; | 2042 | struct amd_powerplay powerplay; |
2043 | bool pp_enabled; | ||
2043 | 2044 | ||
2044 | /* dpm */ | 2045 | /* dpm */ |
2045 | struct amdgpu_pm pm; | 2046 | struct amdgpu_pm pm; |
@@ -2268,68 +2269,68 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring) | |||
2268 | #define amdgpu_dpm_enable_bapm(adev, e) (adev)->pm.funcs->enable_bapm((adev), (e)) | 2269 | #define amdgpu_dpm_enable_bapm(adev, e) (adev)->pm.funcs->enable_bapm((adev), (e)) |
2269 | 2270 | ||
2270 | #define amdgpu_dpm_get_temperature(adev) \ | 2271 | #define amdgpu_dpm_get_temperature(adev) \ |
2271 | amdgpu_powerplay ? \ | 2272 | (adev)->pp_enabled ? \ |
2272 | (adev)->powerplay.pp_funcs->get_temperature((adev)->powerplay.pp_handle) : \ | 2273 | (adev)->powerplay.pp_funcs->get_temperature((adev)->powerplay.pp_handle) : \ |
2273 | (adev)->pm.funcs->get_temperature((adev)) | 2274 | (adev)->pm.funcs->get_temperature((adev)) |
2274 | 2275 | ||
2275 | #define amdgpu_dpm_set_fan_control_mode(adev, m) \ | 2276 | #define amdgpu_dpm_set_fan_control_mode(adev, m) \ |
2276 | amdgpu_powerplay ? \ | 2277 | (adev)->pp_enabled ? \ |
2277 | (adev)->powerplay.pp_funcs->set_fan_control_mode((adev)->powerplay.pp_handle, (m)) : \ | 2278 | (adev)->powerplay.pp_funcs->set_fan_control_mode((adev)->powerplay.pp_handle, (m)) : \ |
2278 | (adev)->pm.funcs->set_fan_control_mode((adev), (m)) | 2279 | (adev)->pm.funcs->set_fan_control_mode((adev), (m)) |
2279 | 2280 | ||
2280 | #define amdgpu_dpm_get_fan_control_mode(adev) \ | 2281 | #define amdgpu_dpm_get_fan_control_mode(adev) \ |
2281 | amdgpu_powerplay ? \ | 2282 | (adev)->pp_enabled ? \ |
2282 | (adev)->powerplay.pp_funcs->get_fan_control_mode((adev)->powerplay.pp_handle) : \ | 2283 | (adev)->powerplay.pp_funcs->get_fan_control_mode((adev)->powerplay.pp_handle) : \ |
2283 | (adev)->pm.funcs->get_fan_control_mode((adev)) | 2284 | (adev)->pm.funcs->get_fan_control_mode((adev)) |
2284 | 2285 | ||
2285 | #define amdgpu_dpm_set_fan_speed_percent(adev, s) \ | 2286 | #define amdgpu_dpm_set_fan_speed_percent(adev, s) \ |
2286 | amdgpu_powerplay ? \ | 2287 | (adev)->pp_enabled ? \ |
2287 | (adev)->powerplay.pp_funcs->set_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \ | 2288 | (adev)->powerplay.pp_funcs->set_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \ |
2288 | (adev)->pm.funcs->set_fan_speed_percent((adev), (s)) | 2289 | (adev)->pm.funcs->set_fan_speed_percent((adev), (s)) |
2289 | 2290 | ||
2290 | #define amdgpu_dpm_get_fan_speed_percent(adev, s) \ | 2291 | #define amdgpu_dpm_get_fan_speed_percent(adev, s) \ |
2291 | amdgpu_powerplay ? \ | 2292 | (adev)->pp_enabled ? \ |
2292 | (adev)->powerplay.pp_funcs->get_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \ | 2293 | (adev)->powerplay.pp_funcs->get_fan_speed_percent((adev)->powerplay.pp_handle, (s)) : \ |
2293 | (adev)->pm.funcs->get_fan_speed_percent((adev), (s)) | 2294 | (adev)->pm.funcs->get_fan_speed_percent((adev), (s)) |
2294 | 2295 | ||
2295 | #define amdgpu_dpm_get_sclk(adev, l) \ | 2296 | #define amdgpu_dpm_get_sclk(adev, l) \ |
2296 | amdgpu_powerplay ? \ | 2297 | (adev)->pp_enabled ? \ |
2297 | (adev)->powerplay.pp_funcs->get_sclk((adev)->powerplay.pp_handle, (l)) : \ | 2298 | (adev)->powerplay.pp_funcs->get_sclk((adev)->powerplay.pp_handle, (l)) : \ |
2298 | (adev)->pm.funcs->get_sclk((adev), (l)) | 2299 | (adev)->pm.funcs->get_sclk((adev), (l)) |
2299 | 2300 | ||
2300 | #define amdgpu_dpm_get_mclk(adev, l) \ | 2301 | #define amdgpu_dpm_get_mclk(adev, l) \ |
2301 | amdgpu_powerplay ? \ | 2302 | (adev)->pp_enabled ? \ |
2302 | (adev)->powerplay.pp_funcs->get_mclk((adev)->powerplay.pp_handle, (l)) : \ | 2303 | (adev)->powerplay.pp_funcs->get_mclk((adev)->powerplay.pp_handle, (l)) : \ |
2303 | (adev)->pm.funcs->get_mclk((adev), (l)) | 2304 | (adev)->pm.funcs->get_mclk((adev), (l)) |
2304 | 2305 | ||
2305 | 2306 | ||
2306 | #define amdgpu_dpm_force_performance_level(adev, l) \ | 2307 | #define amdgpu_dpm_force_performance_level(adev, l) \ |
2307 | amdgpu_powerplay ? \ | 2308 | (adev)->pp_enabled ? \ |
2308 | (adev)->powerplay.pp_funcs->force_performance_level((adev)->powerplay.pp_handle, (l)) : \ | 2309 | (adev)->powerplay.pp_funcs->force_performance_level((adev)->powerplay.pp_handle, (l)) : \ |
2309 | (adev)->pm.funcs->force_performance_level((adev), (l)) | 2310 | (adev)->pm.funcs->force_performance_level((adev), (l)) |
2310 | 2311 | ||
2311 | #define amdgpu_dpm_powergate_uvd(adev, g) \ | 2312 | #define amdgpu_dpm_powergate_uvd(adev, g) \ |
2312 | amdgpu_powerplay ? \ | 2313 | (adev)->pp_enabled ? \ |
2313 | (adev)->powerplay.pp_funcs->powergate_uvd((adev)->powerplay.pp_handle, (g)) : \ | 2314 | (adev)->powerplay.pp_funcs->powergate_uvd((adev)->powerplay.pp_handle, (g)) : \ |
2314 | (adev)->pm.funcs->powergate_uvd((adev), (g)) | 2315 | (adev)->pm.funcs->powergate_uvd((adev), (g)) |
2315 | 2316 | ||
2316 | #define amdgpu_dpm_powergate_vce(adev, g) \ | 2317 | #define amdgpu_dpm_powergate_vce(adev, g) \ |
2317 | amdgpu_powerplay ? \ | 2318 | (adev)->pp_enabled ? \ |
2318 | (adev)->powerplay.pp_funcs->powergate_vce((adev)->powerplay.pp_handle, (g)) : \ | 2319 | (adev)->powerplay.pp_funcs->powergate_vce((adev)->powerplay.pp_handle, (g)) : \ |
2319 | (adev)->pm.funcs->powergate_vce((adev), (g)) | 2320 | (adev)->pm.funcs->powergate_vce((adev), (g)) |
2320 | 2321 | ||
2321 | #define amdgpu_dpm_debugfs_print_current_performance_level(adev, m) \ | 2322 | #define amdgpu_dpm_debugfs_print_current_performance_level(adev, m) \ |
2322 | amdgpu_powerplay ? \ | 2323 | (adev)->pp_enabled ? \ |
2323 | (adev)->powerplay.pp_funcs->print_current_performance_level((adev)->powerplay.pp_handle, (m)) : \ | 2324 | (adev)->powerplay.pp_funcs->print_current_performance_level((adev)->powerplay.pp_handle, (m)) : \ |
2324 | (adev)->pm.funcs->debugfs_print_current_performance_level((adev), (m)) | 2325 | (adev)->pm.funcs->debugfs_print_current_performance_level((adev), (m)) |
2325 | 2326 | ||
2326 | #define amdgpu_dpm_get_current_power_state(adev) \ | 2327 | #define amdgpu_dpm_get_current_power_state(adev) \ |
2327 | (adev)->powerplay.pp_funcs->get_current_power_state((adev)->powerplay.pp_handle) | 2328 | (adev)->powerplay.pp_funcs->get_current_power_state((adev)->powerplay.pp_handle) |
2328 | 2329 | ||
2329 | #define amdgpu_dpm_get_performance_level(adev) \ | 2330 | #define amdgpu_dpm_get_performance_level(adev) \ |
2330 | (adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle) | 2331 | (adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle) |
2331 | 2332 | ||
2332 | #define amdgpu_dpm_dispatch_task(adev, event_id, input, output) \ | 2333 | #define amdgpu_dpm_dispatch_task(adev, event_id, input, output) \ |
2333 | (adev)->powerplay.pp_funcs->dispatch_tasks((adev)->powerplay.pp_handle, (event_id), (input), (output)) | 2334 | (adev)->powerplay.pp_funcs->dispatch_tasks((adev)->powerplay.pp_handle, (event_id), (input), (output)) |
2334 | 2335 | ||
2335 | #define amdgpu_gds_switch(adev, r, v, d, w, a) (adev)->gds.funcs->patch_gds_switch((r), (v), (d), (w), (a)) | 2336 | #define amdgpu_gds_switch(adev, r, v, d, w, a) (adev)->gds.funcs->patch_gds_switch((r), (v), (d), (w), (a)) |