]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - drivers/gpu/drm/radeon/rv770_dpm.h
drm/radeon/dpm: fix spread spectrum setup (v2)
[linux-imx.git] / drivers / gpu / drm / radeon / rv770_dpm.h
index 0f33f9bb244fd6d66b44b66e7ac8e02131330abd..9244effc6b59e2e69c6882b0d4dc35dd2517379c 100644 (file)
@@ -126,6 +126,10 @@ struct rv7xx_power_info {
        u32 pasi;
        u32 vrc;
        u32 restricted_levels;
+       u32 rlp;
+       u32 rmp;
+       u32 lhp;
+       u32 lmp;
        /* smc offsets */
        u16 state_table_start;
        u16 soft_regs_start;
@@ -140,6 +144,7 @@ struct rv7xx_pl {
        u16 vddc;
        u16 vddci; /* eg+ only */
        u32 flags;
+       enum radeon_pcie_gen pcie_gen; /* si+ only */
 };
 
 struct rv7xx_ps {
@@ -257,12 +262,20 @@ void rv770_stop_dpm(struct radeon_device *rdev);
 void r7xx_stop_smc(struct radeon_device *rdev);
 void rv770_reset_smio_status(struct radeon_device *rdev);
 int rv770_restrict_performance_levels_before_switch(struct radeon_device *rdev);
-int rv770_unrestrict_performance_levels_after_switch(struct radeon_device *rdev);
+int rv770_dpm_force_performance_level(struct radeon_device *rdev,
+                                     enum radeon_dpm_forced_level level);
 int rv770_halt_smc(struct radeon_device *rdev);
 int rv770_resume_smc(struct radeon_device *rdev);
 int rv770_set_sw_state(struct radeon_device *rdev);
 int rv770_set_boot_state(struct radeon_device *rdev);
 int rv7xx_parse_power_table(struct radeon_device *rdev);
+void rv770_set_uvd_clock_before_set_eng_clock(struct radeon_device *rdev,
+                                             struct radeon_ps *new_ps,
+                                             struct radeon_ps *old_ps);
+void rv770_set_uvd_clock_after_set_eng_clock(struct radeon_device *rdev,
+                                            struct radeon_ps *new_ps,
+                                            struct radeon_ps *old_ps);
+void rv770_get_engine_memory_ss(struct radeon_device *rdev);
 
 /* smc */
 int rv770_read_smc_soft_register(struct radeon_device *rdev,
@@ -270,4 +283,8 @@ int rv770_read_smc_soft_register(struct radeon_device *rdev,
 int rv770_write_smc_soft_register(struct radeon_device *rdev,
                                  u16 reg_offset, u32 value);
 
+/* thermal */
+int rv770_set_thermal_temperature_range(struct radeon_device *rdev,
+                                       int min_temp, int max_temp);
+
 #endif