drm/radeon/dpm: add helper to fetch the vrefresh of the current mode
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 19 Jul 2013 16:42:08 +0000 (12:42 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 30 Aug 2013 20:30:27 +0000 (16:30 -0400)
Needed for DPM on CI.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/r600_dpm.c
drivers/gpu/drm/radeon/r600_dpm.h

index 89c46c55f93d5d08d8a3f56e24d60be03b9e6f2a..26a787836032bf10c1e973e2eb519cb2368d78e6 100644 (file)
@@ -174,6 +174,24 @@ u32 r600_dpm_get_vblank_time(struct radeon_device *rdev)
        return vblank_time_us;
 }
 
+u32 r600_dpm_get_vrefresh(struct radeon_device *rdev)
+{
+       struct drm_device *dev = rdev->ddev;
+       struct drm_crtc *crtc;
+       struct radeon_crtc *radeon_crtc;
+       u32 vrefresh = 0;
+
+       list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
+               radeon_crtc = to_radeon_crtc(crtc);
+               if (crtc->enabled && radeon_crtc->enabled && radeon_crtc->hw_mode.clock) {
+                       vrefresh = radeon_crtc->hw_mode.vrefresh;
+                       break;
+               }
+       }
+
+       return vrefresh;
+}
+
 void r600_calculate_u_and_p(u32 i, u32 r_c, u32 p_b,
                            u32 *p, u32 *u)
 {
index 8dc1fbd9dbf143f5bba92376327a223b1ed56ecf..1000bf9719f2449af5d15a153b147f19c6af25e4 100644 (file)
@@ -130,6 +130,7 @@ void r600_dpm_print_cap_info(u32 caps);
 void r600_dpm_print_ps_status(struct radeon_device *rdev,
                              struct radeon_ps *rps);
 u32 r600_dpm_get_vblank_time(struct radeon_device *rdev);
+u32 r600_dpm_get_vrefresh(struct radeon_device *rdev);
 bool r600_is_uvd_state(u32 class, u32 class2);
 void r600_calculate_u_and_p(u32 i, u32 r_c, u32 p_b,
                            u32 *p, u32 *u);