diff options
author | Ramon van der Stelt <rvanderstelt@xs4all.nl> | 2008-11-25 02:23:46 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2008-11-25 02:23:46 -0500 |
commit | 065938617c0feab17f4274a5350de02a692ba065 (patch) | |
tree | 5f13a5adefe35eff56d8e4f3e44a69451b4d2e0b /src | |
parent | 36a7dc6ea1e1929e986ab1159497c71521cb2f10 (diff) |
Interlaced mode fixes
see bug 12626
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon_cursor.c | 4 | ||||
-rw-r--r-- | src/radeon_output.c | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index 08bfddf4..0fcdcf04 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -221,9 +221,7 @@ radeon_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y) OUTREG(AVIVO_D1CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin); avivo_lock_cursor(crtc, FALSE); } else { - if (mode->Flags & V_INTERLACE) - y /= 2; - else if (mode->Flags & V_DBLSCAN) + if (mode->Flags & V_DBLSCAN) y *= 2; if (crtc_id == 0) { diff --git a/src/radeon_output.c b/src/radeon_output.c index 0ac19e75..035f2b82 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -477,6 +477,12 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, radeon_output->Flags &= ~RADEON_USE_RMX; + /* + * Refresh the Crtc values without INTERLACE_HALVE_V + * Should we use output->scrn->adjustFlags like xf86RandRModeConvert() does? + */ + xf86SetModeCrtc(adjusted_mode, 0); + /* decide if we are using RMX */ if ((radeon_output->MonType == MT_LCD || radeon_output->MonType == MT_DFP) && radeon_output->rmx_type != RMX_OFF) { @@ -536,7 +542,7 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, if (IS_AVIVO_VARIANT) { /* hw bug */ if ((mode->Flags & V_INTERLACE) - && (mode->CrtcVSyncStart < (mode->CrtcVDisplay + 2))) + && (adjusted_mode->CrtcVSyncStart < (adjusted_mode->CrtcVDisplay + 2))) adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVDisplay + 2; } |