summaryrefslogtreecommitdiff
path: root/src/savage_driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/savage_driver.c')
-rw-r--r--src/savage_driver.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 226fbb6..afc890e 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -3823,20 +3823,24 @@ static void SavageDPMS(ScrnInfoPtr pScrn, int mode, int flags)
}
if ((!psav->CrtOnly) && psav->PanelX) {
- switch (mode) {
- case DPMSModeOn:
- VGAOUT8(0x3c4, 0x31); /* SR31 bit 4 - FP enable */
- VGAOUT8(0x3c5, VGAIN8(0x3c5) | 0x10);
- break;
- case DPMSModeStandby:
- case DPMSModeSuspend:
- case DPMSModeOff:
- VGAOUT8(0x3c4, 0x31); /* SR31 bit 4 - FP enable */
- VGAOUT8(0x3c5, VGAIN8(0x3c5) & ~0x10);
- break;
- default:
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid DPMS mode %d\n", mode);
- break;
+ if (S3_MOBILE_TWISTER_SERIES(psav->Chipset)) {
+ SavageSetPanelEnabled(psav, (mode == DPMSModeOn));
+ } else {
+ switch (mode) {
+ case DPMSModeOn:
+ VGAOUT8(0x3c4, 0x31); /* SR31 bit 4 - FP enable */
+ VGAOUT8(0x3c5, VGAIN8(0x3c5) | 0x10);
+ break;
+ case DPMSModeStandby:
+ case DPMSModeSuspend:
+ case DPMSModeOff:
+ VGAOUT8(0x3c4, 0x31); /* SR31 bit 4 - FP enable */
+ VGAOUT8(0x3c5, VGAIN8(0x3c5) & ~0x10);
+ break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid DPMS mode %d\n", mode);
+ break;
+ }
}
}