From 7d9f643ae3d07e51e644a5979ca90bc2c102bc89 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Wed, 29 Apr 2009 12:38:15 -0400 Subject: 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 --- src/radeon_crtc.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/radeon_crtc.c') 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 -- cgit v1.2.3