aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu.h
diff options
context:
space:
mode:
authorJammy Zhou <Jammy.Zhou@amd.com>2015-11-10 18:31:08 -0500
committerAlex Deucher <alexander.deucher@amd.com>2015-12-21 16:42:27 -0500
commite61710c59dd205b48413762b2aedd46e86df3c45 (patch)
tree99246b35234fc3d4a54fd269f10a28b11b0221a2 /drivers/gpu/drm/amd/amdgpu/amdgpu.h
parent8804b8d5b05bbf5aea205e49fa4ed8240eb1728d (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.h71
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))