summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-02-06 19:20:18 -0500
committerAlex Deucher <alexdeucher@gmail.com>2009-02-06 19:20:18 -0500
commit28cf3492f431f325cb08d7c6aade43d8886df3f6 (patch)
tree4769db2eb8dbcc1529a3d8b321d3ad533080d21a /src
parent16e01a5796a8e8b86ad25d3aa45b9e7044dc72d1 (diff)
AVIVO: fix rotation
When rotation is active, virtualX and virtualY change.
Diffstat (limited to 'src')
-rw-r--r--src/atombios_crtc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
index 32997407..e86f1865 100644
--- a/src/atombios_crtc.c
+++ b/src/atombios_crtc.c
@@ -465,8 +465,11 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_Y + radeon_crtc->crtc_offset, 0);
OUTREG(AVIVO_D1GRPH_X_START + radeon_crtc->crtc_offset, 0);
OUTREG(AVIVO_D1GRPH_Y_START + radeon_crtc->crtc_offset, 0);
- OUTREG(AVIVO_D1GRPH_X_END + radeon_crtc->crtc_offset, pScrn->virtualX);
- OUTREG(AVIVO_D1GRPH_Y_END + radeon_crtc->crtc_offset, pScrn->virtualY);
+ if (crtc->rotatedData == NULL) {
+ /* rotation changes the virtualX and virtualY */
+ OUTREG(AVIVO_D1GRPH_X_END + radeon_crtc->crtc_offset, pScrn->virtualX);
+ OUTREG(AVIVO_D1GRPH_Y_END + radeon_crtc->crtc_offset, pScrn->virtualY);
+ }
OUTREG(AVIVO_D1GRPH_PITCH + radeon_crtc->crtc_offset,
crtc->scrn->displayWidth);
OUTREG(AVIVO_D1GRPH_ENABLE + radeon_crtc->crtc_offset, 1);