summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.(none)>2007-10-03 22:56:27 -0400
committerAlex Deucher <alex@botch2.(none)>2007-10-03 22:56:27 -0400
commitb6bda79f72df5e5bf9c6b71fa3298e765da506bd (patch)
tree444ab4a8210bb98effe8d66af956e5edaf3c7137
parent5f5c4e6ad61c45c24f1443b91b4bc5375efdebc0 (diff)
RADEON: more fixes for single crtc chips
-rw-r--r--src/radeon_driver.c15
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];