summaryrefslogtreecommitdiff
path: root/src/radeon_crtc.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-04-29 12:38:15 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-04-29 12:38:15 -0400
commit7d9f643ae3d07e51e644a5979ca90bc2c102bc89 (patch)
tree221a4711dfd41f6fe3c3fef3964fab72d64a0ec5 /src/radeon_crtc.c
parent35183ef528411eb0122cf48550d93f921d291d12 (diff)
radeon: fix several dpms issues
- atom dpms was unblanking for standby/suspend - return if r600+ in radeon_crtc_modeset_ioctl() - remove seprate standby/suspend handling in legacy crtc dpms. we turn the outputs off, so turn the crtcs off too. - disable the crtcs in legacy crtc dpms - move radeon_crtc_modeset_ioctl() calls to radeon_crtc_dpms() so they will get called for both atom and legacy paths Should fix bug 21321
Diffstat (limited to 'src/radeon_crtc.c')
-rw-r--r--src/radeon_crtc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 4b687708..c78ac43b 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -77,6 +77,9 @@ radeon_crtc_dpms(xf86CrtcPtr crtc, int mode)
if ((mode == DPMSModeOn) && radeon_crtc->enabled)
return;
+ if (mode == DPMSModeOff)
+ radeon_crtc_modeset_ioctl(crtc, FALSE);
+
if (IS_AVIVO_VARIANT || info->r4xx_atom) {
atombios_crtc_dpms(crtc, mode);
} else {
@@ -97,6 +100,11 @@ radeon_crtc_dpms(xf86CrtcPtr crtc, int mode)
}
}
+ if (mode != DPMSModeOff) {
+ radeon_crtc_modeset_ioctl(crtc, TRUE);
+ radeon_crtc_load_lut(crtc);
+ }
+
if (mode == DPMSModeOn)
radeon_crtc->enabled = TRUE;
else