Subversion Repositories Kolibri OS

Rev

Rev 6661 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6661 Rev 6938
Line 154... Line 154...
154
u32 r600_dpm_get_vblank_time(struct radeon_device *rdev)
154
u32 r600_dpm_get_vblank_time(struct radeon_device *rdev)
155
{
155
{
156
	struct drm_device *dev = rdev->ddev;
156
	struct drm_device *dev = rdev->ddev;
157
	struct drm_crtc *crtc;
157
	struct drm_crtc *crtc;
158
	struct radeon_crtc *radeon_crtc;
158
	struct radeon_crtc *radeon_crtc;
159
	u32 vblank_in_pixels;
159
	u32 line_time_us, vblank_lines;
160
	u32 vblank_time_us = 0xffffffff; /* if the displays are off, vblank time is max */
160
	u32 vblank_time_us = 0xffffffff; /* if the displays are off, vblank time is max */
Line 161... Line 161...
161
 
161
 
162
	if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) {
162
	if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) {
163
		list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
163
		list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
164
			radeon_crtc = to_radeon_crtc(crtc);
164
			radeon_crtc = to_radeon_crtc(crtc);
165
			if (crtc->enabled && radeon_crtc->enabled && radeon_crtc->hw_mode.clock) {
165
			if (crtc->enabled && radeon_crtc->enabled && radeon_crtc->hw_mode.clock) {
166
				vblank_in_pixels =
166
				line_time_us = (radeon_crtc->hw_mode.crtc_htotal * 1000) /
167
					radeon_crtc->hw_mode.crtc_htotal *
167
					radeon_crtc->hw_mode.clock;
168
					(radeon_crtc->hw_mode.crtc_vblank_end -
168
				vblank_lines = radeon_crtc->hw_mode.crtc_vblank_end -
169
					radeon_crtc->hw_mode.crtc_vdisplay +
169
					radeon_crtc->hw_mode.crtc_vdisplay +
170
					 (radeon_crtc->v_border * 2));
-
 
171
 
170
					(radeon_crtc->v_border * 2);
172
				vblank_time_us = vblank_in_pixels * 1000 / radeon_crtc->hw_mode.clock;
171
				vblank_time_us = vblank_lines * line_time_us;
173
				break;
172
				break;
174
			}
173
			}
175
		}
174
		}