From 653da558148cc601bc1f80253e92ef98c75ef37a Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Mon, 24 Dec 2007 01:11:56 -0500 Subject: RADEON: restore crtc regs before VGA regs. It seems some radeons don't restore text console properly if the crtc regs are restored after the VGA regs. Thanks to Sverre Froyen for helping me track this down --- src/radeon_driver.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 6885cdce..7ce92361 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -4590,6 +4590,18 @@ void RADEONRestore(ScrnInfoPtr pScrn) usleep(100000); #endif + /* need to make sure we don't enable a crtc by accident or we may get a hang */ + if (pRADEONEnt->HasCRTC2 && !info->IsSecondary) { + if (info->crtc2_on && xf86_config->num_crtc > 1) { + crtc = xf86_config->crtc[1]; + crtc->funcs->dpms(crtc, DPMSModeOn); + } + } + if (info->crtc_on) { + crtc = xf86_config->crtc[0]; + crtc->funcs->dpms(crtc, DPMSModeOn); + } + #ifdef WITH_VGAHW if (info->VGAAccess) { vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -4606,17 +4618,6 @@ void RADEONRestore(ScrnInfoPtr pScrn) } #endif - /* need to make sure we don't enable a crtc by accident or we may get a hang */ - if (pRADEONEnt->HasCRTC2 && !info->IsSecondary) { - if (info->crtc2_on && xf86_config->num_crtc > 1) { - crtc = xf86_config->crtc[1]; - crtc->funcs->dpms(crtc, DPMSModeOn); - } - } - if (info->crtc_on) { - crtc = xf86_config->crtc[0]; - crtc->funcs->dpms(crtc, DPMSModeOn); - } /* to restore console mode, DAC registers should be set after every other registers are set, * otherwise,we may get blank screen */ -- cgit v1.2.3