summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/sumo_dpm.h
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-04-12 22:40:41 +0200
committerAlex Deucher <alexander.deucher@amd.com>2013-06-28 01:15:45 +0200
commitd70229f704474b2932e03367a528773e336f6205 (patch)
tree8e56480f4073505457f212706f7f3f81b89583bc /drivers/gpu/drm/radeon/sumo_dpm.h
parentdrm/radeon/kms: add dpm support for sumo asics (v2) (diff)
downloadlinux-d70229f704474b2932e03367a528773e336f6205.tar.xz
linux-d70229f704474b2932e03367a528773e336f6205.zip
drm/radeon/kms: add dpm support for trinity asics
This adds dpm support for trinity asics. This includes: - clockgating - powergating - dynamic engine clock scaling - dynamic voltage scaling set radeon.dpm=1 to enable it. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/sumo_dpm.h')
-rw-r--r--drivers/gpu/drm/radeon/sumo_dpm.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/sumo_dpm.h b/drivers/gpu/drm/radeon/sumo_dpm.h
index 561bee16039a..d041a6cf11ba 100644
--- a/drivers/gpu/drm/radeon/sumo_dpm.h
+++ b/drivers/gpu/drm/radeon/sumo_dpm.h
@@ -23,6 +23,8 @@
#ifndef __SUMO_DPM_H__
#define __SUMO_DPM_H__
+#include "atom.h"
+
#define SUMO_MAX_HARDWARE_POWERLEVELS 5
#define SUMO_PM_NUMBER_OF_TC 15
@@ -184,7 +186,24 @@ struct sumo_power_info {
/* sumo_dpm.c */
u32 sumo_get_xclk(struct radeon_device *rdev);
-
+void sumo_gfx_clockgating_initialize(struct radeon_device *rdev);
+void sumo_program_vc(struct radeon_device *rdev, u32 vrc);
+void sumo_clear_vc(struct radeon_device *rdev);
+void sumo_program_sstp(struct radeon_device *rdev);
+void sumo_take_smu_control(struct radeon_device *rdev, bool enable);
+void sumo_construct_sclk_voltage_mapping_table(struct radeon_device *rdev,
+ struct sumo_sclk_voltage_mapping_table *sclk_voltage_mapping_table,
+ ATOM_AVAILABLE_SCLK_LIST *table);
+void sumo_construct_vid_mapping_table(struct radeon_device *rdev,
+ struct sumo_vid_mapping_table *vid_mapping_table,
+ ATOM_AVAILABLE_SCLK_LIST *table);
+u32 sumo_convert_vid2_to_vid7(struct radeon_device *rdev,
+ struct sumo_vid_mapping_table *vid_mapping_table,
+ u32 vid_2bit);
+u32 sumo_get_sleep_divider_from_id(u32 id);
+u32 sumo_get_sleep_divider_id_from_clock(struct radeon_device *rdev,
+ u32 sclk,
+ u32 min_sclk_in_sr);
/* sumo_smc.c */
void sumo_initialize_m3_arb(struct radeon_device *rdev);