diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-10-03 22:56:27 -0400 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-10-03 22:56:27 -0400 |
commit | b6bda79f72df5e5bf9c6b71fa3298e765da506bd (patch) | |
tree | 444ab4a8210bb98effe8d66af956e5edaf3c7137 | |
parent | 5f5c4e6ad61c45c24f1443b91b4bc5375efdebc0 (diff) |
RADEON: more fixes for single crtc chips
-rw-r--r-- | src/radeon_driver.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 6668a81..831c96b 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -5243,6 +5243,7 @@ static void RADEONSavePalette(ScrnInfoPtr pScrn, RADEONSavePtr save) static void RADEONSave(ScrnInfoPtr pScrn) { RADEONInfoPtr info = RADEONPTR(pScrn); + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); unsigned char *RADEONMMIO = info->MMIO; RADEONSavePtr save = &info->SavedReg; @@ -5279,8 +5280,10 @@ static void RADEONSave(ScrnInfoPtr pScrn) RADEONSaveCrtcRegisters(pScrn, save); RADEONSaveFPRegisters(pScrn, save); RADEONSaveDACRegisters(pScrn, save); - RADEONSaveCrtc2Registers(pScrn, save); - RADEONSavePLL2Registers(pScrn, save); + if (pRADEONEnt->HasCRTC2) { + RADEONSaveCrtc2Registers(pScrn, save); + RADEONSavePLL2Registers(pScrn, save); + } if (info->InternalTVOut) RADEONSaveTVRegisters(pScrn, save); @@ -5369,9 +5372,11 @@ void RADEONRestore(ScrnInfoPtr pScrn) #endif /* need to make sure we don't enable a crtc by accident or we may get a hang */ - if (info->crtc2_on) { - crtc = xf86_config->crtc[1]; - crtc->funcs->dpms(crtc, DPMSModeOn); + if (pRADEONEnt->HasCRTC2) { + if (info->crtc2_on) { + crtc = xf86_config->crtc[1]; + crtc->funcs->dpms(crtc, DPMSModeOn); + } } if (info->crtc_on) { crtc = xf86_config->crtc[0]; |