diff options
author | Eric Huang <JinHuiEric.Huang@amd.com> | 2015-12-11 16:24:34 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-02-10 14:16:59 -0500 |
commit | f3898ea12fc1f18a4fa9034b169076e8e72d122a (patch) | |
tree | adc3c4774b449fa8d6ff7f6b5cdedc436ea8b412 /drivers/gpu/drm/amd/amdgpu/amdgpu.h | |
parent | c7e6be2303d0b6ee983eb72fee457967b85c91a6 (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.h | 17 |
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 | ||
1508 | struct amdgpu_vce_state { | 1509 | struct 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 | ||