summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthijs Kooijman <matthijs@stdin.nl>2009-12-03 12:10:14 -0500
committerAlex Deucher <alexdeucher@gmail.com>2009-12-03 12:10:14 -0500
commitf082b1693d6f7f763ccf5a8436a89890ca2c6129 (patch)
treebe2cfc49463bbd0b4b05efded6f55ab905708e26
parent3a96fbf3b84522cf1ba1b176e82b662222331c14 (diff)
radeon: fix crtc2 dpms
noticed by Matthijs Kooijman on fdo bug 22140
-rw-r--r--src/legacy_crtc.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/legacy_crtc.c b/src/legacy_crtc.c
index b57ba5f7..ed339ab1 100644
--- a/src/legacy_crtc.c
+++ b/src/legacy_crtc.c
@@ -670,8 +670,7 @@ legacy_crtc_dpms(xf86CrtcPtr crtc, int mode)
unsigned char *RADEONMMIO = pRADEONEnt->MMIO;
if (radeon_crtc->crtc_id)
- mask = (RADEON_CRTC2_EN |
- RADEON_CRTC2_DISP_DIS |
+ mask = (RADEON_CRTC2_DISP_DIS |
RADEON_CRTC2_VSYNC_DIS |
RADEON_CRTC2_HSYNC_DIS |
RADEON_CRTC2_DISP_REQ_EN_B);
@@ -683,7 +682,7 @@ legacy_crtc_dpms(xf86CrtcPtr crtc, int mode)
switch(mode) {
case DPMSModeOn:
if (radeon_crtc->crtc_id) {
- OUTREGP(RADEON_CRTC2_GEN_CNTL, RADEON_CRTC2_EN, ~mask);
+ OUTREGP(RADEON_CRTC2_GEN_CNTL, RADEON_CRTC2_EN, ~(RADEON_CRTC2_EN | mask));
} else {
OUTREGP(RADEON_CRTC_GEN_CNTL, RADEON_CRTC_EN, ~(RADEON_CRTC_EN | RADEON_CRTC_DISP_REQ_EN_B));
OUTREGP(RADEON_CRTC_EXT_CNTL, 0, ~mask);
@@ -693,7 +692,7 @@ legacy_crtc_dpms(xf86CrtcPtr crtc, int mode)
case DPMSModeSuspend:
case DPMSModeOff:
if (radeon_crtc->crtc_id) {
- OUTREGP(RADEON_CRTC2_GEN_CNTL, mask, ~mask);
+ OUTREGP(RADEON_CRTC2_GEN_CNTL, mask, ~(RADEON_CRTC2_EN | mask));
} else {
OUTREGP(RADEON_CRTC_GEN_CNTL, RADEON_CRTC_DISP_REQ_EN_B, ~(RADEON_CRTC_EN | RADEON_CRTC_DISP_REQ_EN_B));
OUTREGP(RADEON_CRTC_EXT_CNTL, mask, ~mask);