xf86-video-ati: Branch 'master'
Alex Deucher
agd5f at kemper.freedesktop.org
Mon Feb 11 12:27:12 PST 2008
src/radeon_crtc.c | 17 +++++++++++++++++
src/radeon_output.c | 1 +
2 files changed, 18 insertions(+)
New commits:
commit 9ab5d2ec7c583c74f364d7cfbb54bcd2cd8ae2f5
Author: Alex Deucher <alex at botch2.(none)>
Date: Mon Feb 11 15:26:51 2008 -0500
RADEON: always restore crtc1 before crtc0 when using both crtcs
In some rare cases restoring crtc0 first will result in a blank screen
on crtc1. If you are having issues with a blank screen on crtc1
that used to work on 6.6.3 or before, this should help.
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index e1e4550..d21612a 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -68,11 +68,28 @@ static void
radeon_crtc_dpms(xf86CrtcPtr crtc, int mode)
{
RADEONInfoPtr info = RADEONPTR(crtc->scrn);
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(crtc->scrn);
+ RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+ xf86CrtcPtr crtc0 = pRADEONEnt->pCrtc[0];
if (IS_AVIVO_VARIANT) {
atombios_crtc_dpms(crtc, mode);
} else {
+
+ /* need to restore crtc1 before crtc0 or we may get a blank screen
+ * in some cases
+ */
+ if ((radeon_crtc->crtc_id == 1) && (mode == DPMSModeOn)) {
+ if (crtc0->enabled)
+ crtc0->funcs->dpms(crtc0, DPMSModeOff);
+ }
+
legacy_crtc_dpms(crtc, mode);
+
+ if ((radeon_crtc->crtc_id == 1) && (mode == DPMSModeOn)) {
+ if (crtc0->enabled)
+ crtc0->funcs->dpms(crtc0, mode);
+ }
}
}
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 9d53b6e..7d73fa8 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -633,6 +633,7 @@ static void
radeon_mode_prepare(xf86OutputPtr output)
{
radeon_bios_output_lock(output, TRUE);
+ radeon_dpms(output, DPMSModeOff);
}
static void
More information about the xorg-commit
mailing list