diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-12-24 01:11:56 -0500 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-12-24 01:11:56 -0500 |
commit | 653da558148cc601bc1f80253e92ef98c75ef37a (patch) | |
tree | 4479c83df3e359ebd5a2e1fbccf27840d032e377 | |
parent | ad3325f672a241449ca239c8ee3a24b6d7703d76 (diff) |
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
-rw-r--r-- | src/radeon_driver.c | 23 |
1 files 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 */ |