aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu.h
diff options
context:
space:
mode:
authorEric Huang <JinHuiEric.Huang@amd.com>2015-12-11 16:24:34 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-02-10 14:16:59 -0500
commitf3898ea12fc1f18a4fa9034b169076e8e72d122a (patch)
treeadc3c4774b449fa8d6ff7f6b5cdedc436ea8b412 /drivers/gpu/drm/amd/amdgpu/amdgpu.h
parentc7e6be2303d0b6ee983eb72fee457967b85c91a6 (diff)
drm/amd/powerplay: add some sysfs interfaces for powerplay.
The new sysfs interfaces: pp_num_states: Read-only, return the number of all pp states, 0 if powerplay is not available. pp_cur_state: Read-only, return the index number of current pp state. pp_force_state: Read-write, to write a power state index will switch to selected state forcedly and enable forced state mode, disable forced state mode. such as "echo >...". pp_table: Read-write, binary output, to be used to read or write the dpm table, the maximum file size is 4KB of page size. pp_dpm_sclk: Read-write, reading will return a dpm levels list, to write an index number will force powerplay to set the corresponding dpm level. pp_dpm_mclk: same as sclk. pp_dpm_pcie: same as sclk. And add new setting "manual" to the existing interface power_dpm_force_performance_level. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 41c725e02f39..532e0a17dd9a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1503,6 +1503,7 @@ enum amdgpu_dpm_forced_level {
1503 AMDGPU_DPM_FORCED_LEVEL_AUTO = 0, 1503 AMDGPU_DPM_FORCED_LEVEL_AUTO = 0,
1504 AMDGPU_DPM_FORCED_LEVEL_LOW = 1, 1504 AMDGPU_DPM_FORCED_LEVEL_LOW = 1,
1505 AMDGPU_DPM_FORCED_LEVEL_HIGH = 2, 1505 AMDGPU_DPM_FORCED_LEVEL_HIGH = 2,
1506 AMDGPU_DPM_FORCED_LEVEL_MANUAL = 3,
1506}; 1507};
1507 1508
1508struct amdgpu_vce_state { 1509struct amdgpu_vce_state {
@@ -2014,6 +2015,7 @@ struct amdgpu_device {
2014 /* powerplay */ 2015 /* powerplay */
2015 struct amd_powerplay powerplay; 2016 struct amd_powerplay powerplay;
2016 bool pp_enabled; 2017 bool pp_enabled;
2018 bool pp_force_state_enabled;
2017 2019
2018 /* dpm */ 2020 /* dpm */
2019 struct amdgpu_pm pm; 2021 struct amdgpu_pm pm;
@@ -2301,6 +2303,21 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
2301#define amdgpu_dpm_get_performance_level(adev) \ 2303#define amdgpu_dpm_get_performance_level(adev) \
2302 (adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle) 2304 (adev)->powerplay.pp_funcs->get_performance_level((adev)->powerplay.pp_handle)
2303 2305
2306#define amdgpu_dpm_get_pp_num_states(adev, data) \
2307 (adev)->powerplay.pp_funcs->get_pp_num_states((adev)->powerplay.pp_handle, data)
2308
2309#define amdgpu_dpm_get_pp_table(adev, table) \
2310 (adev)->powerplay.pp_funcs->get_pp_table((adev)->powerplay.pp_handle, table)
2311
2312#define amdgpu_dpm_set_pp_table(adev, buf, size) \
2313 (adev)->powerplay.pp_funcs->set_pp_table((adev)->powerplay.pp_handle, buf, size)
2314
2315#define amdgpu_dpm_print_clock_levels(adev, type, buf) \
2316 (adev)->powerplay.pp_funcs->print_clock_levels((adev)->powerplay.pp_handle, type, buf)
2317
2318#define amdgpu_dpm_force_clock_level(adev, type, level) \
2319 (adev)->powerplay.pp_funcs->force_clock_level((adev)->powerplay.pp_handle, type, level)
2320
2304#define amdgpu_dpm_dispatch_task(adev, event_id, input, output) \ 2321#define amdgpu_dpm_dispatch_task(adev, event_id, input, output) \
2305 (adev)->powerplay.pp_funcs->dispatch_tasks((adev)->powerplay.pp_handle, (event_id), (input), (output)) 2322 (adev)->powerplay.pp_funcs->dispatch_tasks((adev)->powerplay.pp_handle, (event_id), (input), (output))
2306 2323