diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2008-09-18 17:27:00 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2008-09-18 17:27:00 -0400 |
commit | 075ed1d6fd1d58c1f46d556df79f44153f10edd8 (patch) | |
tree | de4a63fd79a0a19a75d9bc07ef4aed9dd2ac7432 /linux-core/radeon_encoders.c | |
parent | 6988176195450da9033a0f0f21eafc6ae0a7a6a4 (diff) |
radeon: pll and interlace updates from the ddx
also some formatting cleanup in radeon_reg.h
Diffstat (limited to 'linux-core/radeon_encoders.c')
-rw-r--r-- | linux-core/radeon_encoders.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/linux-core/radeon_encoders.c b/linux-core/radeon_encoders.c index 82ffcfb0..98be7057 100644 --- a/linux-core/radeon_encoders.c +++ b/linux-core/radeon_encoders.c @@ -517,9 +517,15 @@ static void radeon_atom_dac_dpms(struct drm_encoder *encoder, int mode) } static bool radeon_atom_dac_mode_fixup(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) { + + /* hw bug */ + if ((mode->flags & DRM_MODE_FLAG_INTERLACE) + && (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2))) + adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; + return true; } @@ -987,6 +993,12 @@ static bool radeon_atom_tmds_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) { + + /* hw bug */ + if ((mode->flags & DRM_MODE_FLAG_INTERLACE) + && (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2))) + adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; + return true; } |