aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/radeon/radeon_asic.c1
-rw-r--r--drivers/gpu/drm/radeon/radeon_asic.h2
-rw-r--r--drivers/gpu/drm/radeon/trinity_dpm.c21
3 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c
index 6d4304cce83f..691654740906 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.c
+++ b/drivers/gpu/drm/radeon/radeon_asic.c
@@ -2108,6 +2108,7 @@ static struct radeon_asic trinity_asic = {
2108 .get_sclk = &trinity_dpm_get_sclk, 2108 .get_sclk = &trinity_dpm_get_sclk,
2109 .get_mclk = &trinity_dpm_get_mclk, 2109 .get_mclk = &trinity_dpm_get_mclk,
2110 .print_power_state = &trinity_dpm_print_power_state, 2110 .print_power_state = &trinity_dpm_print_power_state,
2111 .debugfs_print_current_performance_level = &trinity_dpm_debugfs_print_current_performance_level,
2111 }, 2112 },
2112 .pflip = { 2113 .pflip = {
2113 .pre_page_flip = &evergreen_pre_page_flip, 2114 .pre_page_flip = &evergreen_pre_page_flip,
diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h
index 958d30f33066..5904d897586d 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.h
+++ b/drivers/gpu/drm/radeon/radeon_asic.h
@@ -626,6 +626,8 @@ u32 trinity_dpm_get_sclk(struct radeon_device *rdev, bool low);
626u32 trinity_dpm_get_mclk(struct radeon_device *rdev, bool low); 626u32 trinity_dpm_get_mclk(struct radeon_device *rdev, bool low);
627void trinity_dpm_print_power_state(struct radeon_device *rdev, 627void trinity_dpm_print_power_state(struct radeon_device *rdev,
628 struct radeon_ps *ps); 628 struct radeon_ps *ps);
629void trinity_dpm_debugfs_print_current_performance_level(struct radeon_device *rdev,
630 struct seq_file *m);
629 631
630/* DCE6 - SI */ 632/* DCE6 - SI */
631void dce6_bandwidth_update(struct radeon_device *rdev); 633void dce6_bandwidth_update(struct radeon_device *rdev);
diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c b/drivers/gpu/drm/radeon/trinity_dpm.c
index fce825e112ff..502d9153c4d5 100644
--- a/drivers/gpu/drm/radeon/trinity_dpm.c
+++ b/drivers/gpu/drm/radeon/trinity_dpm.c
@@ -1855,6 +1855,27 @@ void trinity_dpm_print_power_state(struct radeon_device *rdev,
1855 r600_dpm_print_ps_status(rdev, rps); 1855 r600_dpm_print_ps_status(rdev, rps);
1856} 1856}
1857 1857
1858void trinity_dpm_debugfs_print_current_performance_level(struct radeon_device *rdev,
1859 struct seq_file *m)
1860{
1861 struct radeon_ps *rps = rdev->pm.dpm.current_ps;
1862 struct trinity_ps *ps = trinity_get_ps(rps);
1863 struct trinity_pl *pl;
1864 u32 current_index =
1865 (RREG32(TARGET_AND_CURRENT_PROFILE_INDEX) & CURRENT_STATE_MASK) >>
1866 CURRENT_STATE_SHIFT;
1867
1868 if (current_index >= ps->num_levels) {
1869 seq_printf(m, "invalid dpm profile %d\n", current_index);
1870 } else {
1871 pl = &ps->levels[current_index];
1872 seq_printf(m, "uvd vclk: %d dclk: %d\n", rps->vclk, rps->dclk);
1873 seq_printf(m, "power level %d sclk: %u vddc: %u\n",
1874 current_index, pl->sclk,
1875 trinity_convert_voltage_index_to_value(rdev, pl->vddc_index));
1876 }
1877}
1878
1858void trinity_dpm_fini(struct radeon_device *rdev) 1879void trinity_dpm_fini(struct radeon_device *rdev)
1859{ 1880{
1860 int i; 1881 int i;