Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon/dpm: add bapm callback for trinity

This adds the enable_bapm callback for trinity.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+17
+1
drivers/gpu/drm/radeon/radeon_asic.c
··· 1794 1794 .print_power_state = &trinity_dpm_print_power_state, 1795 1795 .debugfs_print_current_performance_level = &trinity_dpm_debugfs_print_current_performance_level, 1796 1796 .force_performance_level = &trinity_dpm_force_performance_level, 1797 + .enable_bapm = &trinity_dpm_enable_bapm, 1797 1798 }, 1798 1799 .pflip = { 1799 1800 .pre_page_flip = &evergreen_pre_page_flip,
+1
drivers/gpu/drm/radeon/radeon_asic.h
··· 628 628 struct seq_file *m); 629 629 int trinity_dpm_force_performance_level(struct radeon_device *rdev, 630 630 enum radeon_dpm_forced_level level); 631 + void trinity_dpm_enable_bapm(struct radeon_device *rdev, bool enable); 631 632 632 633 /* DCE6 - SI */ 633 634 void dce6_bandwidth_update(struct radeon_device *rdev);
+14
drivers/gpu/drm/radeon/trinity_dpm.c
··· 1068 1068 pi->requested_rps.ps_priv = &pi->requested_ps; 1069 1069 } 1070 1070 1071 + void trinity_dpm_enable_bapm(struct radeon_device *rdev, bool enable) 1072 + { 1073 + struct trinity_power_info *pi = trinity_get_pi(rdev); 1074 + 1075 + if (pi->enable_bapm) { 1076 + trinity_acquire_mutex(rdev); 1077 + trinity_dpm_bapm_enable(rdev, enable); 1078 + trinity_release_mutex(rdev); 1079 + } 1080 + } 1081 + 1071 1082 int trinity_dpm_enable(struct radeon_device *rdev) 1072 1083 { 1073 1084 struct trinity_power_info *pi = trinity_get_pi(rdev); ··· 1225 1214 1226 1215 trinity_acquire_mutex(rdev); 1227 1216 if (pi->enable_dpm) { 1217 + if (pi->enable_bapm) 1218 + trinity_dpm_bapm_enable(rdev, rdev->pm.dpm.ac_power); 1228 1219 trinity_set_uvd_clock_before_set_eng_clock(rdev, new_ps, old_ps); 1229 1220 trinity_enable_power_level_0(rdev); 1230 1221 trinity_force_level_0(rdev); ··· 1869 1856 for (i = 0; i < SUMO_MAX_HARDWARE_POWERLEVELS; i++) 1870 1857 pi->at[i] = TRINITY_AT_DFLT; 1871 1858 1859 + pi->enable_bapm = true; 1872 1860 pi->enable_nbps_policy = true; 1873 1861 pi->enable_sclk_ds = true; 1874 1862 pi->enable_gfx_power_gating = true;
+1
drivers/gpu/drm/radeon/trinity_dpm.h
··· 108 108 bool enable_auto_thermal_throttling; 109 109 bool enable_dpm; 110 110 bool enable_sclk_ds; 111 + bool enable_bapm; 111 112 bool uvd_dpm; 112 113 struct radeon_ps current_rps; 113 114 struct trinity_ps current_ps;