aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2014-09-30 10:54:05 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-03-19 12:26:34 -0400
commitdbbd3c81b042ea2e87b37a6945ed8a31aaaaafec (patch)
tree99f16dbc3cd75987704e5e1fef58c9f9797afe57
parentca1110bc5b8d796a7266c0b6de6131e1cea0409a (diff)
drm/radeon/ci: implement get_current_sclk/mclk
Will be used for exposing current clocks via INFO ioctl. Tested-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/ci_dpm.c14
-rw-r--r--drivers/gpu/drm/radeon/radeon_asic.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_asic.h2
3 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index bcd2f1fe803f..8730562323a8 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -5922,6 +5922,20 @@ void ci_dpm_print_power_state(struct radeon_device *rdev,
5922 r600_dpm_print_ps_status(rdev, rps); 5922 r600_dpm_print_ps_status(rdev, rps);
5923} 5923}
5924 5924
5925u32 ci_dpm_get_current_sclk(struct radeon_device *rdev)
5926{
5927 u32 sclk = ci_get_average_sclk_freq(rdev);
5928
5929 return sclk;
5930}
5931
5932u32 ci_dpm_get_current_mclk(struct radeon_device *rdev)
5933{
5934 u32 mclk = ci_get_average_mclk_freq(rdev);
5935
5936 return mclk;
5937}
5938
5925u32 ci_dpm_get_sclk(struct radeon_device *rdev, bool low) 5939u32 ci_dpm_get_sclk(struct radeon_device *rdev, bool low)
5926{ 5940{
5927 struct ci_power_info *pi = ci_get_pi(rdev); 5941 struct ci_power_info *pi = ci_get_pi(rdev);
diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c
index 7826493eb587..63bbd66344b0 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.c
+++ b/drivers/gpu/drm/radeon/radeon_asic.c
@@ -2137,6 +2137,8 @@ static struct radeon_asic ci_asic = {
2137 .fan_ctrl_get_mode = &ci_fan_ctrl_get_mode, 2137 .fan_ctrl_get_mode = &ci_fan_ctrl_get_mode,
2138 .get_fan_speed_percent = &ci_fan_ctrl_get_fan_speed_percent, 2138 .get_fan_speed_percent = &ci_fan_ctrl_get_fan_speed_percent,
2139 .set_fan_speed_percent = &ci_fan_ctrl_set_fan_speed_percent, 2139 .set_fan_speed_percent = &ci_fan_ctrl_set_fan_speed_percent,
2140 .get_current_sclk = &ci_dpm_get_current_sclk,
2141 .get_current_mclk = &ci_dpm_get_current_mclk,
2140 }, 2142 },
2141 .pflip = { 2143 .pflip = {
2142 .page_flip = &evergreen_page_flip, 2144 .page_flip = &evergreen_page_flip,
diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h
index 23ba9d72005c..dd4f8bcb9633 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.h
+++ b/drivers/gpu/drm/radeon/radeon_asic.h
@@ -874,6 +874,8 @@ int ci_dpm_force_performance_level(struct radeon_device *rdev,
874 enum radeon_dpm_forced_level level); 874 enum radeon_dpm_forced_level level);
875bool ci_dpm_vblank_too_short(struct radeon_device *rdev); 875bool ci_dpm_vblank_too_short(struct radeon_device *rdev);
876void ci_dpm_powergate_uvd(struct radeon_device *rdev, bool gate); 876void ci_dpm_powergate_uvd(struct radeon_device *rdev, bool gate);
877u32 ci_dpm_get_current_sclk(struct radeon_device *rdev);
878u32 ci_dpm_get_current_mclk(struct radeon_device *rdev);
877 879
878int ci_fan_ctrl_get_fan_speed_percent(struct radeon_device *rdev, 880int ci_fan_ctrl_get_fan_speed_percent(struct radeon_device *rdev,
879 u32 *speed); 881 u32 *speed);