diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-04-29 12:38:15 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-04-29 12:38:15 -0400 |
commit | 7d9f643ae3d07e51e644a5979ca90bc2c102bc89 (patch) | |
tree | 221a4711dfd41f6fe3c3fef3964fab72d64a0ec5 /src/radeon_crtc.c | |
parent | 35183ef528411eb0122cf48550d93f921d291d12 (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.c | 8 |
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 |